Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Creando un clúster de Amazon EC2

En esta sección, aprenderás a desplegar un RKE2 o K3s clúster de Kubernetes en Amazon EC2.

Primero, configuras tus credenciales de nube EC2 en Rancher.

Luego, creas un clúster EC2 en Rancher, y al configurar el nuevo clúster, defines grupos de máquinas para él. Cada grupo de máquinas tiene un rol de Kubernetes de etcd, controlplane o worker. Rancher instala Kubernetes en los nuevos nodos, y configura cada nodo con el rol de Kubernetes definido por el grupo de máquinas.

Requisitos previos

Creando un Clúster EC2

Los pasos para crear un clúster difieren según tu versión de Rancher.

Crea tus credenciales de nube

Si ya tienes un conjunto de credenciales de nube para usar, omite esta sección.

  1. Haz clic en ☰ > Gestión de Clústeres.

  2. Haz clic en Credenciales de Nube.

  3. Haga clic en Crear.

  4. Haz clic en Amazon.

  5. Introduce un nombre para la credencial de nube.

  6. En el campo Región predeterminada, selecciona la región de AWS donde se ubicarán los nodos de tu clúster.

  7. Introduce tu Clave de Acceso y Clave Secreta de AWS EC2.

  8. Haga clic en Crear.

Resultado: Has creado las credenciales de nube que se utilizan para aprovisionar nodos en tu clúster.

Crea tu clúster

  1. Haz clic en ☰ > Gestión de Clústeres.

  2. En la página Clusters, haz clic en Crear.

  3. Cambia el interruptor a RKE2/K3s.

  4. Click Amazon EC2.

  5. Selecciona una Credencial de nube, si existe más de una. De lo contrario, está preseleccionada.

  6. Introduce un Nombre del clúster.

  7. Crea un grupo de máquinas para cada rol de Kubernetes. Consulta las mejores prácticas para recomendaciones sobre asignaciones de roles y cantidades.

    1. Para cada grupo de máquinas, define la configuración de la máquina. Consulta la referencia de configuración de máquinas EC2 para información sobre las opciones de configuración.

  8. Utiliza la Configuración del clúster para elegir la versión de Kubernetes que deseas instalar, qué proveedor de red utilizar y si deseas habilitar el aislamiento de red del proyecto. Para ayuda en la configuración del clúster, consulta las referencias de configuración del clúster RKE2 y K3s.

  9. Utiliza Roles de miembros para configurar la autorización de usuarios para el clúster. Haz clic en Añadir miembro para añadir usuarios que puedan acceder al clúster. Utiliza el menú desplegable Rol para establecer permisos para cada usuario.

  10. Haga clic en Crear.

Resultado:

Tu clúster ha sido creado y se le ha asignado un estado de Provisioning. Rancher está configurando tu clúster.

Puedes acceder a tu clúster después de que su estado se actualice a Active.

Los clústeres Active están asignados a dos Proyectos:

  • Default, que contiene el espacio de nombres default

  • System, que contiene los espacios de nombres cattle-system, traefik, kube-public y kube-system

Pasos Siguientes Opcionales

Después de crear tu clúster, puedes acceder a él a través de la interfaz de usuario de Rancher. Como buena práctica, recomendamos configurar estas formas alternativas de acceder a tu clúster:

  • Accede a tu clúster con la CLI de kubectl: Sigue estos pasos para acceder a los clústeres con kubectl en tu estación de trabajo. En este caso, serás autenticado a través del proxy de autenticación del servidor de Rancher, luego Rancher te conectará al clúster en sentido descendente. Este método te permite gestionar el clúster sin la interfaz de usuario de Rancher.

  • Accede a tu clúster con la CLI de kubectl, utilizando el punto final del clúster autorizado: Sigue estos pasos para acceder a tu clúster con kubectl directamente, sin autenticarte a través de Rancher. Recomendamos configurar este método alternativo para acceder a tu clúster, de modo que en caso de que no puedas conectarte a Rancher, aún puedas acceder al clúster.

Directivas IAM

Ejemplo de directiva IAM

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:Describe*",
                "ec2:ImportKeyPair",
                "ec2:CreateKeyPair",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:DeleteKeyPair",
                "ec2:ModifyInstanceMetadataOptions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:REGION::image/ami-*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:placement-group/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:volume/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:subnet/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:key-pair/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:network-interface/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:security-group/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "ec2:RebootInstances",
                "ec2:TerminateInstances",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*"
        }
    ]
}

Ejemplo de directiva IAM con PassRole

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:Describe*",
                "ec2:ImportKeyPair",
                "ec2:CreateKeyPair",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:DeleteKeyPair",
                "ec2:ModifyInstanceMetadataOptions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:REGION::image/ami-*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:placement-group/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:volume/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:subnet/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:key-pair/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:network-interface/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:security-group/*",
                "arn:aws:iam::AWS_ACCOUNT_ID:role/YOUR_ROLE_NAME"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "ec2:RebootInstances",
                "ec2:TerminateInstances",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*"
        }
    ]
}

Ejemplo de directiva IAM para permitir volúmenes EBS cifrados

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Encrypt",
        "kms:DescribeKey",
        "kms:CreateGrant",
        "ec2:DetachVolume",
        "ec2:AttachVolume",
        "ec2:DeleteSnapshot",
        "ec2:DeleteTags",
        "ec2:CreateTags",
        "ec2:CreateVolume",
        "ec2:DeleteVolume",
        "ec2:CreateSnapshot"
      ],
      "Resource": [
        "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:volume/*",
        "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*",
        "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:snapshot/*",
        "arn:aws:kms:REGION:AWS_ACCOUNT_ID:key/KMS_KEY_ID"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances",
        "ec2:DescribeTags",
        "ec2:DescribeVolumes",
        "ec2:DescribeSnapshots"
      ],
      "Resource": "*"
    }
  ]
}