Anexar clusters de terceiros ao Google Cloud (geração anterior)

Com os clusters anexados do GKE, é possível conferir clusters do Kubernetes no console Google Cloud com os clusters do GKE, e ativam vários recursos do GKE, incluindo recursos com o Config Sync.

Clusters do Kubernetes compatíveis

É possível anexar qualquer cluster do Kubernetes em conformidade que inclua nós x86 à frota e visualizá-lo no console do Google Cloud com os clusters do GKE.

Os seguintes tipos e versões de cluster foram validados pelo Google. Para informações sobre os recursos do GKE compatíveis com clusters anexados, consulte Suporte para upgrade e versão do GKE.

Tipos de cluster anexados versões do Kubernetes;
Red Hat OpenShift Kubernetes Engine (OKE) 4.9, 4.10 1.23, 1.24
Red Hat OpenShift Container Platform (OCP) 4.9, 4.10 1.23, 1.24
Rancher Kubernetes Engine (RKE) 1.3.8 1.23, 1.24
KIND 0.12 1.23, 1.24
K3s 1.20 1.20
K3d 4.4.3 1.20

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Anthos API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  7. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Anthos API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Install the Google Cloud CLI.

  12. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  13. Para inicializar a gcloud CLI, execute o seguinte comando:

    gcloud init
  14. Verifique os Pré-requisitos de registro da frota para garantir que você tenha as permissões relevantes e as APIs ativadas para registrar um cluster.
  15. Consulte o guia Antes de começar para ver os requisitos específicos para anexar clusters fora do Google Cloud, incluindo etapas de configuração especiais que você possa precisar para seu tipo de cluster.
  16. Registrar clusters anexados

    É necessário registrar todos os clusters que você quer usar com os recursos do GKE na frota do seu projeto. Com uma frota, é possível agrupar e normalizar logicamente clusters, facilitando a administração da infraestrutura. É possível navegar e gerenciar os clusters da mesma frota no console doGoogle Cloud . Além disso, muitos componentes do GKE e do Google Cloud usam conceitos de frota, como semelhança de identidade e de namespace para simplificar o trabalho com vários clusters. Para saber mais sobre as frotas e as funcionalidades que elas oferecem, consulte o Guia de gerenciamento de frotas.

    Você tem o direito de ativar e usar os recursos do GKE em esses clusters, e é possível gerenciar alguns recursos do GKE no nível da frota, Página de recursos do GKE.

    Configurar identidade

    Todos os clusters anexados exigem uma identidade para o agente do Connect usar ao autenticar no Google. Se o cluster atender aos requisitos, será possível registrá-lo com a Identidade da carga de trabalho da frota ativada para autenticação. Os clusters com esse recurso ativado usam identidades do pool de identidades de carga de trabalho da frota em toda a frota. Saiba mais sobre como a Identidade da carga de trabalho da frota funciona e as vantagens de usá-la em Usar a Identidade da carga de trabalho da frota.

    Se não for possível usar a Identidade da carga de trabalho da frota, o registro de um cluster anexado exigirá uma Google Cloud conta de serviço para autenticação. Recomendamos que você crie uma nova conta de serviço para cada cluster que quiser anexar. Para criar uma conta de serviço para um cluster com os papéis apropriados, siga as instruções em Como criar uma conta de serviço do Google Cloud com o gcloud. Depois de criar a conta de serviço, use o arquivo JSON com as credenciais dessa conta (arquivo de chave) para registrar o cluster, conforme descrito na próxima seção.

    Registrar o cluster

    Recomendamos conseguir o status da associação do cluster após o registro para garantir que ele esteja conectado corretamente ao Google Cloud. Consulte nosso guia de solução de problemas se tiver problemas com seu registro.

    gcloud

    Execute este comando:

    gcloud container fleet memberships register MEMBERSHIP_NAME \
       --context=KUBECONFIG_CONTEXT \
       --kubeconfig=KUBECONFIG_PATH \
       --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
    

    Substitua:

    • MEMBERSHIP_NAME: o nome da assinatura que você escolher e que é usado para representar exclusivamente o cluster que está sendo registrado na frota.
    • SERVICE_ACCOUNT_KEY_PATH: o caminho do arquivo local para o arquivo JSON da chave privada da conta de serviço baixado como parte dos Pré-requisitos. Esta chave de conta de serviço é armazenada como um secret chamado creds-gcp no namespace gke-connect.
    • KUBECONFIG_CONTEXT: o contexto do cluster que está sendo registrado da forma como aparece no arquivo kubeconfig. É possível conseguir esse valor a partir da linha de comando executando kubectl config current-context.
    • KUBECONFIG_PATH: o caminho de arquivo local em que o kubeconfig que contém uma entrada para o cluster que está sendo registrado é armazenado. O padrão é $KUBECONFIG se essa variável de ambiente estiver definida. Caso contrário, o padrão será $HOME/.kube/config.

    Registrar um cluster anexado com a Identidade da carga de trabalho da frota

    Para registrar um cluster anexado com a Identidade da carga de trabalho da frota ativada, execute o comando a seguir. Para mais informações sobre os tipos de cluster anexados que podem usar esse recurso e outros requisitos extras, consulte Pré-requisitos do cluster anexado.

    gcloud container fleet memberships register MEMBERSHIP_NAME \
       --context=KUBECONFIG_CONTEXT \
       --kubeconfig=KUBECONFIG_PATH \
       --enable-workload-identity \
       --has-private-issuer
    

    Console

    Gerar um comando de registro

    Use o console Google Cloud para gerar um comando de registro gcloud para registrar o cluster (apenas com uma conta de serviço).

    Para registrar um cluster:

    1. No console Google Cloud , acesse a página Visão geral dos clusters do Google Kubernetes Engine.

      Acesse os clusters do GKE

    2. Clique em Registrar cluster existente.

    3. Clique em Adicionar cluster externo.

    4. Digite o nome do cluster que você quer registrar no campo Nome do cluster.

    5. Opcional: adicione Google Cloud rótulos ao cluster.

    6. Clique em Gerar comando de registro.

    7. No Cloud Shell ou no local em que você salvou as credenciais da conta de serviço, edite e execute o comando gcloud exibido na página. Você precisa especificar os seguintes valores:

      • O CLUSTER_CONTEXT é o contexto do cluster como ele aparece no arquivo kubeconfig. É possível conseguir esse valor a partir da linha de comando executando kubectl config current-context.
      • O KUBECONFIG_PATH é o caminho de arquivo local em que o arquivo kubeconfig está armazenado. O padrão é $KUBECONFIG se essa variável de ambiente estiver definida. Caso contrário, o padrão será $HOME/.kube/config.
      • O LOCAL_KEY_PATH é o caminho para o arquivo de chave da sua conta de serviço;

      A execução desse comando implanta o agente do Connect no cluster de usuário. Quando o agente do Connect se conecta ao Google Cloud e seu cluster é registrado, uma mensagem de sucesso é exibida na página.

    8. Clique em Definir rótulos ou em Pular se você não tiver configurado nenhum rótulo.

    Opções avançadas de registro (somente para a linha de comando)

    Fazer o download do manifesto do agente do Connect

    Para fazer o download do manifesto de instalação do agente do Connect sem implantar o agente, por exemplo, se você quiser examinar ou editar o manifesto antes da instalação, transmita a sinalização --manifest-output-file para o comando gcloud container fleet memberships register. Exemplo:

    --manifest-output-file=[MANIFEST_FILE_PATH]

    em que [MANIFEST_FILE_PATH] é o caminho de arquivo local em que você quer que o manifesto de instalação do agente do Connect seja armazenado.

    Usar essa opção não implantará o agente do Connect no cluster. Para implantar o Connect Agent, aplique manualmente o manifesto salvo ao seu cluster.

    Como usar um servidor proxy

    Para configurar um servidor proxy, transmita a sinalização --proxy para o comando gcloud container fleet memberships register. Exemplo:

    --proxy=[URL]

    em que [URL] é o endereço do proxy.

    O agente do Connect é compatível somente com proxys HTTP e HTTPS baseados no CONNECT e aceita endereços IP e nomes do host. Certifique-se de especificar o protocolo correspondente ao tipo de proxy no URL. Por exemplo, para transmitir um nome do host HTTPS:

    --proxy=https://mycorpproxy.com:443

    A menos que você especifique o contrário, o agente do Connect usa a porta 3128 no proxy.

    Se o proxy exigir autorização, certifique-se de transmitir as credenciais, como:

    --proxy=http://user:password@10.10.10.10:8888

    Como instalar o Connect Agent em um cluster com nós do Windows e Linux

    O agente do Connect precisa ser executado em um nó do Linux. Se você estiver instalando em um cluster misto com nós do Linux e do Windows, garanta a implantação do agente do Connect em um nó do Linux adicionando um seletor de nós apropriado à definição de implantação.

    Execute o seguinte comando para atualizar a implantação com o seletor de nós apropriado:

    kubectl patch deployment \
    $(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
    -p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect

    Para confirmar se a atualização foi bem-sucedida, execute o seguinte comando:

    kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connect

    O comando retornará:

    {"kubernetes.io/os":"linux"}

    Solução de problemas

    Se você tiver problemas durante essa configuração, consulte o guia de solução de problemas da criação de frota.

    Ativar recursos do GKE em clusters anexados

    Depois de registrar seus clusters, ative os recursos disponíveis do GKE para seus aplicativos. Esses recursos são compatíveis apenas com nossos tipos de cluster validados. Veja as versões de recursos atuais compatíveis com esses tipos em Compatibilidade com versões e upgrades.

    Os guias a seguir mostram como ativar os recursos compatíveis nos clusters:

    Acessar clusters anexados

    Depois de registrar um cluster anexado, ele aparece nas páginas de clusters do GKE no Google Cloud console. No entanto, para ver mais detalhes, como nós e cargas de trabalho, você precisa fazer login e se autenticar no cluster. Para fazer login nos clusters anexados usando o Google Cloud console, siga as instruções em Como fazer login nos clusters com o Google Cloud console. Dependendo do método de autenticação escolhido, você ou um administrador da plataforma precisará fazer algumas configurações adicionais antes que você ou outros usuários possam fazer login no cluster.

    Para acessar clusters anexados da linha de comando usando uma identidade do Google Cloud , consulte Como se conectar a clusters registrados com o gateway do Connect.

    Para autenticar clusters anexados usando seu provedor de identidade terceirizado atual (somente EKS em clusters da AWS, recurso em pré-lançamento), consulte Como configurar o GKE Identity Service para uma frota e Como acessar clusters com o GKE Identity Service.

    A seguir