設定 Amazon EKS 網繭身分代理程式 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

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

設定 Amazon EKS 網繭身分代理程式

Amazon EKS Pod 身分識別關聯提供管理應用程式憑證的功能,類似 Amazon EC2 執行個體設定檔將憑證提供給 Amazon EC2 執行個體的方式。

Amazon EKS Pod 身分識別透過其他 EKS 驗證 API 和在每個節點上執行的代理程式 Pod,為您的工作負載提供憑證。

考量事項

  • IPv6

    依預設,EKS 網繭身分識別代理程式會接聽網繭的IPv4IPv6位址以要求認證。代理程式使用的回送 (本機主機) IP 位址,IPv4並使169.254.170.23用的本機主機 IP 位址。[fd00:ec2::23] IPv6

    如果您停用位IPv6址或以其他方式阻止本機主機 IPv6 IP 位址,則代理程式無法啟動。若要在無法使用的節點上啟動代理程式IPv6,請遵循中IPv6在 EKS 網繭身分識別代理程式中停用的步驟停用IPv6組態。

建立 Amazon EKS Pod 身分識別代理程式

代理程式先決條件

  • 現有 Amazon EKS 叢集。若要部署叢集,請參閱 開始使用 Amazon EKS。叢集版本和平台版本必須與 EKS Pod 身分識別叢集版本 中列出的版本相同或為更新版本。

  • 節點角色具有代理程式在 EKS 驗證 API 中執行 AssumeRoleForPodIdentity 動作的許可。您可以使用 AWS 管理策略:AmazonEKS WorkerNodePolicy 或新增與下列類似的自訂政策:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" } ] }

    此動作可能會受到標籤的限制,以限制使用代理程式的 Pod 可以擔任哪些角色。

  • 這些節點可以從 Amazon ECR 連上和下載映像。附加元件的容器映像位於 Amazon 容器映像登錄檔 中列出的登錄檔內。

    請注意 AWS Management Console,您可以變更映像位置,並在中的選擇性組態設定中提供 imagePullSecrets EKS 附加元件。--configuration-values AWS CLI

  • 這些節點可以連上 Amazon EKS 驗證 API。對於私人叢集,中的eks-auth端點 AWS PrivateLink 是必要的。

AWS Management Console
  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

  2. 在左側導覽窗格中,選取叢集,然後選取您要為其設定 EKS Pod 身分識別代理程式附加元件之叢集的名稱。

  3. 選擇附加元件索引標籤。

  4. 選擇取得更多附加元件

  5. 選取 EKS Pod 身分識別代理程式之附加元件方塊右上方的方塊,然後選擇下一步

  6. 設定選取的附加元件設定頁面上,選取版本下拉式清單中的任何版本。

  7. (選用) 展開選用組態設定以輸入其他組態。例如,您可以提供替代容器映像位置和 ImagePullSecrets。具有已接受金鑰的 JSON Schema 會顯示在附加元件組態結構描述中。

    組態值中輸入組態金鑰和值。

  8. 選擇下一步

  9. 確認 EKS Pod 身分識別代理程式 Pod 正在您的叢集上執行。

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    範例輸出如下。

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    您現在可以在叢集中使用 EKS Pod 身分識別關聯。如需詳細資訊,請參閱 將IAM角色指派給Kubernetes服務帳戶

AWS CLI
  1. 執行下列 AWS CLI 命令。使用您叢集的名稱取代 my-cluster

    aws eks create-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1
    注意

    EKS Pod 身分識別代理程式不會針對服務帳戶的 IAM 角色使用 service-account-role-arn。您必須為 EKS Pod 身分識別代理程式提供節點角色的許可。

  2. 確認 EKS Pod 身分識別代理程式 Pod 正在您的叢集上執行。

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    範例輸出如下。

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    您現在可以在叢集中使用 EKS Pod 身分識別關聯。如需詳細資訊,請參閱 將IAM角色指派給Kubernetes服務帳戶

更新 Amazon EKS Pod 身分識別代理程式

更新 Amazon EKS 類型的附加元件。如果您尚未將 Amazon EKS 類型的附加元件新增至叢集,請參閱 建立 Amazon EKS Pod 身分識別代理程式

AWS Management Console
  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

  2. 在左側導覽窗格中,選取叢集,然後選取您要為其設定 EKS Pod 身分識別代理程式附加元件之叢集的名稱。

  3. 選擇附加元件索引標籤。

  4. 如果有新版本的附加元件可用,則 EKS Pod 身分識別代理程式會出現更新版本按鈕。選取更新版本

  5. 設定 Amazon EKS Pod 身分識別代理程式頁面上,從版本下拉式清單中選取新版本。

  6. 選取儲存變更

    更新動作可能需要幾秒鐘的時間才能完成。然後,檢查狀態來確保附加元件版本已更新。

AWS CLI
  1. 查看叢集上目前安裝了哪些附加元件版本。使用您的叢集名稱取代 my-cluster

    aws eks describe-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --query "addon.addonVersion" --output text

    範例輸出如下。

    v1.0.0-eksbuild.1

    您必須先建立附加元件,才能使用此程序進行更新。

  2. 使用 AWS CLI更新您的附加元件。如果您想要使用 AWS Management Console 或 eksctl 更新附加元件,請參閱 更新附加元件。將隨後的命令複製到您的裝置。視需要對命令進行下列修改,然後執行修改後的命令。

    • 使用您叢集的名稱取代 my-cluster

    • 使用您想要的版本取代 v1.0.0-eksbuild.1

    • 使用您的帳戶 ID 取代 111122223333

    • 執行以下命令:

      aws eks update-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1'

      更新動作可能需要幾秒鐘的時間才能完成。

  3. 確認附加元件版本已更新。使用您叢集的名稱取代 my-cluster

    aws eks describe-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent

    更新動作可能需要幾秒鐘的時間才能完成。

    範例輸出如下。

    { "addon": { "addonName": "eks-pod-identity-agent", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.0.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/eks-pod-identity-agent/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "tags": {} } }

EKS 網繭識別代理程式組態

IPv6在 EKS 網繭身分識別代理程式中停用

AWS Management Console
IPv6在中停用 AWS Management Console
  1. 若要IPv6在 EKS 網繭身分識別代理程式中停用,請將下列組態新增至 EKS 附加元件的選用組態設定

    1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

    2. 在左側導覽窗格中,選取 Clusters (叢集),然後選取您要為其設定附加元件之叢集的名稱。

    3. 選擇附加元件索引標籤。

    4. 選取 EKS 網繭識別代理程式附加元件方塊右上角的核取方塊,然後選擇 [編輯]。

    5. [設定 EKS 網繭身分識別代理程式] 頁面上:

      1. 選取您要使用的 Version (版本)。我們建議您保留與上一步相同的版本,並以單獨的動作更新版本和配置。

      2. 展開選用組態設定

      3. 輸入巢狀 JSON 物件的 JSON 金鑰"agent":和值,並"additionalArgs":組態值中輸入索引鍵。產生的文字必須是有效的 JSON 物件。如果此金鑰和值是文字方塊中唯一的資料,請以大括號 {} 括住該金鑰和值。下列範例顯示網路原則已啟用:

        { "agent": { "additionalArgs": { "-b": "169.254.170.23" } } }

        此組態會將位IPv4址設定為代理程式使用的唯一位址。

    6. 若要透過取代 EKS 網繭身分識別代理程式網繭來套用新組態,請選擇儲存變更

      Amazon EKS 使用KubernetesDaemonSet針對 EKS 網繭身分識別代理程式的部署,將變更套用至 EKS 附加元件。您可以在 AWS Management Console 和中的附加元件的更新歷史記錄中追蹤推出的狀態。kubectl rollout status daemonset/eks-pod-identity-agent --namespace kube-system

      kubectl rollout具有以下命令:

      $ kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

      如果部署時間太長,Amazon EKS 將撤銷推出,並在附加元件的更新歷史記錄中新增附加元件更新類型和失敗狀態的訊息。若要調查任何問題,請從部署的歷史記錄開始,然後在 EKS 網繭身分識別代理程式網繭kubectl logs上執行,以查看 EKS 網繭識別代理程式的記錄。

  2. 如果更新歷程記錄中的新項目狀態為「成功」,則表示推出已完成,且附加元件正在使用所有 EKS 網繭身分識別代理程式網繭中的新組態。

AWS CLI
IPv6在中停用 AWS CLI
  • 若要IPv6在 EKS 網繭身分識別代理程式中停用,請將下列組態新增至 EKS 附加元件的組態值

    執行下列 AWS CLI 命令。將 my-cluster 取代為您的叢集名稱,並將 IAM 角色 ARN 取代為您正在使用的角色。

    aws eks update-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent \ --resolve-conflicts PRESERVE --configuration-values '{"agent":{"additionalArgs": { "-b": "169.254.170.23"}}}'

    此組態會將位IPv4址設定為代理程式使用的唯一位址。

    Amazon EKS 使用Kubernetes DaemonSet 針對 EKS 網繭身分識別代理程式的部署,將變更套用至 EKS 附加元件。您可以在 AWS Management Console 和中的附加元件的更新歷史記錄中追蹤推出的狀態。kubectl rollout status daemonset/eks-pod-identity-agent --namespace kube-system

    kubectl rollout具有以下命令:

    kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

    如果部署時間太長,Amazon EKS 將撤銷推出,並在附加元件的更新歷史記錄中新增附加元件更新類型和失敗狀態的訊息。若要調查任何問題,請從部署的歷史記錄開始,然後在 EKS 網繭身分識別代理程式網繭kubectl logs上執行,以查看 EKS 網繭識別代理程式的記錄。