本頁說明 AWS IAM 執行個體設定檔是什麼、在 GKE on AWS 環境中為何重要,以及如何更新執行個體設定檔。
什麼是 AWS IAM 執行個體設定檔?
執行個體設定檔是 AWS 專屬概念。這組憑證可供 Amazon EC2 執行個體存取各種 AWS 資源。具體來說,執行個體設定檔是 IAM 角色的容器,可附加至 EC2 執行個體。執行個體設定檔會將權限授予 EC2 執行個體,允許執行個體在定義的權限下與各種 AWS 服務互動。詳情請參閱「使用執行個體設定檔」。
GKE on AWS 如何使用執行個體設定檔?
GKE on AWS 叢集中的每個控制層和節點集區,都與專屬的 AWS 執行個體設定檔相關聯。GKE on AWS 中的執行個體設定檔有雙重用途:
- 執行個體設定檔會授予 GKE on AWS 管理 AWS 資源所需的權限。舉例來說,這些角色會授予叢集自動調度資源必要的權限,以便根據工作負載需求新增或移除 EC2 執行個體,進而調度叢集資源。
- 執行個體設定檔可授予 EC2 執行個體服務存取權。 Google Cloud 舉例來說,在 AWS 機器上執行的
kubelet
需要特定權限,才能將映像檔提取憑證提供給containerd
。您必須提供這些憑證,才能存取及提取 Google 私人 Artifact Registry 或 Container Registry 中的映像檔。在 AWS 上的 GKE 環境中,與叢集相關聯的 EC2 執行個體設定檔會設定為模擬 Google 的機器服務代理程式 (例如節點集區機器服務代理程式或控制層機器服務代理程式)。透過模擬,叢集的 EC2 執行個體就能自動向 Google 的 Artifact Registry 或 Container Registry 進行驗證。
更新執行個體設定檔
如要更新執行個體設定檔,請在 AWS 中建立具有特定權限的新執行個體設定檔,然後將其與 GKE on AWS 叢集或節點集區建立關聯。
如要正確更新叢集或節點集區的執行個體資料,請按照下列步驟操作:
- 為 Amazon EC2 執行個體建立 IAM 執行個體設定檔,並將所需的 IAM 角色新增至執行個體設定檔。詳情請參閱「使用執行個體設定檔」。
在 Google Cloud CLI 中執行下列指令,將新的執行個體設定檔連結至 GKE on AWS 叢集或節點集區:
將設定檔連結至叢集
gcloud container aws clusters update CLUSTER_NAME \ --update-instance-profile \ --instance-profile-name NEW_INSTANCE_PROFILE_NAME \ ...
更改下列內容:
CLUSTER_NAME
:叢集名稱NEW_INSTANCE_PROFILE_NAME
:您建立的新 AWS 執行個體設定檔名稱
將設定檔連結至節點集區
gcloud container aws node-pools update NODE_POOL_NAME \ --update-instance-profile \ --instance-profile-name NEW_INSTANCE_PROFILE_NAME \ ...
更改下列內容:
NODE_POOL_NAME
:節點集區的名稱NEW_INSTANCE_PROFILE_NAME
:您建立的新 AWS 執行個體設定檔名稱
這些指令只會顯示更新執行個體設定檔的相關旗標,但您需要提供其他旗標,才能執行
update
指令。詳情請參閱「更新 AWS 叢集參數」或「更新節點集區」。
更新方法有誤
瞭解更新執行個體設定檔的錯誤方式非常重要,因為這類錯誤很容易發生,且可能導致叢集故障。
更新執行個體設定檔的錯誤方式,是使用 AWS 管理主控台或 AWS CLI 直接修改現有的執行個體設定檔。這類變更可能會中斷 GKE on AWS 與 AWS 資源的互動。GKE on AWS 預期執行個體設定檔會維持與叢集或節點集區首次連結時的狀態。如果使用 GKE on AWS 管理工具以外的工具變更這些角色,可能會導致 IAM 角色 ID 與執行個體設定檔中的 ID 不符。不相符的設定可能會導致叢集故障。
前一節所述方法可確保更新作業不會中斷 GKE on AWS 與 AWS 的整合。