本文是在尝试搭建 Kubernetes 学习环境过程中的对一些部署原理的整理
Kubernetes 的部署:
Kubernetes有很多组件,每个组件都是一个需要被执行的、单独的二进制文件。
- 一种部署方式:将这些二进制文件传输到指定的机器当中,然后编写控制脚本来启停这些组件。
- 另一种方式:将每个组件做一个容器镜像,然后在每台宿主机用docker run指令启动这些组件容器。
kubeadm 部署方式:
由于 kubelet 不仅要和容器运行时打交道,还需要直接操作宿主机,比如配置容器网络、管理容器数据卷等,所以容器里运行 kubelet 会很麻烦。
所以,kubeadm 把 kubelet 直接运行在宿主机上,然后使用容器部署其他的 Kubernetes 组件。
kubeadm 部署流程:
-
首先在机器上手动安装 docker、kubeadm、kubelet、kubectl 几个二进制文件;然后才能再容器化部署其他 Kubernetes 组件。
-
kubeadm init
(1)检查工作(Preflight Checks):检查内核版本、Cgroups模块可用性、组件版本、工作端口占用情况、Docker等依赖软件安装情况……
(2)生成对外提供服务的证书及对应的目录
(3)生成其他组件访问 kube-apiserver 所需的配置文件
(4)为 Ma