增加工作节点

Node 节点(也称为工作节点、Worker 节点)上主要部署公司的一些业务应用,生产环境中不建议 Master节点部署系统组件之外的其他 Pod,测试环境可以允许 Master 节点部署 Pod 以节省系统资源。

Node 节点加入集群和 Master 的区别是没有 --control-plane 和 --certificate-key 参数:

kubeadm join 192.168.10.129:16443 --token abcdef.0123456789abcdef \
	--discovery-token-ca-cert-hash sha256:88bc8885925550f5ed88bc1d3415b89156f220bcc111ee0f245feaae450c7fd2

所有节点初始化完成后,查看集群状态:

# kubectl get nodes
NAME         STATUS     ROLES           AGE    VERSION
k8s-node01   NotReady   <none>          5m9s   v1.27.6
k8s-node02   NotReady   <none>          15s    v1.27.6
master01     NotReady   control-plane   57m    v1.27.6
如果没有令牌

如果没有令牌,可以通过在控制平面节点上运行以下命令来获取令牌:

kubeadm token list

输出类似于以下内容:

TOKEN                    TTL  EXPIRES              USAGES           DESCRIPTION            EXTRA GROUPS
8ewj1p.9r9hcjoqgajrj4gi  23h  2018-06-12T02:51:28Z authentication,  The default bootstrap  system:
                                                   signing          token generated by     bootstrappers:
                                                                    'kubeadm init'.        kubeadm:
                                                                                           default-node-token

默认情况下,令牌会在 24 小时后过期。如果要在当前令牌过期后将节点加入集群, 则可以通过在控制平面节点上运行以下命令来创建新令牌:

kubeadm token create

输出类似于以下内容:

5didvk.d09sbcov8ph2amjw

如果你没有 --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/^.* //'

输出类似于以下内容:

8cb2de97839780a412b93877f8507ad6c94f73add17d5d7058e91741c9d5ec78

由于集群节点通常是按顺序初始化的,CoreDNS Pod 很可能都运行在第一个控制面节点上。

为了提供更高的可用性,请在加入至少一个新节点后使用 kubectl -n kube-system rollout restart deployment coredns 命令,重新平衡这些 CoreDNS Pod。

kubectl -n kube-system rollout restart deployment coredns

最后更新于