日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

獲取集群KubeConfig并通過kubectl工具連接集群

除了通過容器服務控制臺來管理集群之外,您還可以通過Kubernetes命令行工具kubectl來管理集群以及應用。本文介紹如何獲取包含當前登錄用戶身份信息的集群KubeConfig以及通過kubectl客戶端連接集群。

索引

kubectl和KubeConfig介紹

kubectl是標準的Kubernetes命令行管理工具,通過kubectl您可以連接和管理阿里云容器服務ACK的所有集群類型,包括ACK專有版、ACK托管版(包括ACK基礎版和ACK Pro版)以及ACK Serverless。

KubeConfig中包含了有關集群、用戶、命名空間以及身份認證機制的信息。kubectl使用KubeConfig來連接集群。

連接方式介紹(公、私網連接)

您可以通過公網或私網兩種方式來連接集群。

  • 公網連接

    當集群開啟了API Server公網訪問能力(即集群已通過阿里云彈性公網IP EIP暴露了API Server)時,您可以通過公網中的任意機器作為客戶端來連接集群。關于如何開啟API Server的公網訪問能力,請參見控制集群API Server的公網訪問能力

  • 私網連接

    當您只需要通過私網來連接集群時,kubectl客戶端機器必須與集群位于同一VPC。

步驟一:安裝kubectl工具

說明

如果您使用的是RAM用戶,在使用kubectl連接集群之前,您需要授予RAM用戶集群操作權限。具體操作,請參見授權概述

  1. 根據需要,確定安裝kubectl的客戶端機器,并確定通過公網還是私網來連接集群。

  2. 下載kubectl工具,并安裝至對應的客戶端機器。

    詳細信息,請參見下載和安裝kubectl。由于K8s基于Linux內核,因此需下載Linux版本的kubectl,使用Linux命令執行操作。

步驟二:選擇集群憑證類型

ACK集群提供了兩種集群憑證(即KubeConfig),分別用于公網訪問和私網訪問。

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

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

  3. 集群信息頁面,單擊連接信息頁簽,根據需要選擇公網或私網訪問憑證。

    說明

    為了實現更靈活的集群連接策略,您還可以生成臨時KubeConfig,以控制憑證的有效期。詳情請參見生成臨時的KubeConfig

    集群連接信息

步驟三:配置集群憑證

重要
  • KubeConfig簽發證書的默認有效期為3年。在臨近過期180天內,您可以通過容器服務管理控制臺獲取集群KubeConfig接口獲取輪轉后刷新的KubeConfig,新KubeConfig證書的有效期仍為3年,老的KubeConfig憑據在證書過期前仍然有效,請您根據控制臺顯示或接口返回的KubeConfig過期時間及時獲取輪轉憑據。

  • 對于無需長期連接集群API Server的訪問場景,建議您優先使用臨時的KubeConfig,降低KubeConfig憑據泄露后的安全風險。

  • 根據安全責任共擔模型,Kubeconfig憑據需要由您負責和維護,請謹慎維護憑據的合理性和有效性,避免KubeConfig泄漏帶來的安全風險。

kubectl工具默認會從客戶端機器的$HOME/.kube目錄下查找名為config的文件。該文件用于存儲所要管理集群的訪問憑證,kubectl會根據該配置文件連接至集群。

  1. 選擇公網訪問私網訪問頁簽,單擊復制

  2. 將復制的集群憑證內容粘貼至$HOME/.kube目錄下的config文件中,保存并退出。

    說明

    如果$HOME/目錄下沒有.kube目錄和config文件,請自行創建。

    如果您使用的是專有版集群并且集群開啟了公網SSH登錄,連接信息頁簽下會展示SSH頁簽。除了參照以上方式連接集群外,您還可以通過SSH登錄Master節點,配置集群訪問憑證后,即可使用kubectl管理集群。關于如何通過SSH方式連接專有版集群,請參見通過SSH連接ACK專有版集群的Master節點專有版集群

步驟四:驗證集群連通性

集群憑證配置之后,您可以執行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),并設置憑證使用的有效期。

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

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

  3. 集群信息頁面,單擊連接信息頁簽,然后單擊生成臨時KubeConfig

  4. 臨時KubeConfig對話框,按照頁面提示設置臨時憑證的有效期及訪問集群的方式(包括公網訪問和內網訪問)。

    • 如果您使用公網訪問,請選擇公網訪問,單擊生成臨時KubeConfig,然后單擊復制,將內容粘貼到本地計算機的$HOME/.kube/config文件下。

    • 如果您使用內網訪問,請選擇內網訪問,單擊生成臨時KubeConfig,然后單擊復制,將內容粘貼到本地計算機的$HOME/.kube/config文件下。

    配置完成后,您可通過臨時憑證連接至集群。臨時憑證過期后,將無法連接集群。

吊銷KubeConfig

當企業內部員工離職或是某簽發KubeConfig疑似泄露等情況發生時,吊銷該集群的KubeConfig可有效保障集群的安全。吊銷成功后,系統會生成新的KubeConfig和授權綁定,同時,之前已下發的針對該RAM用戶或角色的原KubeConfig會失效。具體操作,請參見吊銷集群的KubeConfig憑證

清除與恢復KubeConfig

如果您需要批量清理管理范圍內指定集群維度或RAM用戶或角色維度的KubeConfig權限,您可以使用清除KubeConfig功能。成功清除后,系統不會生成新的KubeConfig。同時,您還可以通過KubeConfig回收站功能恢復已清除的指定KubeConfig權限。具體操作,請參見清除KubeConfig通過ack-ram-tool清理集群中指定用戶的權限使用KubeConfig回收站

常見問題

問題一:如何獲取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。

問題三:如何解決通過kubectl連接集群時提示certificate is valid for錯誤的問題?

當您為集群API Server的SLB綁定了新的IP,然后使用kubectl訪問這個新的IP時,執行kubectl命令失敗并提示Error while proxying request: x509: certificate is valid for xxxUnable to connect to the server: x509: certificate is valid for xxx錯誤。

  • 如果您使用的是托管版集群,您可以將新的IP加入到API Server證書SAN中,解決此問題。詳細信息,請參見自定義集群API Server證書SAN

  • 如果您使用的是專有版集群,您可以配置kubectl忽略這個錯誤,解決此問題。

    重要

    使用insecure-skip-tls-verify配置忽略該錯誤將導致客戶端不再校驗API Server的證書。建議您將專有版集群遷移為ACK Pro集群,然后再通過將新的IP加入到API Server證書SAN中的方法解決該問題。更多信息,請參考熱遷移ACK專有版集群至ACK集群Pro版

    • 您可以在執行kubectl命令的時候指定--insecure-skip-tls-verify參數。

      kubectl -s https://<IP>:6443 --insecure-skip-tls-verify get ns
    • 或者修改KubeConfig文件內容,新增insecure-skip-tls-verify: true配置,然后刪除certificate-authority-data配置。

      apiVersion: v1
      clusters:
      - cluster:
          server: https://<IP>:6443
          insecure-skip-tls-verify: true
        name: kubernetes
      contexts:

問題四:托管集群能否提供集群根證書密鑰用于自助生成KubeConfig證書?

托管集群不對外提供集群根證書密鑰,建議您通過控制臺或OpenAPI獲取集群KubeConfig。

相關文檔