vlambda博客
学习文章列表

保姆级CentOS7安装k8s教程

来源:https://www.cnblogs.com/spll/p/10033316.html
测试新青年
和测试开发进阶的同道者一起探求测试的奥秘
0篇原创内容
Official Account


安装准备:

准备两台服务器(我用的是CentOS7系统):192.168.26.227,192.168.26.228


一主一从

master机:192.168.26.227

node机:192.168.26.228


简单说一下k8s:

可以这样去理解:k8s全称:Kubernetes,它可以看作是一个分布式系统支撑平台。          


我们为什么要用k8s集群?

故障自愈:

k8s这个玩意可以监控容器运行,我们把项目放到容器里。由于一些外部内部原因服务器承受不住压力,如果主节点上的容器突然挂了,k8s立刻会自己将主机上的服务调度到另一个node机器上运行

应用更新:

更新项目上线时不用中断当前项目的运行。还有一些自动扩容,缩容的概念就不讲了,我本人也没亲身体会用过,不好说。


k8s的全生命周期管理:

在k8s进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。


k8s的主要组件及功能:

etcd:一款开源软件。提供可靠的分布式数据存储服务,用于持久化存储K8s集群的配置和状态

apiservice:用户程序(如kubectl)、K8s其它组件之间通信的接口。K8s其它组件之间不直接通信,而是通过API server通信的。这一点在上图的连接中可以体现,例如,只有API server连接了etcd,即其它组件更新K8s集群的状态时,只能通过API server读写etcd中的数据。

 Scheduler:排程组件,为用户应用的每一可部署组件分配工作结点。

controller-manager:执行集群级别的功能,如复制组件、追踪工作结点状态、处理结点失败等。Controller Manager组件是由多个控制器组成的,其中很多控制器是按K8s的资源类型划分的,如Replication Manager(管理ReplicationController 资源),ReplicaSet Controller,PersistentVolume controller。

kube-proxy:在应用组件间负载均衡网络流量。

kubelet:管理工作结点上的容器。Contriner runtime Docker, rkt等实际运行容器的组件。

上面都是些k8s集群所要用到的组件,具体这些组件都是用来干嘛的呢,我们来好好分析分析。


master主机上192.168.26.277必须要有的组件:

etcd:提供分布式数据存储的数据库吧,用于持久化存储k8s集群的配置和状态

kube-apiserver:api service提供了http rest接口,是整个集群的入口,K8s其它组件之间不直接通信,而是通过API server通信的。(只有API server连接了etcd,即其它组件更新K8s集群的状态时,只能通过API server读写etcd中的数据)

kube-scheduler:scheduler负责资源的调度

kube-controller-manager:整个集群的管理控制中心,此组件里面是由多个控制器组成的,如:Replication Manager(管理ReplicationController 资源),ReplicaSet Controller,PersistentVolume controller。主要作用用来复制组件、追踪工作结点状态、处理失败结点


node节点机上192.168.26.228必须要有的组件:

flannel:好像是用来支持网络通信的吧

kube-proxy:用来负载均衡网络流量

kubelet:用来管理node节点机上的容器

docker:运行项目镜像容器的组件