Kubernetes(k8s) 实验总结_第1张图片 Kubernetes(k8s) 实验总结_第2张图片

 上面左边是我的个人微信,如需进一步沟通,请加微信。  右边是我的公众号“Openstack私有云”,如有兴趣,请关注。


    在上篇博文《Kubernetes 入门学习》中提到了Katacoda实验环境可以进一步熟悉K8S的使用,具体网址是:

    https://www.katacoda.com/courses/kubernetes/

    最近花了一些时间完成这些实验场景,一共有17个实验场景,每个场景大概10分钟左右,经过这些实验,对K8S就有一个大体的了解。这些场景包含这些内容:

  •     启动单个节点群集

    了解如何启动包含DNS和Kube UI的单节点Minikube群集

    

  •     使用Kubeadm启动多节点群集

    使用Kubeadm引导Kubernetes集群

    

  •     使用Kubectl部署容器

    了解如何使用Kubectl启动容器并使其可访问

    

  •     使用YAML部署容器

    了解如何使用YAML定义来部署容器

    

  •     部署留言簿Web应用程序示例

    本场景教您如何使用Kubernetes部署Guestbook示例

    

  •     网络介绍

    了解可用的不同网络方法

    

  •     创建入口路由

    了解如何定义基于主机和路径的Ingress路由

    

  •     生存和准备健康检查

    了解如何使用Liveness和Readiness探针确保容器健康

    

  •     开始使用CRI-O和Kubeadm

    了解如何部署基于CRI-O的Kubeadm群集

    

  •     在Kubernetes上运行状态服务

    了解如何在Kubernetes上运行有状态服务

    

  •     使用Kubernetes管理秘密和密码

    了解Kubernetes如何帮助确保机密

    

  •     用Kompose部署Docker Compose文件

    了解如何使用Kompose部署现有的Docker Compose定义

    

  •     从源代码部署到Kubernetes

    如何在Kubernetes中从源代码获取正在运行的服务

    

  •     Helm包管理器

    使用Kubernetes的Helm Package Manager来部署Redis

    

  •     Helm(经典)包管理器

    使用Kubernetes的Helm(经典)包管理器来部署Redis

    

  •     在Kubernetes上安装Weave Scope 

    了解如何在Kubernetes上运行Weave Scope 

    

  •     Kubeless入门

    了解如何使用Kubeless将无服务器功能部署到Kubernetes


    17个实验涵盖了k8s的安装配置和使用,其中,对于实际使用很有帮助的Helm可以实现标准化模块化功能组件(比如web服务、mariadb、redis等等)的自动化部署,包括自动化的镜像下载并根据dockerfile制作自己的镜像、上传镜像、自动配置标准化k8s的yaml部署配置文件。还有一个是k8s可视化组件Weave Scope,可以实现对整个k8s集群的web图形界面管理,更加直观方便的管理维护k8s集群。

    

    经过实验,个人感觉k8s真的做到了上层应用和基础架构脱离,原来需要考虑的平台差异、基础架构、双机冗余、容量扩展、软件版本升级等等一系列很费人力和时间的事情,在k8s里面全部被非常非常简单的得到了解决。

    k8s是基于容器管理docker,node节点类似于openstack的计算节点使用docker来完成对容器的承载,master类似于openstack的controller节点完成对node的管理以及对pod的调度、自动化健康监测、node节点资源的监控,以及其他自动化的pod副本部署或者迁移。

    k8s的主要管理命令是kubectl,可以完成大部分的k8s的管理任务,从概念上来说,如果要学习k8s,一定要先熟悉docker的使用,kubectl对pod的相关管理命令的结构和docker非常类似。

    开发人员使用k8s还是有一些复杂,如果需要平滑高效的使用k8s,应该还是需要使用Helm,Helm实现了大部分应用的标准模块化,比如web应用,各类中间件应用,各类开源版的数据应用,但是需要解决网络速度的问题,因为所有的应用都是由容器实现,一般容器文件都比较大,因此,后续使用需要考虑提前准备本地镜像。

    平时k8s本身的监控和维护,可以通过部署Weave Scope 来完成。

    对于k8s的应用场景,非常适用于应用复杂、软件应用版本变动频繁、资源使用变化大的互联网企业,对于中小规模的IT系统,个人觉得还是有一些小材大用。另外,也可以考虑直接使用红帽的k8s商业版Openshift,就不用自己部署k8s平台,直接使用即可。

    个人觉得,对于k8s,应该要看做一个革命性的产品,因为它真正做到了上层应用于下层基础架构解耦合,如果一个公司使用k8s架构,应用程序的维护就是一个个容器的维护和流动,可以放在本地物理机上的k8s平台,也可以直接流动到公有云,并且自动化程度足够高,可以极大解放维护人员,使维护人员将更多的精力放到平台架构方面。