Esta página fornece instruções para instalar a ferramenta de linha de comandos kubectl
, que é usada para gerir e aceder a clusters do Google Kubernetes Engine (GKE). A configuração kubectl
é necessária se executar vários clusters no Google Cloud.
Aprende o seguinte:
- Como funciona o
kubectl
. - Como instalar
kubectl
e quaisquer dependências necessárias. - Como definir um cluster predefinido para
kubectl
. - Como executar comandos
kubectl
num cluster específico.
Esta página destina-se a administradores de TI, operadores e programadores que configuram, monitorizam e gerem a infraestrutura na nuvem, incluindo o aprovisionamento e a configuração de recursos na nuvem. Para saber mais sobre as funções comuns e as tarefas de exemplo referenciadas na Google Cloud documentação, consulte o artigo Funções de utilizador e tarefas comuns do GKE.
Antes de ler esta página, certifique-se de que conhece o Kubernetes kubectl
.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
- Certifique-se de que tem um cluster do Autopilot ou Standard existente. Para criar um novo cluster, consulte o artigo Crie um cluster do Autopilot.
Instale a app kubectl
Pode instalar o kubectl
através da Google Cloud CLI ou de um gestor de pacotes externo, como o apt
ou o yum
.
gcloud
Instale o componente
kubectl
:gcloud components install kubectl
Verifique se o
kubectl
está instalado e se tem a versão mais recente:kubectl version --client
apt
Verifique se tem o repositório
cloud-sdk
:grep -rhE ^deb /etc/apt/sources.list* | grep "cloud-sdk"
O resultado é semelhante ao seguinte:
deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
Se o repositório
cloud-sdk
não estiver listado, instale a CLI gcloud.Instale o componente
kubectl
:apt-get update apt-get install -y kubectl
Verifique se o
kubectl
está instalado e se tem a versão mais recente:kubectl version --client
nham
Verifique se tem o repositório
cloud-sdk
:yum repolist | grep "google-cloud-sdk"
O resultado é semelhante ao seguinte:
google-cloud-sdk Google Cloud SDK 2,205
Instale o componente
kubectl
:yum install -y kubectl
Verifique se o
kubectl
está instalado e se tem a versão mais recente:kubectl version --client
Instale os plugins necessários
O kubectl
e outros clientes do Kubernetes requerem um plug-in de autenticação,
gke-gcloud-auth-plugin
, que usa a framework dos
plug-ins de credenciais Client-go para
fornecer tokens de autenticação para comunicar com clusters do GKE.
Antes do lançamento da versão 1.26 do Kubernetes, a CLI gcloud vai começar a exigir que o binário gke-gcloud-auth-plugin
esteja instalado. Se o plug-in não estiver instalado, as instalações existentes do kubectl
ou de outros clientes Kubernetes personalizados deixam de funcionar.
Tem de instalar este plug-in para usar o kubectl
e outros clientes para interagir com o GKE.
Os clientes existentes apresentam uma mensagem de erro se o plug-in não estiver instalado.
Antes de começar, verifique se o plug-in já está instalado:
gke-gcloud-auth-plugin --version
Se a saída apresentar informações da versão, ignore esta secção.
Pode instalar o plug-in de autenticação através da CLI gcloud ou de um gestor de pacotes externo, como o apt
ou o yum
.
gcloud
Instale o ficheiro binário gke-gcloud-auth-plugin
:
gcloud components install gke-gcloud-auth-plugin
apt
Instale o ficheiro binário gke-gcloud-auth-plugin
:
apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
nham
Instale o ficheiro binário gke-gcloud-auth-plugin
:
yum install google-cloud-sdk-gke-gcloud-auth-plugin
Valide a instalação do ficheiro binário gke-gcloud-auth-plugin
:
Verifique a
gke-gcloud-auth-plugin
versão binária:gke-gcloud-auth-plugin --version
Atualize a configuração do
kubectl
para usar o plugin:gcloud container clusters get-credentials CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster.CONTROL_PLANE_LOCATION
: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
Valide a configuração executando o seguinte comando:
kubectl get namespaces
O resultado é semelhante ao seguinte:
NAME STATUS AGE default Active 51d kube-node-lease Active 51d kube-public Active 51d kube-system Active 51d
Para mais informações sobre este plug-in, consulte o KEP do Kubernetes.
Interaja com kubectl
O Kubernetes usa um ficheiro YAML denominado
kubeconfig
para armazenar informações de autenticação de clusters para o kubectl
. Por predefinição,
o ficheiro é guardado em $HOME/.kube/config
.
kubeconfig
contém um grupo de parâmetros de acesso denominado contexts. Cada contexto contém um cluster do Kubernetes, um utilizador e um espaço de nomes predefinido opcional. kubectl
refere-se a contextos quando executa comandos.
Opcionalmente, pode configurar o kubectl
através das seguintes tarefas:
- Escolha o cluster com o qual o
kubectl
comunica. - Defina o cluster predefinido para
kubectl
definindo o contexto atual no ficheirokubeconfig
. - Execute comandos
kubectl
em relação a um cluster específico usando a flag--cluster
.
Ver kubeconfig
Para ver o kubeconfig
do seu ambiente, execute o seguinte comando:
kubectl config view
O comando devolve uma lista de todos os clusters para os quais foram geradas entradas kubeconfig
. Se for apresentado um cluster do GKE, pode executar kubectl
comandos contra o mesmo no seu ambiente atual. Caso contrário, tem de armazenar informações de clusters para o kubectl.
Veja o contexto atual de kubectl
O contexto atual é o cluster que é atualmente o predefinido para
kubectl
. Todos os comandos kubectl
são executados nesse cluster.
Quando cria um cluster com gcloud container clusters create-auto
, é adicionada automaticamente uma entrada ao ficheiro kubeconfig
no seu ambiente e o contexto atual é alterado para esse cluster. Por exemplo:
gcloud container clusters create-auto my-cluster
Creating my-cluster...done
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-cluster
Para ver o contexto atual de kubectl
, execute o seguinte comando:
kubectl config current-context
Armazene informações de clusters para kubectl
Quando cria um cluster através da Google Cloud consola ou da CLI gcloud a partir de um
computador diferente, o ficheiro kubeconfig
do seu ambiente não é atualizado.
Além disso, se um membro da equipa do projeto usar a CLI gcloud para criar um cluster a partir do respetivo computador, o kubeconfig
é atualizado, mas o seu não. A entrada kubeconfig
contém:
- As suas credenciais, conforme apresentado em
gcloud auth list
, ou - As credenciais padrão da aplicação, se estiverem configuradas.
Para gerar um contexto kubeconfig
no seu ambiente, certifique-se de que tem a autorização container.clusters.get
. A função do IAM com menos privilégios que concede esta autorização é container.clusterViewer
.
Para gerar um contexto kubeconfig
para um cluster específico, execute o seguinte comando:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster.CONTROL_PLANE_LOCATION
: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
Gere uma entrada kubeconfig
através do endereço IP interno de um cluster
Todos os clusters têm vários endereços de pontos finais, cada um com características diferentes. Um destes pontos finais serve como o ponto final canónico usado pelo kubectl
e outros serviços para comunicar com o seu plano de controlo do cluster.
O GKE seleciona automaticamente o ponto final com base na seguinte ordem:
- O endereço IP externo (se tiver ativado o ponto final externo)
- O endereço IP interno
- O endereço DNS (se o acesso IP estiver desativado)
Para usar o ponto final canónico por predefinição, execute o comando
get-credentials
. Para ter mais controlo sobre o ponto final que okubectl
usa, use a flag--internal-ip
ou--dns-endpoint
. Para atualizar o ficheirokubeconfig
para usar o endereço IP interno, execute o seguinte comando:
gcloud container clusters get-credentials CLUSTER_NAME --internal-ip
Para atualizar o ficheiro kubeconfig
para usar o endereço DNS, execute o seguinte comando:
gcloud container clusters get-credentials CLUSTER_NAME --dns-endpoint
Substitua CLUSTER_NAME
pelo nome do seu cluster.
Por predefinição, a execução de get-credentials
usa o endereço IP especificado no campo endpoint
.
Defina um cluster predefinido para comandos kubectl
Se tiver gerado anteriormente uma entrada kubeconfig para clusters, pode mudar o contexto atual para kubectl
para esse cluster executando o seguinte comando:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster.CONTROL_PLANE_LOCATION
: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
Por exemplo, considere um projeto com dois clusters, my-cluster
e
my-new-cluster
. O contexto atual é my-new-cluster
, mas quer executar
todos os comandos em relação a my-cluster
.kubectl
Para mudar o contexto atual de my-new-cluster
para my-cluster
, execute o seguinte comando:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Executar comandos kubectl
individuais num cluster específico
Pode executar comandos kubectl
individuais num cluster específico usando --cluster=CLUSTER_NAME
.
Por exemplo, considere um ambiente com dois clusters, my-cluster
e my-new-cluster
, no qual o contexto atual é my-cluster
. Quer implementar uma aplicação no my-new-cluster
, mas não quer alterar o contexto atual. Para implementar a aplicação em my-new-cluster
sem alterar o contexto atual, executaria o seguinte comando:
kubectl run my-app --image us-docker.pkg.dev/my-project/my-repo/my-app:1.0 --cluster my-new-cluster
O que se segue?
- Saiba como autorizar o acesso a recursos em clusters do GKE.
- Autenticar em Google Cloud serviços a partir de cargas de trabalho do GKE.
- Leia a
kubectl
referência rápida. - Resolva problemas da
kubectl
ferramenta de linha de comandos.
Experimente
Se está a usar o Google Cloud pela primeira vez, crie uma conta para avaliar o desempenho do GKE em cenários reais. Os novos clientes também recebem 300 USD em créditos gratuitos para executar, testar e implementar cargas de trabalho.
Experimente o GKE gratuitamente