全部產品
Search
文件中心

Container Service for Kubernetes:擷取叢集KubeConfig並通過kubectl工具串連叢集

更新時間:Jul 08, 2025

除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的系統許可權外,還需要被授予叢集操作的許可權,請參見授權

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱或者目的地組群右側操作列下的詳情

  3. 叢集資訊頁面,單擊串連資訊頁簽,選擇臨時或長期KubeConfig。

  4. 選擇公網訪問內網訪問頁簽,單擊複製,將複製的叢集憑證內容粘貼至$HOME/.kube/config檔案中,儲存並退出。

    如果$HOME/目錄下沒有.kube目錄和config檔案,請自行建立。
  5. 執行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叢集。