建立或更新 Amazon EKS 叢集的 kubeconfig 檔案 - Amazon EKS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立或更新 Amazon EKS 叢集的 kubeconfig 檔案

在本主題中,您將為您的叢集建立 kubeconfig 檔案 (或更新現有的檔案)。

kubectl 命令列工具會使用 kubeconfig 檔案中的組態資訊,以與叢集的 API 伺服器進行通訊。如需詳細資訊,請參閱 Kubernetes 文件中的 Organizing Cluster Access Using kubeconfig Files (使用 kubeconfig 檔案組織叢集存取)。

Amazon EKS 使用 aws eks get-token 命令搭配 kubectl 進行叢集身分驗證。依預設,會 AWS CLI 使用與下列命令傳回的相同認證:

aws sts get-caller-identity
必要條件
  • 現有 Amazon EKS 叢集。若要部署叢集,請參閱 Amazon EKS 入門

  • 已在裝置或 AWS CloudShell上安裝 kubectl 命令列工具。版本可以與您的叢集 Kubernetes 版本相同,或是為最多比該版本更舊一版或更新一版的次要版本。例如,如果您的叢集版本為 1.28,則可以搭配使用 kubectl 1.271.281.29 版。若要安裝或升級 kubectl,請參閱 安裝或更新 kubectl

  • 您裝置上安裝和設定的 AWS Command Line Interface (AWS CLI) 的版本1.27.160或更新版本、版本或更新版本或更新版本或更新版本 AWS CloudShell。2.12.3若要檢查您目前的版本,請使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。如 yumapt-get 或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI落後數個版本之多。若要安裝最新版本,請參閱《AWS Command Line Interface 使用者指南》中的安裝、更新和解除安裝 AWS CLI以及使用 aws configure 的快速組態。安裝在中的 AWS CLI 版本也 AWS CloudShell 可能是最新版本之後的幾個版本。若要進行更新,請參閱《AWS CloudShell 使用者指南》中的〈安裝 AWS CLI 到主目錄

  • 具有對您指定的叢集使用 eks:DescribeCluster API 動作許多的 IAM 使用者或角色。如需詳細資訊,請參閱 Amazon EKS 身分型政策範例。如果您使用自己的 OpenID Connect 提供者提供的身分來存取叢集,則請參閱 Kubernetes 文件中的 Using kubectl 一節以了解如何建立或更新 kube config 檔案。

自動建立 kubeconfig 檔案

必要條件
  • 您裝置上安裝和設定的 AWS Command Line Interface (AWS CLI) 的版本1.27.160或更新版本、版本或更新版本或更新版本或更新版本 AWS CloudShell。2.12.3若要檢查您目前的版本,請使用 aws --version | cut -d / -f2 | cut -d ' ' -f1。如 yumapt-get 或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI落後數個版本之多。若要安裝最新版本,請參閱《AWS Command Line Interface 使用者指南》中的安裝、更新和解除安裝 AWS CLI以及使用 aws configure 的快速組態。安裝在中的 AWS CLI 版本也 AWS CloudShell 可能是最新版本之後的幾個版本。若要進行更新,請參閱《AWS CloudShell 使用者指南》中的〈安裝 AWS CLI 到主目錄

  • 對您指定的叢集使用 eks:DescribeCluster API 動作的許可。如需詳細資訊,請參閱 Amazon EKS 身分型政策範例

若要使用建立您的kubeconfig檔案 AWS CLI
  1. 為您的叢集建立或更新 kubeconfig 檔案。將區域代碼 us-iso-east us-isob-east 替換為叢集 AWS 區域 所在的位置,並以叢集名稱取代 my-cluster

    aws eks update-kubeconfig --region region-code --name my-cluster

    根據預設,產生的組態檔案會在主目錄預設的 kubeconfig 路徑下 (.kube),或與位在該處的現有 config 檔案合併。您可以使用 --kubeconfig 選項指定其他路徑。

    您可以使用 --role-arn 選項指定 IAM 角色 ARN,用於在您發出 kubectl 命令時進行身分驗證。否則,會使用預設 AWS CLI 或 SDK 憑證鏈中的 IAM 主體。您可以通過運行aws sts get-caller-identity命令來查看默認 AWS CLI 或 SDK 身份。

    如需所有可用的選項,請執行 aws eks update-kubeconfig help 命令,或參閱 AWS CLI Command Reference 中的 update-kubeconfig 一節。

  2. 測試組態。

    kubectl get svc

    範例輸出如下。

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

    如果您收到任何授權或資源類型錯誤,請參閱故障診斷主題中的未經授權或存取遭拒 (kubectl)