Instale o kubectl e configure o acesso ao cluster


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:

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

  1. Instale o componente kubectl:

    gcloud components install kubectl
    
  2. Verifique se o kubectl está instalado e se tem a versão mais recente:

    kubectl version --client
    

apt

  1. 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
    
  2. Se o repositório cloud-sdk não estiver listado, instale a CLI gcloud.

  3. Instale o componente kubectl:

    apt-get update
    apt-get install -y kubectl
  4. Verifique se o kubectl está instalado e se tem a versão mais recente:

    kubectl version --client

nham

  1. 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
    
  2. Instale o componente kubectl:

    yum install -y kubectl
  3. 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:

  1. Verifique a gke-gcloud-auth-plugin versão binária:

    gke-gcloud-auth-plugin --version
    
  2. 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.
  3. 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 ficheiro kubeconfig.
  • 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:

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 o kubectl usa, use a flag --internal-ip ou --dns-endpoint. Para atualizar o ficheiro kubeconfig 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 kubectlindividuais 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?

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