工作节点服务器需要至少启动两个 pod ,需要用到的镜像为 kube-proxy 和 pause ,同理我们无法直接从 k8s.grc.io 下载,需要提前拉取后修改 tag ,执行下面命令:
images=(kube-proxy:v1.15.2 pause:3.1) for imageName in ${images[@]} ; do docker pull mirrorgooglecontainers/$imageName docker tag mirrorgooglecontainers/$imageName k8s.gcr.io/$imageName docker rmi mirrorgooglecontainers/$imageName done 加入集群执行控制平面节点初始化完成后提供的添加工作节点命令,格式如下:
kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>命令中的 --token 和 --discovery-token-ca-cert-hash 在集群master节点部署完成后的结果信息中有体现,直接复制出来即可使用。
可以通过在控制平面节点执行kubeadm token list来获取token信息,token 令牌会在 24 小时候失效,如果要创建新的令牌,使用 kubeadm token create 命令。
可以通过下面命令获取 --discovery-token-ca-cert-hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \ openssl dgst -sha256 -hex | sed 's/^.* //'注意,如果需要重新执行 kubeadm join ,需先先执行 kubeadm reset 进行一些清理工作。
节点执行完 join 命令后,可以在控制平面节点检查 pod 启动进度 watch kubectl get pods --all-namespaces -o wide,观察新节点服务器上的 pod 启动状态,正常启动则加入成功。参照上述步骤,依次讲所有工作节点加入集群。
检查工作节点状态工作节点加入集群后,随着工作节点上相应 pod 的正常启动,工作节点状态会由有 NotReady 切换到 Ready,Pod 启动需要时间,请耐心等待。所有节点正常加入集群后,可以通过命令查看节点状态:
kubectl get nodes # ECHO ------ NAME STATUS ROLES AGE VERSION vm-10-6-ubuntu Ready master 7h48m v1.15.2 vm-10-7-ubuntu Ready <none> 7h1m v1.15.2 vm-10-8-ubuntu Ready <none> 7h11m v1.15.2 vm-10-9-ubuntu Ready <none> 6h50m v1.15.2 vm-10-10-ubuntu Ready <none> 43s v1.15.2 安装 dashboarddashboard 不会随机群一起安装,需要单独部署,执行下面命令安装:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta3/aio/deploy/recommended.yaml这里要注意 dashboard 的版本,并非所有版本的dashboard都能和任意版本的 k8s 集群完全兼容。引用官网对照表
Kubernetes version 1.11 1.12 1.13 1.14 1.15Compatibility ? ? ? ? ✓
✓ Fully supported version range.
? Due to breaking changes between Kubernetes API versions, some features might not work correctly in the Dashboard.
默认情况下,Dashboard 使用最小 RBAC 配置进行部署。目前,Dashboard 仅支持使用 Bearer Token 登录。可以按照关于创建示例用户的指南 进行操作。
关于 dashboard 的使用,随后会抽时间再详细写一篇进行介绍。
结语现在我们已经拥有一个 4 工作节点的单控制平面 k8s 集群,本文只是简单介绍了部署过程,关于集群的管理、使用还会涉及到非常多的 k8s 概念及领域知识,官网文档基本上很详细的介绍了各类概念还有详尽的操作演示,可以多看、多实践。
最后,祝大家身体健康、工作顺利、学有所成、万事如意。