Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Criando um cluster Amazon EC2

Nesta seção, você aprenderá como implantar um RKE2 ou K3s cluster Kubernetes na Amazon EC2.

Primeiro, você configura suas credenciais de nuvem EC2 no Rancher.

Em seguida, você cria um cluster EC2 no Rancher e, ao configurar o novo cluster, define os pools de máquinas para ele. Cada pool de máquinas tem um papel Kubernetes de etcd, controlplane ou worker. O Rancher instala o Kubernetes nos novos nós e configura cada nó com o papel Kubernetes definido pelo pool de máquinas.

Pré-requisitos

Criando um cluster EC2

Os passos para criar um cluster diferem com base na sua versão do Rancher.

Crie suas credenciais de nuvem

Se você já possui um conjunto de credenciais de nuvem para usar, pule esta seção.

  1. Clique em ☰ > Gerenciamento de Cluster.

  2. Clique em Credenciais de Nuvem.

  3. Clique em Criar.

  4. Clique em Amazon.

  5. Digite um nome para a credencial de nuvem.

  6. No campo Região Padrão, selecione a região da AWS onde seus nós do cluster estarão localizados.

  7. Digite sua Chave de Acesso e Chave Secreta da AWS EC2.

  8. Clique em Criar.

Resultado: Você criou as credenciais de nuvem que são usadas para provisionar nós em seu cluster.

Crie seu cluster

  1. Clique em ☰ > Gerenciamento de Cluster.

  2. Na página Clusters, clique em Criar.

  3. Ative o interruptor para RKE2/K3s.

  4. Click Amazon EC2.

  5. Selecione uma Credencial de Nuvem, se houver mais de uma. Caso contrário, está pré-selecionada.

  6. Digite um Nome do Cluster.

  7. Crie um pool de máquinas para cada função do Kubernetes. Consulte as melhores práticas para recomendações sobre atribuições e contagens de funções.

    1. Para cada pool de máquinas, defina a configuração da máquina. Consulte a referência de configuração da máquina EC2 para informações sobre opções de configuração.

  8. Use a Configuração do Cluster para escolher a versão do Kubernetes a ser instalada, qual provedor de rede usar e se deseja habilitar a isolação de rede do projeto. Para ajuda na configuração do cluster, consulte as referências de configuração do cluster RKE2 e K3s.

  9. Use Funções de Membro para configurar a autorização de usuários para o cluster. Clique em Adicionar Membro para adicionar usuários que podem acessar o cluster. Use o menu suspenso Função para definir permissões para cada usuário.

  10. Clique em Criar.

Resultado:

Seu cluster foi criado e atribuído ao estado de Provisionamento. O Rancher está configurando seu cluster.

Você pode acessar seu cluster após seu estado ser atualizado para Ativo.

Clusters Ativos são atribuídos a dois projetos:

  • Default, contendo o namespace default

  • System, contendo os namespaces cattle-system, traefik, kube-public e kube-system

Próximos passos opcionais.

Após criar seu cluster, você pode acessá-lo através da interface do Rancher. Como uma boa prática, recomendamos configurar essas maneiras alternativas de acessar seu cluster:

  • Acesse seu cluster com a CLI kubectl: Siga estas etapas para acessar clusters com kubectl na sua estação de trabalho. Neste caso, você será autenticado através do proxy de autenticação do servidor Rancher, e então o Rancher o conectará ao cluster downstream. Este método permite que você gerencie o cluster sem a interface do Rancher.

  • Acesse seu cluster com a CLI kubectl, usando o endpoint do cluster autorizado: Siga estas etapas para acessar seu cluster com kubectl diretamente, sem autenticar através do Rancher. Recomendamos configurar este método alternativo para acessar seu cluster, para que, caso você não consiga se conectar ao Rancher, ainda possa acessar o cluster.

Políticas IAM

Exemplo de Política 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/*"
        }
    ]
}

Exemplo de Política IAM com 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/*"
        }
    ]
}

Exemplo de Política IAM para permitir volumes EBS criptografados

{
  "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": "*"
    }
  ]
}