Criando um cluster de usuários

Um cluster de usuários do GKE na AWS hospeda suas cargas de trabalho do Kubernetes. Este tópico mostra como criar um cluster de usuários básico. Se desejar configurar um cluster de usuários com mais detalhes, consulte "Criando um cluster de usuários personalizado" .

Você provisiona um cluster de usuários do GKE na AWS com os recursos personalizados AWSCluster e AWSNodePool .

Antes de começar

Para criar um cluster de usuários, primeiro você precisa instalar um serviço de gerenciamento .

Para se conectar aos seus recursos do GKE na AWS, siga as seguintes etapas. Selecione se você já possui uma VPC da AWS (ou conexão direta com sua VPC) ou se criou uma VPC dedicada ao criar seu serviço de gerenciamento.

VPC existente

Se você tiver uma conexão direta ou VPN com uma VPC existente, omita a linha env HTTP_PROXY=http://localhost:8118 dos comandos neste tópico.

VPC dedicada

Ao criar um serviço de gerenciamento em uma VPC dedicada, o GKE na AWS inclui um bastião host em uma sub-rede pública.

Para se conectar ao seu serviço de gerenciamento, execute as seguintes etapas:

  1. Acesse o diretório com a configuração do GKE na AWS. Você criou este diretório ao instalar o serviço de gerenciamento .

    cd anthos-aws

  2. Para abrir o túnel, execute o script bastion-tunnel.sh . O túnel encaminha para localhost:8118 .

    Para abrir um túnel para o host bastião, execute o seguinte comando:

    ./bastion-tunnel.sh -N
    

    As mensagens do túnel SSH aparecem nesta janela. Quando estiver pronto para encerrar a conexão, interrompa o processo usando Control+C ou fechando a janela.

  3. Abra um novo terminal e entre no diretório anthos-aws .

    cd anthos-aws
  4. Verifique se você consegue se conectar ao cluster com kubectl .

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    A saída inclui a URL para o servidor da API do serviço de gerenciamento.

Selecionando um tamanho de instância do plano de controle

O GKE na AWS não oferece suporte ao redimensionamento de instâncias do plano de controle. Antes de criar seu cluster de usuário, selecione o tamanho da instância dos seus planos de controle. Os tamanhos dos planos de controle dependem do número de nós no cluster. A tabela a seguir contém os tamanhos de instância do plano de controle recomendados para vários tamanhos de cluster.

Tamanho do cluster (nós) Tipo de instância do plano de controle
1 – 10 m5.grande
11 – 100 m5.xlarge
101 – 200 m5.2xgrande

Criando um cluster de usuários

Neste exemplo, você usa terraform para gerar uma configuração para criar um cluster básico. Em seguida, você aplica a configuração com kubectl apply .

  1. Abra seu terminal e, se necessário, conecte-se ao seu bastion host .

  2. Mude o diretório para a pasta que você criou ao instalar o serviço de gerenciamento .

  3. Use o Terraform para gerar um manifesto configurando um cluster de exemplo e salve-o em um arquivo YAML. Escolha sua versão do Terraform e execute os seguintes comandos:

    Terraform 0,12, 0,13

    terraform output cluster_example > cluster-0.yaml
    

    Terraform 0.14.3+

    terraform output -raw cluster_example > cluster-0.yaml
    

    Para obter mais informações sobre o conteúdo deste arquivo, consulte a documentação AWSCluster e AWSNodePool .

  4. Abra o arquivo em um editor de texto e edite-o, se necessário. Por padrão, o GKE na AWS cria pools de nós em cada zona de disponibilidade especificada em anthos-gke.yaml . Você pode alterar o tamanho e o número de pools de nós para corresponder ao cluster desejado. Você também pode fazer alterações adicionais na sua configuração. Por exemplo, você pode alterar os tipos de instância dos seus nós do GKE na AWS; você também pode habilitar o registro em log e o monitoramento nos nós do seu plano de controle.

  5. Aplique o arquivo ao seu serviço de gerenciamento.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

Crie um kubeconfig

Enquanto seu cluster de usuários é inicializado, você pode criar um contexto kubeconfig para o novo cluster. Use o contexto para autenticar em um cluster de usuários ou de gerenciamento.

  1. Use anthos-gke aws clusters get-credentials para gerar um kubeconfig para seu cluster de usuário em ~/.kube/config .

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    

    Substitua CLUSTER_NAME pelo nome do seu cluster. Por exemplo, cluster-0 .

  2. Use kubectl para autenticar seu novo cluster de usuários.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl cluster-info
    

    Se o seu cluster estiver pronto, a saída incluirá as URLs dos componentes do Kubernetes dentro do seu cluster.

Visualizando o status do seu cluster

O serviço de gerenciamento provisiona recursos da AWS quando você aplica um AWSCluster ou AWSNodePool .

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Para listar seus clusters, use kubectl get AWSClusters .

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters
    

    A saída inclui o nome, estado, idade, versão e ponto de extremidade de cada cluster.

    Por exemplo, a saída a seguir inclui apenas um AWSCluster chamado cluster-0 :

    NAME        STATE          AGE     VERSION         ENDPOINT
    cluster-0   Provisioning   2m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    

Visualize os eventos do seu cluster

Para ver eventos recentes do Kubernetes do seu cluster de usuários, use kubectl get events .

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Execute kubectl get events .

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get events
    

A saída inclui informações, avisos e erros relacionados ao seu serviço de gerenciamento.

Excluindo um cluster de usuários

Para excluir um cluster de usuários, execute as seguintes etapas:

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Use kubectl delete para excluir o manifesto que contém seus clusters de usuários.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete -f CLUSTER_FILE
    

    Substitua CLUSTER_FILE pelo nome do manifesto que contém seus objetos AWScluster e AWSNodePool. Por exemplo, cluster-0.yaml .

Excluindo todos os clusters de usuários

Para excluir todos os seus clusters de usuários, execute as seguintes etapas:

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Use kubectl delete para excluir seus AWSNodePools e AWSClusters do seu serviço de gerenciamento.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSNodePool --all
    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSCluster --all
    

Para obter mais informações, consulte Desinstalando o GKE na AWS .

O que vem a seguir