K8s 学习笔记
上篇K8s 入门笔记第一部分讲的是 K8s 的部分名词,第二部分讲解的是 docker 技术,而 k8s 其实是一种容器编排工具(远不止此),是作为 docker 技术的上层建筑而定位的。
核心名词补充(参考下文 K8s 的架构辅助理解):
- 控制节点,master 节点。有三个组件(kube-apiserver、kube-scheduler、kube-controller-manager)分别负责API 服务、调度、容器编排等三项功能。
- 计算节点,Node 节点。
其他名词还是参考K8s 入门笔记中的第一部分。
K8s 的全局架构:
- 场景:一个 Web 容器,一个 DB 容器,两个容器运行在两个不同的机器上,对于一个容器而言,它的 IP 地址信息是不固定的,所以 Web 容器如何找到 DB 容器的 Pod 呢?
- K8s 给 Pod 绑定了一个 Service 服务,比如 DB 容器所在的 Pod 就有一个对应的 Service,这个 Service 对外暴露一个固定的网络地址,使外界可以找到此 Service。当 Pod 的 IP 地址等信息发生变化时,由 K8s 完成此信息的维护。
一键部署 k8s的实践
参考自 K8s 官网教程、极客时间出品的《深入剖析Kubernetes》第 10、11 讲
1. 手动安装 kubeadm(因为 kubelet需要上帝视角,不能通过 docker 安装)
1 | # CentOS 系统 |
在第 3 步可能会报关于 kubernetes-cmi 的错误,参考链接:kubeadm1.10安装缺少包:kubernetes-cmi = 0.6.0
安装 kubernetes-cmi 后,再将过高版本的 kubelet 卸掉,重新安装低版本。
1 | kubelet --version // 查看当前版本 |
2. 部署 master 结点
1 | Kubernetes master 的 init 全过程 |
3. 部署 worker 结点
在 worker 机器上重复以上”手动安装 kubeadm”中的全部步骤
执行 2.2 中的 kubeadm join 之前保存好的命令
如果 token 丢了或者不记得了,可以在 master 结点上执行以下命令重新生成 token
1
2kubeadm token generate
kubeadm token create <generated-token> --print-join-command --ttl=0搞定