Centos7部署k8s集群
部署之前,先简单说下k8s是个啥:
一、k8s简介:
- k8s,全称:kubernetes,它可以看作是一个分布式系统支撑平台。
- k8s的作用:
1、故障自愈:
k8s这个玩意可以监控容器运行,我们把项目放到容器里。由于一些外部内部原因服务器承受不住压力,如果主节点上的容器突然挂了,k8s立刻会自己将主机上的服务调度到另一个node机器上运行
2、应用更新:
更新项目上线时不用中断当前项目的运行。
3、还有一些自动扩容,缩容的概念就不讲了,我本人也没亲身体会用过,不好说。
二、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主机上的kube-controller-manager是整个集群的控制管理中心,kube-controler-manager中的node controller模块 通过apiservice提供的监听接口,实时监控node机的状态信息。
当某个node机器宕机,controller-manager就会及时排除故障并自动修复。 -
node节点机上的kubelet进程每隔一段时间周期就会调用一次apiservice接口报告自身状态,apiservice接口接受到这些信息后将节点状态更新到ectd中。kubelet也通过apiservice的监听接口监听pod信息,如果监控到新的pod副本被调度绑定到本节点,则执行pod对应的容器的创建和启动,如果监听到pod对象被删除,则删除本节点对应的pod容器。
五、安装准备:
了解了基本概念之后,我们开始准备安装部署工作:
-
准备两台服务器:
192.168.26.227,
192.168.26.228一主一从&#