除Container Service控制台之外,您還可以通過Kubernetes命令列工具kubectl來管理叢集以及應用。本文介紹如何擷取包含當前登入使用者身份資訊的叢集KubeConfig並通過kubectl串連叢集。
1、安裝kubectl工具
確定待安裝kubectl的用戶端機器,下載和安裝kubectl。
請根據運行環境選擇正確版本的 kubectl。以下以 Linux 環境為例。
2、選擇KubeConfig類型
您可以根據以下維度選擇KubeConfig類型。
憑證有效期間:
臨時KubeConfig:適用於無需長期串連叢集API Server的訪問情境,以降低KubeConfig憑據泄露後的安全風險。臨時KubeConfig支援配置有效期間,憑證到期後無法串連叢集。
長期KubeConfig:預設有效期間為3年。在臨近到期180天內,可通過Container Service管理主控台或擷取叢集KubeConfig介面擷取輪轉後重新整理的KubeConfig。新KubeConfig認證的有效期間仍為3年,老的KubeConfig憑據在認證到期前仍然有效。請根據控制台或介面返回的KubeConfig到期時間及時擷取輪轉憑據。
訪問叢集的方式:
公網串連:擷取公網訪問的KubeConfig,通過公網中的任意機器作為用戶端來串連叢集。
內網串連:擷取內網訪問的KubeConfig,此時kubectl用戶端機器必須與叢集位於同一VPC。
針對開啟了公網SSH登入的ACK專有叢集,控制台還支援擷取 SSH,即通過SSH登入Master節點,配置KubeConfig後使用kubectl管理叢集。詳情請參見通過SSH串連ACK專有版叢集的Master節點。
根據安全責任共擔模型,KubeConfig憑據需要由您負責和維護,請謹慎維護憑據的合理性和有效性,避免KubeConfig泄露帶來的安全風險。
3、配置KubeConfig並串連叢集
您可以在控制台擷取KubeConfig內容,粘貼至用戶端機器的$HOME/.kube/config檔案中。該檔案用於儲存所要管理叢集的訪問憑證。kubectl會根據該檔案串連至叢集。
RAM使用者串連叢集前,除Container Service的系統許可權外,還需要被授予叢集操作的許可權,請參見授權。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱或者目的地組群右側操作列下的詳情。
在叢集資訊頁面,單擊串連資訊頁簽,選擇臨時或長期KubeConfig。
選擇公網訪問或內網訪問頁簽,單擊複製,將複製的叢集憑證內容粘貼至
$HOME/.kube/config檔案中,儲存並退出。如果
$HOME/目錄下沒有.kube目錄和config檔案,請自行建立。執行kubectl命令以驗證叢集的連通性。
此命令以查詢命名空間為例。
kubectl get namespace預期輸出:
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
相關操作
吊銷KubeConfig
當企業內部員工離職或某個簽發KubeConfig疑似泄露等情況發生時,吊銷該叢集的KubeConfig可保障叢集的安全。吊銷成功後,系統會產生新的KubeConfig和授權綁定,同時,之前已下發的針對該RAM使用者或角色的原KubeConfig會失效。詳情請參見吊銷叢集的KubeConfig憑證。
清除與恢複KubeConfig
您可以批量清理管理範圍內指定叢集或RAM使用者或角色的KubeConfig許可權。清除後,系統不會產生新的KubeConfig。您還可以通過KubeConfig資源回收筒功能恢複已清除的指定KubeConfig許可權。詳情請參見清除KubeConfig、通過ack-ram-tool清理叢集中指定使用者的許可權、使用KubeConfig資源回收筒。
常見問題
如何擷取KubeConfig中使用的認證所關聯的身份資訊?
執行如下命令擷取。
grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -text |grep Subject:預設情況下,kubectl使用$HOME/.kube/config檔案來串連叢集,也可以通過設定KUBECONFIG環境變數或設定--kubeconfig參數來指定其他KubeConfig檔案。
預期輸出類似如下:
Subject: O=system:users, OU=, CN=1***-1673419473其中:
O:所屬的Kubernetes使用者組資訊,樣本中的組名為system:users。CN:關聯的使用者資訊。樣本中的使用者為1***-1673419473,其中1***關聯的是您帳號下的某個阿里雲使用者ID。
如何擷取KubeConfig所使用的認證的到期時間?
執行如下命令,擷取名為KubeConfig的檔案使用的認證所關聯的到期時間。
grep client-certificate-data kubeconfig |awk '{print $2}' |base64 -d | openssl x509 -noout -enddate預設情況下,kubectl使用$HOME/.kube/config檔案來串連叢集,也可以通過設定KUBECONFIG環境變數或設定--kubeconfig參數來指定其他KubeConfig檔案。
預期輸出類似如下:
notAfter=Jan 10 06:44:34 2026 GMT其中Jan 10 06:44:34 2026 GMT即為認證的到期時間。
您可以在認證到期前的180天內或認證到期後,通過控制台或者OpenAPI擷取使用新到期時間的認證的KubeConfig。
如何擷取CA、Key和API Server資訊?
可使用以下命令從KubeConfig檔案中提取CA、Key和API Server資訊。
cat ./kubeconfig |grep client-certificate-data | awk -F ' ' '{print $2}' |base64 -d > ./client-cert.pem
cat ./kubeconfig |grep client-key-data | awk -F ' ' '{print $2}' |base64 -d > ./client-key.pem
APISERVER=`cat ./kubeconfig |grep server | awk -F ' ' '{print $2}'`後續步驟
配置完成後,您可使用kubectl從本機電腦訪問Kubernetes叢集。