添加 K8S 节点

部署完集群后,默认只有一个 k8s 控制节点,介绍如何添加额外的 k8s 节点

部署完集群后,整个 kubernetes 集群只有一个节点,onecloud 相关服务都运行在了该节点上,为了服务的高可用,我们可以继续添加节点到 kubernetes 集群。

环境准备

参考 “部署集群/环境准备” 的流程,安装好 docker 和 kubelet。

获取加入集群 token

然后在控制节点使用 ocadm 拿到加入集群的 token,在待部署节点使用 ocadm 加入集群,操作如下:

控制节点获取加入节点的 token

$ ocadm token list | grep bootstrap
4s4meb.xvgk2bwpmbospn3s   23h       2019-07-10T15:41:10+08:00   authentication,signing   The default bootstrap token generated by 'ocadm init'.   system:bootstrappers:kubeadm:default-node-token

加入节点

加入已有 kubernetes 集群的节点有两种角色,‘controlplane’ 和 ‘node’。

controlplane 角色的节点会运行 kube-apiserver、kube-controller-manager、kube-scheduler 和 etcd,加入 controlplane 节点的好处是让 kubernetes 控制相关服务和 etcd 变为高可用。

node 角色的节点只会运行 kubelet,运行负载容器。

加入 controlplane

加入控制节点需要从已有的 kubernetes 集群下载证书,证书使用 certificate key 加密,通过以下方法获取 certificate-key

$ ocadm init phase upload-certs
[upload-certs] Storing the certificates in Secret "kubeadm-certs" in the "kube-system" Namespace
[upload-certs] Using certificate key:
afa5e18bacb3f50b424cbf815fce6d1bd916fe91b58ba467053dc6b460198c55
# 这里的 10.168.222.18 是控制节点的 ip,如果是高可用部署则为负载均衡器的 vip,请根据你的环境修改
$ ocadm join --control-plane 10.168.222.18:6443 \
  --token 4s4meb.xvgk2bwpmbospn3s \
  --certificate-key afa5e18bacb3f50b424cbf815fce6d1bd916fe91b58ba467053dc6b460198c55 \
  --discovery-token-unsafe-skip-ca-verification

加入 node

# 这里的 10.168.222.18 是控制节点的 ip,如果是高可用部署则为负载均衡器的 vip, 请根据你的环境修改
$ ocadm join 10.168.222.18:6443 \
  --token 4s4meb.xvgk2bwpmbospn3s \
  --discovery-token-unsafe-skip-ca-verification
...
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

Last modified 01.01.0001