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 clusterGOOGLE_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 clusterGOOGLE_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 clusterGOOGLE_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