经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Kubernetes » 查看文章
六、 部署 k8s Cluster(下)
来源:cnblogs  作者:cuiyongchao007  时间:2021/1/25 10:52:01  对本文有异议

六、 部署 k8s Cluster(下)

? 上节我们[通过 kubeadm 在 k8s-master 上部署了 Kubernetes,本节安装 Pod 网络并添加 k8s-node1 和 k8s-node2,完成集群部署。

(一)安装 Pod 网络

? 要让 Kubernetes Cluster 能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信。Kubernetes 支持多种网络方案,这里我们先使用 flannel,后面还会讨论 Canal。

? 执行如下命令部署 flannel:

  1. root@cuiyongchao:~# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  2. podsecuritypolicy.policy/psp.flannel.unprivileged created
  3. clusterrole.rbac.authorization.k8s.io/flannel created
  4. clusterrolebinding.rbac.authorization.k8s.io/flannel created
  5. serviceaccount/flannel created
  6. configmap/kube-flannel-cfg created
  7. daemonset.apps/kube-flannel-ds created
  8. root@cuiyongchao:~#

(二)添加 k8s-node1 和 k8s-node2

在 k8s-node1 和 k8s-node2 上分别执行如下命令,将其注册到 Cluster 中:

  1. 关闭swap
  2. swapoff -a
  3. sed -ri 's/.*swap.*/#&/' /etc/fstab
  4. kubeadm join --token wjxawc.qsjz0lp4m9ihdcy0 10.0.0.41:6443 --discovery-token-unsafe-skip-ca-verification

这里的 --token 来自前面 kubeadm init 输出的第 ⑨ 步提示,如果当时没有记录下来可以通过 kubeadm token list 查看。

  1. root@k8s-master:~# kubeadm token list
  2. TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
  3. 0872ga.bg0rbp0jvp2omjem 23h 2020-11-02T11:22:37Z authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token

kubeadm join 执行如下:

  1. root@k8s-node-02:~# kubeadm join --token 0872ga.bg0rbp0jvp2omjem 10.0.0.41:6443 --discovery-token-unsafe-skip-ca-verification
  2. [preflight] Running pre-flight checks
  3. [preflight] Reading configuration from the cluster...
  4. [preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
  5. [kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
  6. [kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
  7. [kubelet-start] Starting the kubelet
  8. [kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
  9. This node has joined the cluster:
  10. * Certificate signing request was sent to apiserver and a response was received.
  11. * The Kubelet was informed of the new secure connection details.
  12. Run 'kubectl get nodes' on the control-plane to see this node join the cluster.
  13. root@k8s-node-02:~#

根据提示,我们可以通过 kubectl get nodes 查看节点的状态。

  1. root@k8s-master:~# kubectl get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. k8s-master Ready master 17m v1.19.3
  4. k8s-node-01 Ready <none> 76s v1.19.3
  5. k8s-node-02 Ready <none> 94s v1.19.3

目前所有节点都是 NotReady,这是因为每个节点都需要启动若干组件,这些组件都是在 Pod 中运行,需要首先从 google 下载镜像,我们可以通过如下命令查看 Pod 的状态:

  1. root@k8s-master:~# kubectl get pod --all-namespaces
  2. NAMESPACE NAME READY STATUS RESTARTS AGE
  3. kube-system coredns-6d56c8448f-9grxk 1/1 Running 0 17m
  4. kube-system coredns-6d56c8448f-mrx55 1/1 Running 0 17m
  5. kube-system etcd-k8s-master 1/1 Running 0 17m
  6. kube-system kube-apiserver-k8s-master 1/1 Running 0 17m
  7. kube-system kube-controller-manager-k8s-master 1/1 Running 0 17m
  8. kube-system kube-flannel-ds-cqwqv 1/1 Running 0 12m
  9. kube-system kube-flannel-ds-nh2qg 1/1 Running 0 104s
  10. kube-system kube-flannel-ds-wbrs6 1/1 Running 0 86s
  11. kube-system kube-proxy-45prh 1/1 Running 0 17m
  12. kube-system kube-proxy-g2c4x 1/1 Running 0 104s
  13. kube-system kube-proxy-jwvg5 1/1 Running 0 86s
  14. kube-system kube-scheduler-k8s-master 1/1 Running 0 17m
  15. root@k8s-master:~#

? PendingContainerCreatingImagePullBackOff 都表明 Pod 没有就绪,Running 才是就绪状态。我们可以通过 kubectl describe pod <Pod Name> 查看 Pod 具体情况,比如:

? 为了节省篇幅,这里只截取命令输出的最后部分,可以看到在下载 image 时失败,如果网络质量不好,这种情况是很常见的。我们可以耐心等待,因为 Kubernetes 会重试,我们也可以自己手工执行 docker pull 去下载这个镜像。

等待一段时间,image 都成功下载后,所有 Pod 会处于 Running 状态。

? 这时,所有的节点都已经 Ready,Kubernetes Cluster 创建成功,一切准备就绪。

原文链接:http://www.cnblogs.com/cuiyongchao007/p/14305741.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号