一、安装方式介绍
1,百胜安装
目前CentOS官方已经把Kubernetes源放入到自己的默认额外仓库里面,使用yum安装,好处是简单,坏处也很明显,需要官方更新百胜源才能获得最新版本的软件,而所有软件的依赖又不能自己指定,尤其是你的操作系统版本如果低的话,使用yum源安装的Kubernetes的版本也会受到限制,通常会低于官方很多版本,我安装的时候目前官方版本为1.12 <代码> 代码,而百胜源中的版本为<代码> 1.5.2> 代码。
2,二进制安装
使用二进制文件安装,好处是可以安装任意版本的Kubernetes,坏处是配置比较复杂,很多软件包因为一些原因,我们在大陆是访问不到的。
请查看博文:https://blog.51cto.com/wzlinux/2322345
3, Kubeadm安装
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。
1.4版本对于Linux主要发行版Ubuntu主客关系的本和Red Hat centos7的用户,可以使用熟悉的apt-get和百胜来直接安装Kubernetes。再比如,1.4版本引入了kubeadm命令,将集群启动简化为两条命令,不需要再使用复杂的kube-up脚本。
Kubernetes的官方文档更新的速度太快了,我们注意到在Kubernetes 1.9的文档使用kubeadm创建一个集群中已经给出了目前1.9的kubeadm的主要特性已经处于β状态了,在2018年将进入GA状态,说明kubeadm离可以在生产环境中使用的距离越来越近了,这也是我们以后注意使用的安装方式,但是为了了解其中的安装过程,我们先从其他两种安装方式入手。
请查看博文:https://blog.51cto.com/wzlinux/2322616
这里我们选用第一种方式安装。
二,主要组件说明
1,主组件
主组件提供集群的管理控制中心。
主组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台虚拟机/机器上启动所有主组件,并且不会在此VM/机器上运行用户容器
-
<李>
<强> kube-apiserver 强>
kube-apiserver用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。
<强> etcd 强>
etcd是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。
<强> kube-controller-manager 强>
kube-controller-manager运行管理控制器,它们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。
kube-scheduler监视新创建没有分配到节点的豆荚,为吊舱选择一个节点。李>
2、节点组件
-
<李>
<强> kubelet 强>
kubelet是主要的节点代理,它会监视已分配给节点的豆荚,具体功能:
-
<李>安装舱所需的体积。李>
<李>下载舱的秘密。李>
<李>荚中运行的码头工人(或实验,rkt)容器。李>
<李>定期执行容器健康检查。李>
<李>报告状态的吊舱系统的其余部分,通过创建一个镜子在必要时仓。李>
<李>报告节点的状态回到系统的其余部分。李>
<强> kube-proxy 强>
kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。
<强>码头工人强>
码头工人用于运行容器。
法兰绒是CoreOS团队针对Kubernetes设计的一个覆盖网络(覆盖网络)工具,需要另外下载部署。我们知道当我们启动码头工人后会有一个用于和容器进行交互的IP地址,如果不去管理的话可能这个IP地址在各个机器上是一样的,并且仅限于在本机上进行通信,无法访问到其他机器上的码头工人容器.Flannel的目的就是为集群中的所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得同属一个内网且不重复的IP地址,并让属于不同节点上的容器能够直接通过内网IP通信。李>