博主最近在學習二進制部署k8s,在node上部署kubelet組件時遇到錯誤。
作為一個新手,遇見這個問題慌得一批,完全不知道如何下手,百度也看不懂。
這個分享一下解決得思路:
一、檢查node節點,kubelet得bin命令是否拷貝
用cp 命令把二進制包里面得命令復制到你kubernetes的工作目錄
二、檢查node節點,ssl證書是否拷貝,跟主節點是否一致
在master節點生成了證書后,記得復制過去
三、對比跟node和master的bootstrap.kubeconfig是否一致,不一致復制master或者重新生成
補充:master重新生成bootstrap.kubeconfig命令
先查看之前的token.csv和kube-apiserver.conf,拿到兩個數據
TOKEN:4fb823f13d1d21be5991b9e3a582718c KUBE_APISERVER="https://192.168.1.130:6443" # 生成 kubelet bootstrap kubeconfig 配置文件 kubectl config set-cluster kubernetes \ --certificate-authority=/opt/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=https://192.168.1.130:6443 \ --kubeconfig=bootstrap.kubeconfig kubectl config set-credentials "kubelet-bootstrap" \ --token=4fb823f13d1d21be5991b9e3a582718c \ --kubeconfig=bootstrap.kubeconfig kubectl config set-context default \ --cluster=kubernetes \ --user="kubelet-bootstrap" \ --kubeconfig=bootstrap.kubeconfig kubectl config use-context default --kubeconfig=bootstrap.kubeconfig # 拷貝到配置文件路徑 scp bootstrap.kubeconfig root@paas2:/opt/kubernetes/cfg/
四、是不是沒有授權 kubelet-bootstrap 用戶允許請求證書
這一部非常坑,有時候自己沒看清一些前輩的文檔,忘了這步
在master執行一下命令,執行后在node上重啟kubelet
#如果啟動報錯,在master節點授權boot-startboop kubectl create clusterrolebinding kubelet-bootstrap \ --clusterrole=system:node-bootstrapper \ --user=kubelet-bootstrap
node重啟
systemctl start kubelet
systemctl enable kubelet
systemctl status kubelet
五、以上都不行請查看日志
journalctl -xefu kubelet