節點加入k8s 叢集的步驟

希望能摸鱼的凛耶酱發表於2024-03-13
  • 使用kubeadm 初始化叢集成功後會返回join命令,裡面包含token, discovery-token-ca-cert-hash 等引數

token的過期時間是24h
certrificate-key 過期時間是2小時

  • 如果不記得,可以執行下面的命令獲取
    1.如果沒有超過24h,用下面的命令獲取(主要檢視是否過期)
kubeadm token list 

2.如果過期,那用重新建立token

kubeadm token create

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

在node節點輸入join命令:

kubeadm join 10.26.12.152:6443 --token n5l04n.f1bib0dhbd2ca69i         --discovery-token-ca-cert-hash sha256:7cd067dd84ed97d4863cd8ee4af1e7adefa20657c6e599251c2148838a9512b5

containerd安裝的預設禁用
使用安裝包安裝的containerd會預設禁用作為容器的執行時的功能,即安裝包安裝containerd後預設禁用containerd作為容器執行時
這會引起K8S報錯,因為沒有容器執行時可以用
開啟方法:

vim /etc/containerd/config.toml
# 到這個檔案中把disabled_plugins=["cri"] 改成 disabled_plugins=[]
systemctl restart containerd
# 重啟後才能生效

再執行join命令就沒問題了。

[root@whdcinthe004 ~]# kubectl get node
NAME                    STATUS   ROLES           AGE     VERSION
whdcinthe001.cn.infra   Ready    <none>          2m34s   v1.28.7
whdcinthe004.cn.infra   Ready    control-plane   47h     v1.28.7

相關文章