跳转至

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

其它

  • 阿里云产品(mysqlredisnas)互联互通检查。
  • 节点加入SLB后端服务器组。

小结

K8S运维实践中,集群有备份、删除、添加、更新维护等需求,下一篇介绍如何更新维护集群。

参考

回到页面顶部