部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)相关的知识,希望对你有一定的参考价值。

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

安装 Pod 网络

要让 Kubernetes Cluster 能够工作,必须安装 Pod 网络,否则 Pod 之间无法通信。

Kubernetes 支持多种网络方案,这里我们先使用 flannel,后面还会讨论 Canal。

执行如下命令部署 flannel:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

技术分享图片

 

添加 k8s-node1 和 k8s-node2

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

kubeadm join --token d38a01.13653e584ccc1980 192.168.56.105:6443

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

技术分享图片

 

kubeadm join 执行如下:

技术分享图片

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

技术分享图片

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

kubectl get pod --all-namespaces

技术分享图片

PendingContainerCreatingImagePullBackOff 都表明 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

技术分享图片

以上是关于部署 k8s Cluster(下)- 每天5分钟玩转 Docker 容器技术(119)的主要内容,如果未能解决你的问题,请参考以下文章

k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)

k8s 核心功能 - 每天5分钟玩转 Docker 容器技术(116)

通过例子理解 k8s 架构 - 每天5分钟玩转 Docker 容器技术(122)

通过例子理解 k8s 架构 - 每天5分钟玩转 Docker 容器技术(122)

DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)

每天5分钟玩转Kubernetes | Cluster IP底层实现