Configure o acesso de clusters à kubectl

Nesta página, explicamos como configurar o acesso ao cluster para a ferramenta de linha de comando kubectl para o GKE na AWS.

Visão geral

Para acessar o GKE na AWS, você precisa configurar kubectl. Para definir um cluster padrão para a kubectl, defina o contexto atual no arquivo kubeconfig do Kubernetes. Além disso, é possível executar comandos kubectl em um cluster específico usando a sinalização --cluster.

Para mais informações sobre kubeconfig e endpoints de cluster, consulte Sobre o Kubeconfig.

Antes de começar

Se você usar o gateway do Connect para acesso kubectl, será necessário conceder aos usuários administradores que não sejam proprietários de projeto os papéis do IAM descritos em Usar o kubectl com a identidade da CLI gcloud.

Verificar o kubeconfig existente

Esta seção explica como verificar a kubeconfig atual.

Ver contextos do kubeconfig

Para ver o kubeconfig do ambiente e todos os contextos que ela contém, execute o seguinte comando:

kubectl config view

O comando retorna uma lista de todos os clusters que têm entradas kubeconfig. Se um cluster do GKE na AWS estiver listado, será possível executar comandos kubectl nele no seu ambiente atual. Caso contrário, você precisará gerar uma entrada kubeconfig para o cluster.

Ver o contexto atual do kubectl

Para ver o contexto atual usado pela ferramenta de linha de comando kubectl, execute o seguinte comando:

kubectl config current-context

kubectl gera o nome do contexto atual.

Gerar uma entrada kubeconfig

Para executar comandos kubectl em clusters do GKE, é preciso gerar uma entrada kubeconfig. A maneira como você gera um kubeconfig depende de como você quer se conectar ao cluster. Recomendamos que você use o gateway de conexão. Se você quiser se conectar por um endpoint particular, precisará ter uma conexão e um roteamento para o endpoint do plano de controle na nuvem privada virtual da AWS. O kube-apiserver do cluster faz parte do plano de controle. Para enviar solicitações diretamente ao endpoint particular, talvez seja necessário ampliar as regras de firewall. Para mais informações sobre como se conectar ao plano de controle, consulte Grupos de segurança da AWS.

Conectar gateway

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION

Substitua:

  • CLUSTER_NAME: o nome do cluster
  • GOOGLE_CLOUD_LOCATION: a região ou a zona do Google Cloud em que o GKE na AWS é gerenciado

Endpoint particular

Para se conectar ao endpoint particular, é necessário ter conectividade com o plano de controle do cluster. Consulte Conectar-se ao plano de controle do cluster.

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \
  --private-endpoint

Substitua:

  • CLUSTER_NAME: o nome do cluster
  • GOOGLE_CLOUD_LOCATION: a região ou a zona do Google Cloud em que o GKE na AWS é gerenciado

Trabalhar com vários clusters

Nesta seção, descrevemos como usar kubectl com vários clusters do GKE.

Configurar um cluster padrão para comandos kubectl

É possível alternar o contexto atual da kubectl para esse cluster executando:

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \

Substitua:

  • CLUSTER_NAME: o nome do cluster
  • GOOGLE_CLOUD_LOCATION: a região ou a zona do Google Cloud em que o GKE na AWS é gerenciado

Por exemplo, considere um projeto com dois clusters, cluster-1 e cluster-2. O contexto atual é cluster-2. Para alternar o contexto atual de cluster-2 para cluster-1, execute o seguinte comando:

gcloud container aws clusters get-credentials cluster-1 \
  --location GOOGLE_CLOUD_LOCATION

Executar comandos kubectl individuais em um cluster específico

Execute comandos kubectl individuais em um cluster específico transmitindo o nome do cluster conforme ele aparece na kubeconfig como o argumento para a sinalização --cluster.

Por exemplo, considere um ambiente com dois clusters, cluster-1 e cluster-2, em que o contexto atual é cluster-1. Você não quer alterar o contexto atual. Para ver uma lista de objetos de pod em cluster-2 sem alterar o contexto atual, execute o seguinte comando:

kubectl get pod --cluster cluster-2