Kubernetes 集群-添加节点
2020-05-23 by dongnan
环境
在前面的三篇文章中,使用 Kubeadm
部署了 K8S
集群环境:
测试的K8S
集群由一个Master
管理节点、两个Worker
计算节点组成。
目标
Kubernetes 集群支持Node
节点的横向扩展,下面以添加新的节点host5
为例。
步骤
准备主机
在控制台创建ECS
主机,选择K8S
集群使用的VCP
网络与安全组,并更新操作系统:
apt upgrade && apt autoremove
安装kubeadm
# 指定使用相同的版本
apt install kubeadm=1.17.4-00 kubelet=1.17.4-00 kubectl=1.17.4-00
加载镜像(可选)
可选步骤,有些Docker镜像比较大,希望快速创建应用,所以在集群其它节点中导出了镜像:
# 镜像目录
cd docker-images
# 批量导入镜像
for i in `ls`;do echo $i; gzip -dc $i | docker load; sleep 2;done
准备环境变量
这些环境变量是在新的节点上执行的:
export MASTER_IP=10.0.20.20
export APISERVER_NAME=master.zzx
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
加入K8S集群
获得加入集群的命令参数:
# Master 上执行命令
kubeadm token create --print-join-command
# 复制Master返回的加入集群命令,并在Woker执行该命令
kubeadm join master.zzx:6443 --token n3z1qm.07z4aq93o5feyq7s \
--discovery-token-ca-cert-hash sha256:622f1xxxxa99f3806b7115ffc1
查看节点
kubectl get node
NAME STATUS ROLES AGE VERSION
host0 Ready master 363d v1.17.4
host1 Ready <none> 363d v1.17.4
host2 Ready <none> 363d v1.17.4
host3 Ready <none> 310d v1.17.4
host5 Ready <none> 100s v1.17.4
添加标签(可选)
为新节点添加标签,是为了区分阿里云可用区域:
kubectl label nodes host5 failure-domain.k8s.io/zone=zoneB
检查标签:
kubectl get nodes host5 --show-labels
NAME STATUS ROLES AGE VERSION LABELS
host5 Ready <none> 6m37s v1.17.4 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,failure-domain.k8s.io/zone=zoneB,kubernetes.io/arch=amd64,kubernetes.io/hostname=host5,kubernetes.io/os=linux
其它
- 阿里云产品(
mysql
、redis
、nas
)互联互通检查。 - 节点加入
SLB
后端服务器组。
小结
在K8S
运维实践中,集群有备份、删除、添加、更新维护等需求,下一篇介绍如何更新维护集群。