協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合每個人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 pods 使用 AWS 服務帳戶存取 服務
如果 Pod 需要存取 AWS 服務,然後您必須將其設定為使用 Kubernetes 服務帳戶。服務帳戶必須與具有存取 AWS 服務許可的 AWS Identity and Access Management (IAM) 角色相關聯。
-
現有的叢集。如果您沒有 ,您可以使用 中的其中一個指南來建立 開始使用 Amazon EKS。
-
現有 Kubernetes 服務帳戶和將服務帳戶與 EKS 角色建立關聯的 IAM Pod Identity 關聯。角色必須具有關聯的 IAM 政策,其中包含您想要的 許可 Pods 必須使用 AWS 服務。如需有關服務帳戶和角色之建立和設定方式的詳細資訊,請參閱指派 IAM 角色至 Kubernetes 服務帳戶。
-
在您的裝置或 AWS CLI 上安裝和設定的最新版本 AWS CloudShell。您可以使用
aws --version | cut -d / -f2 | cut -d ' ' -f1
來檢查您的目前版本。套件管理員yum
,例如apt-get
、 或 Homebrew for macOS 通常是最新版本 AWS CLI 後面的幾個版本。若要安裝最新版本,請參閱 AWS 命令列介面使用者指南中的使用 aws 設定安裝 和 快速組態。 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config在 AWS CLI 中安裝的 AWS CloudShell 版本也可能是最新版本後面的幾個版本。若要更新它,請參閱AWS CLI 使用者指南中的將 Word 安裝到您的主目錄。 AWS CloudShell -
kubectl
命令列工具安裝在您的裝置或 AWS CloudShell 上。版本可以與 相同,也可以比 更早或更晚的一個次要版本相同 Kubernetes 叢集的版本。例如,如果您的叢集版本為1.29
,則可以搭配使用kubectl
1.28
、1.29
或1.30
版。若要安裝或升級kubectl
,請參閱 設定 kubectl 和 eksctl。 -
包含叢集組態的現有
kubectl
config
檔案。若要建立kubectl
config
檔案,請參閱建立 kubeconfig 檔案,將 kubectl 連接至 EKS叢集。-
使用下列命令來建立部署資訊清單,您可以部署 Pod 來確認組態。取代
example values
使用您自己的值。cat >my-deployment.yaml <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: serviceAccountName: my-service-account containers: - name: my-app image: public.ecr.aws/nginx/nginx:X.XX EOF
-
將清單檔案部署到叢集。
kubectl apply -f my-deployment.yaml
-
確認您的 存在必要的環境變數 Pod.
-
檢視 Pods 在上一個步驟中與部署一起部署的 。
kubectl get pods | grep my-app
範例輸出如下。
my-app-6f4dfff6cb-76cv9 1/1 Running 0 3m28s
-
確認 Pod 具有服務帳戶權杖檔案掛載。
kubectl describe pod my-app-6f4dfff6cb-76cv9 | grep AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE:
範例輸出如下。
AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE: /var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token
-
-
確認您的 Pods 可以使用您在連接至角色的 IAM 政策中指派的許可與 AWS 服務互動。
注意
當 Pod 使用與服務帳戶相關聯的 IAM 角色的 AWS 憑證、該角色容器中的 AWS CLI 或其他 SDKs Pod 使用該角色提供的憑證。如果您沒有限制對提供給 Amazon EKS節點IAM角色Amazon EKS 節點 IAM 角色的憑證的存取,則 Pod 仍然可以存取這些憑證。如需詳細資訊,請參閱限制存取指派給工作節點的執行個體設定檔
。 如果您的 Pods 無法如預期與 服務互動,請完成下列步驟,以確認所有項目都已正確設定。
-
確認您的 Pods 使用支援透過 AWS SDK Pod Identity 關聯擔任 IAM 角色的 EKS 版本。如需詳細資訊,請參閱搭配 AWS SDK 使用 Pod 身分。
-
確認部署使用服務帳戶。
kubectl describe deployment my-app | grep "Service Account"
範例輸出如下。
Service Account: my-service-account
-
-