更新 AWS IAM 实例配置文件

本页面介绍了什么是 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 中的实例配置文件有两个用途:

  1. 实例配置文件可向 GKE on AWS 授予管理 AWS 资源所需的权限。例如,它们可以为集群自动扩缩器提供必要的权限,使集群自动扩缩器能够根据工作负载需求通过添加或移除 EC2 实例来扩缩集群。
  2. 实例配置文件可授予 EC2 实例对 Google Cloud 服务的访问权限。例如,在 AWS 机器上运行的 kubelet 需要特定权限才能向 containerd 提供映像拉取凭据。这些凭据是访问 Google 私有 Artifact Registry 或 Container Registry 以及从其中拉取映像所必需的。在 GKE on AWS 环境中,与集群关联的 EC2 实例配置文件会配置为模拟 Google 的机器服务代理(例如节点池机器服务代理或控制平面机器服务代理)。此模拟让集群的 EC2 实例能够自动向 Google 的 Artifact Registry 或 Container Registry 进行身份验证。

更新实例配置文件

若要更新实例配置文件,需要在 AWS 中创建具有特定权限的新实例配置文件,然后将其与 GKE on AWS 集群或节点池相关联。

如需为集群或节点池正确更新实例配置文件,请按照以下步骤操作:

  1. 为您的 Amazon EC2 实例创建 IAM 实例配置文件,并将所需的 IAM 角色添加到实例配置文件。如需了解详情,请参阅使用实例配置文件
  2. 通过在 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 不匹配。这种不匹配可能会导致集群故障。

上一部分介绍的方法可确保更新不会中断 GKE on AWS 与 AWS 的集成。