上节咱们经过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。html
安装 Pod 网络node
要让 Kubernetes Cluster 可以工做,必须安装 Pod 网络,不然 Pod 之间没法通讯。git
Kubernetes 支持多种网络方案,这里咱们先使用 flannel,后面还会讨论 Canal。github
执行以下命令部署 flannel:docker
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
在 k8s-node1 和 k8s-node2 上分别执行以下命令,将其注册到 Cluster 中:网络
kubeadm join --token d38a01.13653e584ccc1980 192.168.56.105:6443
这里的 --token
来自前面 kubeadm init
输出的第 ⑨ 步提示,若是当时没有记录下来能够经过 kubeadm token list
查看。app
kubeadm join
执行以下:学习
根据提示,咱们能够经过 kubectl get nodes
查看节点的状态。ui
目前全部节点都是 NotReady
,这是由于每一个节点都须要启动若干组件,这些组件都是在 Pod 中运行,须要首先从 google 下载镜像,咱们能够经过以下命令查看 Pod 的状态:google
kubectl get pod --all-namespaces
Pending
、ContainerCreating
、ImagePullBackOff
都代表 Pod 没有就绪,Running
才是就绪状态。咱们能够经过 kubectl describe pod <Pod Name>
查看 Pod 具体状况,好比:
kubectl describe pod kube-flannel-ds-v0p3x --namespace=kube-system
为了节省篇幅,这里只截取命令输出的最后部分,能够看到在下载 image 时失败,若是网络质量很差,这种状况是很常见的。咱们能够耐心等待,由于 Kubernetes 会重试,咱们也能够本身手工执行 docker pull
去下载这个镜像。
等待一段时间,image 都成功下载后,全部 Pod 会处于 Running
状态。
这时,全部的节点都已经 Ready
,Kubernetes Cluster 建立成功,一切准备就绪。
本章经过 kubeadm 部署了三节点的 Kubernetes 集群,后面章节咱们都将在这个实验环境中学习 Kubernetes 的各项技术。
书籍:
1.《天天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《天天5分钟玩转OpenStack》
https://item.jd.com/12086376.html