Esta documentación es para la versión actual de GKE en AWS, publicada en noviembre de 2021. Consulta las notas de la versión para obtener más información.
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En esta página, se explica qué es un perfil de instancia de IAM de AWS, por qué es importante en el contexto de GKE on AWS y cómo actualizarlo.
¿Qué es un perfil de instancia de IAM de AWS?
Un perfil de instancia es un concepto específico de AWS. Consiste en un conjunto de credenciales que una instancia de Amazon EC2 usa para acceder a varios recursos de AWS.
En particular, un perfil de instancia es un tipo de contenedor para un rol de IAM que se puede adjuntar a una instancia de EC2. Un perfil de instancia otorga permisos a la instancia EC2, lo que permite que la instancia interactúe con varios servicios de AWS bajo los permisos definidos. Para obtener más información, consulta Usa perfiles de instancia.
¿Cómo se usan los perfiles de instancia en GKE en AWS?
Cada plano de control y cada grupo de nodos dentro de un clúster de GKE on AWS se asocian con un perfil de instancia de AWS único. Los perfiles de instancia en GKE on AWS tienen un propósito doble:
Un perfil de instancia le otorga a GKE on AWS los permisos necesarios para administrar los recursos de AWS. Por ejemplo, le otorgan al escalador automático del clúster los permisos necesarios para escalar el clúster mediante la adición o eliminación de instancias de EC2 según las demandas de carga de trabajo.
Un perfil de instancia otorga a las instancias de EC2 acceso a los servicios de Google Cloud.
Por ejemplo, kubelet, que se ejecuta en una máquina de AWS, requiere permisos específicos para proporcionar credenciales de extracción de imágenes a containerd. Estas credenciales son necesarias para acceder y extraer imágenes de Artifact Registry privado de Google o desde Container Registry. En el contexto de GKE on AWS, el perfil de instancia de EC2 asociado con el clúster se configura para actuar en nombre de los agentes de servicio de máquinas de Google (como el agente de servicio de máquina del grupo de nodos o el agente de servicio de la máquina del plano de control). Esta suplantación permite que las instancias de EC2 del clúster se autentiquen de forma automática con Artifact Registry o Container Registry de Google.
Actualiza el perfil de la instancia
La actualización del perfil de la instancia implica crear un nuevo perfil de instancia en AWS
con permisos específicos y, luego, asociarlo con
tu clúster o grupo de nodos de GKE on AWS.
Para actualizar de forma correcta el perfil de la instancia de tu clúster o grupo de nodos, sigue estos pasos:
Crea un perfil de instancia de IAM para tus instancias de Amazon EC2 y agrega el rol de IAM que necesitas al perfil de instancia. Para obtener más información, consulta Usa perfiles de instancia.
Vincula el perfil de instancia nuevo al clúster o grupo de nodos de GKE on AWS mediante la ejecución del siguiente comando en Google Cloud CLI:
Comprender la forma incorrecta de actualizar un perfil de instancia es importante, ya que es un error fácil de cometer que puede causar fallas en el clúster.
La forma incorrecta de actualizar un perfil de instancia es modificar directamente un perfil de instancia existente con la consola de administración de AWS o la CLI de AWS. Estos cambios pueden interrumpir la interacción de GKE on AWS con los recursos de AWS. GKE on AWS espera que los perfiles de instancia permanezcan como estaban cuando se vincularon por primera vez al clúster o grupo de nodos. Alterarlas fuera de las herramientas de administración de GKE on AWS puede crear una discrepancia con el ID del rol de IAM que está en el perfil de la instancia. Esta incompatibilidad puede crear una falla del clúster.
El enfoque descrito en la sección anterior garantiza que se realicen las actualizaciones
sin interrumpir la integración en AWS de GKE on AWS.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2024-07-02 (UTC)"],[],[],null,["# Update AWS IAM instance profile\n\nThis page explains what an AWS IAM instance profile is, why it's important in\nthe context of GKE on AWS, and how to update the instance profile.\n\nWhat is an AWS IAM instance profile?\n------------------------------------\n\nAn instance profile is an AWS-specific concept. It consists of a set of\ncredentials that an Amazon EC2 instance uses to access various AWS resources.\nMore specifically, an instance profile is a kind of container for an IAM role\nthat can be attached to an EC2 instance. An instance profile confers permissions\nto the EC2 instance, allowing the instance to interact with various AWS services\nunder the defined permissions. For more information, see\n[Using instance profiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html).\n\nHow are instance profiles used in GKE on AWS?\n---------------------------------------------\n\nEach control plane and each node pool within a GKE on AWS cluster\nis associated with a unique AWS instance profile. Instance profiles in\nGKE on AWS serve a dual purpose:\n\n1. An instance profile grants GKE on AWS the permissions needed to manage AWS resources. For example, they give the cluster autoscaler the necessary permissions to scale the cluster by adding or removing EC2 instances based on workload demands.\n2. An instance profile grants EC2 instances access to Google Cloud services. For example the `kubelet`, running on an AWS machine, requires specific permissions to supply image pull credentials to `containerd`. These credentials are necessary for accessing and pulling images from Google's private Artifact Registry or from Container Registry. In the context of GKE on AWS, the EC2 instance profile associated with the cluster is configured to impersonate Google's Machine Service Agents (such as the Node Pool Machine Service Agent or the Control Plane Machine Service Agent). This impersonation allows the cluster's EC2 instances to automatically authenticate with Google's Artifact Registry or Container Registry.\n\nUpdate instance profile\n-----------------------\n\nUpdating the instance profile involves creating a new instance profile in AWS\nwith specific permissions, and then associating it with your\nGKE on AWS cluster or node pool.\n\nTo correctly update the instance profile for your cluster or node pool, follow\nthese steps:\n\n1. Create an IAM instance profile for your Amazon EC2 instances and add the IAM role you need to the instance profile. For details, see [Using instance profiles](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-create-iam-instance-profile.html).\n2. Link the new instance profile to your GKE on AWS cluster or node\n pool by running the following command in your Google Cloud CLI:\n\n ### Link profile to cluster\n\n gcloud container aws clusters update \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --update-instance-profile \\\n --instance-profile-name \u003cvar translate=\"no\"\u003eNEW_INSTANCE_PROFILE_NAME\u003c/var\u003e \\\n ...\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of your cluster\n - \u003cvar translate=\"no\"\u003eNEW_INSTANCE_PROFILE_NAME\u003c/var\u003e: the name of the new AWS instance profile you created\n\n ### Link profile to node pool\n\n gcloud container aws node-pools update \u003cvar translate=\"no\"\u003eNODE_POOL_NAME\u003c/var\u003e \\\n --update-instance-profile \\\n --instance-profile-name \u003cvar translate=\"no\"\u003eNEW_INSTANCE_PROFILE_NAME\u003c/var\u003e \\\n ...\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eNODE_POOL_NAME\u003c/var\u003e: the name of your node pool\n - \u003cvar translate=\"no\"\u003eNEW_INSTANCE_PROFILE_NAME\u003c/var\u003e: the name of the new AWS instance profile you created\n\n These commands show only the relevant flags for updating the instance\n profile, but you need to provide additional flags in order to run the\n `update` command. For details, see\n [Update your AWS cluster parameters](/kubernetes-engine/multi-cloud/docs/aws/how-to/update-cluster) or\n [Update a node pool](/kubernetes-engine/multi-cloud/docs/aws/how-to/update-node-pool).\n\n### The incorrect update method\n\nUnderstanding the wrong way to update an instance profile is important, because\nit's an easy mistake to make that can cause cluster failures.\n\nThe wrong way to update an instance profile is to directly modify an existing\ninstance profile using the AWS Management Console or AWS CLI. Such changes can\ndisrupt GKE on AWS interaction with AWS resources. GKE on AWS\nexpects instance profiles to remain as they were when first linked to the\ncluster or node pool. Altering them outside of GKE on AWS's management\ntools can create a mismatch with the ID of the IAM role that's in the instance\nprofile. This mismatch can create a cluster failure.\n\nThe approach described in the preceding section ensures that updates are made\nwithout disrupting GKE on AWS's integration with AWS."]]