協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
透過建立 kubeconfig 檔案將 kubectl 連線至 EKS 叢集
在本主題中,您將為您的叢集建立 kubeconfig 檔案 (或更新現有的檔案)。
kubectl 命令列工具會使用 kubeconfig 檔案中的組態資訊,以與叢集的 API 伺服器進行通訊。如需詳細資訊,請參閱 Kubernetes 文件中的使用 kubeconfig 檔案組織叢集存取
Amazon EKS 使用 aws eks get-token 命令搭配 kubectl 進行叢集身分驗證。依預設,AWS CLI 使用由以下命令傳回的相同憑證:
aws sts get-caller-identity
-
現有 Amazon EKS 叢集。若要部署叢集,請參閱 開始使用 Amazon EKS。
-
已在裝置或 AWS CloudShell 上安裝
kubectl命令列工具。版本可以與您的叢集 Kubernetes 版本相同,或是為最多比該版本更舊一版或更新一版的次要版本。例如,如果您的叢集版本為1.29,則可以搭配使用kubectl1.28、1.29或1.30版。若要安裝或升級kubectl,請參閱 設定 kubectl 和 eksctl。 -
已在裝置或 AWS CloudShell 上安裝和設定 AWS 命令列介面 (AWS CLI) 版本
2.12.3或更新版本,或是版本1.27.160或更新版本。若要檢查您目前的版本,請使用aws --version | cut -d / -f2 | cut -d ' ' -f1。如yum、apt-get或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI 落後數個版本之多。若要安裝最新版本,請參閱《AWS 命令列介面使用者指南》中的安裝與使用 aws configure 的快速組態。AWS CloudShell 中安裝的 AWS CLI 版本也可能比最新版本落後數個版本。若要更新,請參閱《AWS CloudShell 使用者指南》中的安裝 AWS CLI 至您的主目錄。 -
具有對您指定的叢集使用
eks:DescribeClusterAPI 動作許多的 IAM 使用者或角色。如需詳細資訊,請參閱 Amazon EKS 身分型政策範例。如果您使用自己的 OpenID Connect 提供商提供的身分來存取叢集,則請參閱 Kubernetes 文件中的 Using kubectl一節以了解如何建立或更新 kube config檔案。
自動建立 kubeconfig 檔案
-
已在裝置或 AWS CloudShell 上安裝和設定 AWS 命令列介面 (AWS CLI) 版本
2.12.3或更新版本,或是版本1.27.160或更新版本。若要檢查您目前的版本,請使用aws --version | cut -d / -f2 | cut -d ' ' -f1。如yum、apt-get或適用於 macOS 的 Homebrew 等套件管理工具通常比最新版本的 AWS CLI 落後數個版本之多。若要安裝最新版本,請參閱《AWS 命令列介面使用者指南》中的安裝與使用 aws configure 的快速組態。AWS CloudShell 中安裝的 AWS CLI 版本也可能比最新版本落後數個版本。若要更新,請參閱《AWS CloudShell 使用者指南》中的安裝 AWS CLI 至您的主目錄。 -
對您指定的叢集使用
eks:DescribeClusterAPI 動作的許可。如需詳細資訊,請參閱 Amazon EKS 身分型政策範例。-
為您的叢集建立或更新
kubeconfig檔案。使用在叢集的 AWS 區域取代region-code,再使用叢集名稱取代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 命令參考中的 update-kubeconfig。 -
測試組態。
kubectl get svc範例輸出如下。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m如果您收到任何授權或資源類型錯誤,請參閱故障診斷主題中的未經授權或存取遭拒 (kubectl)。
-