執行kubectl命令時報錯 error: You must be logged in to the server (Unauthorized)


背景:故意修改Kubernetes集群所在服務器節點上的時間使Kubernetes證書過期,重新頒發證書后,使用kubeadm alpha certs check-expiration命令查看證書有效時間,相關證書都已重新頒發。

 但是在Kubernetes集群master節點上執行kubectl命令報如下錯誤:

error: You must be logged in to the server (Unauthorized)
錯誤:您必須登錄到服務器(未經授權)

原因:這個是權限問題,配置身份認證的文件為/etc/kubernetes/admin.conf,頒發證書時/etc/kubernetes/admin.conf文件重新生成,但是$HOME/.kube/config並沒有得到替換。

解決方案:
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

解釋:當我們使用kubeadm成功引導啟動(init)一個Kubernetes集群的控制平面后,kubeadm會在init的輸出結果中給予我們下面這樣的“指示”:

 
         
`... ...
Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
... ...
      kubeadm init 在結尾處輸出的這些信息是在告知我們如何配置kubeconfig文件。按照上述命令配置后,master節點上的kubectl就可以直接使用$HOME/.kube/config的信息訪問k8s cluster了。 並且,通過這種配置方式,kubectl也擁有了整個集群的管理員(root)權限。

推薦: https://blog.csdn.net/luanpeng825485697/article/details/83955721


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM