操作場景
本文將以CCE集群為例,介紹如何通過kubectl連接CCE集群。
權限說明
kubectl訪問CCE集群是通過集群上生成的配置文件(kubeconfig.json)進行認證,kubeconfig.json文件內包含用戶信息,CCE根據用戶信息的權限判斷kubectl有權限訪問哪些Kubernetes資源。即哪個用戶獲取的kubeconfig.json文件,kubeconfig.json就擁有哪個用戶的信息,這樣使用kubectl訪問時就擁有這個用戶的權限。
使用kubectl連接集群
若您需要從客戶端計算機連接到kubernetes集群,可使用kubernetes命令行客戶端kubectl,您可登錄CCE控制臺,單擊待連接集群名稱,在“集群信息”頁面查看訪問地址以及kubectl的連接步驟,如下圖所示。
CCE支持“VPC網絡內訪問”和“互聯網訪問”兩種方式訪問集群。
- VPC網絡內訪問:即通過內網地址訪問,訪問集群的客戶端機器需要位于集群所在的同一VPC內。
- 互聯網訪問:即通過公網地址訪問,訪問集群的客戶端機器需要具備訪問公網的能力,并為集群綁定公網地址。
注意通過“互聯網訪問”方式訪問集群,您需要在集群信息頁中的“連接信息”版塊為集群綁定公網地址。綁定公網集群的kube-apiserver將會暴露到互聯網,存在被攻擊的風險,請謹慎開放該能力。
圖 集群連接信息

您需要先下載kubectl以及配置文件,拷貝到您的客戶端機器,完成配置后,即可以訪問kubernetes集群。使用kubectl連接集群的步驟如下:
步驟 1 下載kubectl
在,根據集群版本單擊對應鏈接,然后單擊 Client Binaries ,選擇對應平臺軟件包下載即可。如需通過命令行方式安裝kubectl,請參考。
圖 下載kubectl

步驟 2 獲取kubectl配置文件
在集群信息頁中的“連接信息”版塊,單擊kubectl后的“點擊查看”按鈕,查看kubectl的連接信息,并在彈出頁面中下載配置文件。
圖 下載配置文件

說明
kubectl配置文件(kubeconfig.json)用于對接認證集群,請您妥善保存該認證憑據,防止文件泄露后,集群有被攻擊的風險。
當前集群默認不開啟域名雙向認證說明,可通過kubectl config use-context externalTLSVerify 命令開啟雙向認證。對已經綁定了EIP的集群,如果在使用雙向認證時出現認證不通過的情況(x509: certificate is valid),需要重新綁定EIP并重新下載kubeconfig.json
IAM用戶下載的配置文件所擁有的Kubernetes權限與CCE控制臺上IAM用戶所擁有的權限一致。
如果Linux系統里面配置了KUBECONFIG環境變量,kubectl會優先加載KUBECONFIG環境變量,而不是$home/.kube/config,使用時請注意。
步驟 3 配置kubectl
以Linux環境為例安裝和配置kubectl。
- 拷貝步驟1中下載的kubectl及步驟2中下載的配置文件到您客戶端機器的/home目錄下。
- 登錄到您的客戶端機器,配置kubectl。如果已經安裝 kubectl,則跳過此步驟。
cd /home?
chmod +x kubectl?
mv -f kubectl /usr/local/bin
- 登錄到您的客戶端機器,配置kubectl 配置文件。
cd /home?
mkdir -p $HOME/.kube?
mv -f kubeconfig.json $HOME/.kube/config
- 根據使用場景,切換kubectl的訪問模式。
- VPC內網接入訪問請執行:
kubectl config use-context internal
- 互聯網接入訪問請執行(集群需綁定公網地址):
kubectl config use-context external
- 互聯網接入訪問如需開啟雙向認證請執行(集群需綁定公網地址):
kubectl config use-context externalTLSVerify
關于集群雙向認證的說明請參見域名雙向認證。
域名雙向認證
CCE當前支持域名雙向認證。
- 域名雙向認證默認不開啟,可通過kubectl config use-context externalTLSVerify 命令切換到externalTLSVerify這個context開啟使用。
- 集群綁定或解綁彈性IP、配置或更新自定義域名時,集群服務端證書將同步簽入最新的集群訪問地址(包括集群綁定的彈性IP、集群配置的所有自定義域名)。
- 異步同步集群通常耗時約5-10min,同步結果可以在操作記錄中查看“同步證書”。
- 對已經綁定了EIP的集群,如果在使用雙向認證時出現認證不通過的情況(x509: certificate is valid),需要重新綁定EIP并重新下載kubeconfig.json。
- 早期未支持域名雙向認證時,kubeconfig.json中包含"insecure-skip-tls-verify": true字段,如圖所示。如果需要使用雙向認證,您可以重新下載kubeconfig.json文件并配置開啟域名雙向認證。
圖 未開啟域名雙向認證

常見問題(Error from server Forbidden)
使用kubectl在創建或查詢Kubernetes資源時,顯示如下內容。
kubectl get deploy Error from server (Forbidden): deployments.apps is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "deployments" in API group "apps" in the namespace "default"
原因是用戶沒有操作該Kubernetes資源的權限,請參見命名空間權限(Kubernetes RBAC授權)為用戶授權。