使用kubeadm工具来部署K8S
K8S 部署利器: kubeadm
2017年一个独立的部署工具才终于诞生名叫kubeadm。这个项目的目标就是要让用户能够通过如下两条指令部署—个Kubernetes集群:
# 创建一个Master 节点
kubeadm init
# 将一个Node节点加入当前集群
Kubeadm join <Master 节点的IP 和端口>
kubeadm的工作原理
直接在宿主机上运行kubelet,然后使用容器部署其他Kubemetes组件。是在机器上手动安装kubeadm、 kubelet和kubectl这3个二进制文件。当然,kubeadm的作者已经为各个发行版的Linux准备好了安装包,所以只需要执行以下命令即可
api-get install kubeadm
kubeadm init 的工作流程
- 进行检查 Preflight Checks
- kubeadm就会生成Kubemetes对外提供服务所需的各种证书和对应目录。
kubeadm 为Kubemetes项目生成的证书文件都放在Master节点的/etc/kubemetes/pki目录下。在该目录下’最主要的证书文件是ca.car
和对应的私钥ca.key。
kubeadm join 的工作流程
是因为任何—台机器想要成为Kubemetes集群中的—个节点,就必须在集群的kube-apiserver上注册。可是,要想跟apiserver打交道,这台机器就必须获取相应的证书文件(CA文件)。
只要有了cluster-lnfO中的kube-apiserver的地址、端口、证书,kubelet就可以以“安全模式”(https)连接到 apiserver上’这样—个新节点就部署完成了。
kubeadm 的部署参数
kubeadm 确实简单易用,可是如何自定义集群组件参数? 使用配置文件来 部署Master 节点。
kubeadm init --config kubeadm.yaml
搭建一个完整的K8S集群
在开始部署前, 不妨先花几分钟时间回忆—下Kubemetes的架构。
我们的实践目标如下:
(l)在所有节点上安装Docker和kubeadm;
(2)部署KubemetesMaster;
(3)部署容器网络插件;
(4)部署KubemetesWOrker;
(5)部署Dashboard可视化插件;
(6)部署容器存储插件。