Anexe clusters de terceiros a Google Cloud (geração anterior)

Os clusters anexados do GKE permitem-lhe ver os seus clusters do Kubernetes existentes na Google Cloud consola juntamente com os clusters do GKE e ativar várias funcionalidades do GKE neles, incluindo o controlo de configuração centralizado com o Config Sync.

Clusters do Kubernetes suportados

Pode anexar qualquer cluster Kubernetes em conformidade que inclua nós x86 à sua frota e vê-lo na Google Cloud consola com os seus clusters GKE.

Os seguintes tipos e versões de clusters foram validados pela Google. Para ver informações sobre as funcionalidades do GKE suportadas em clusters anexados, consulte o artigo Suporte de atualizações e versões do GKE.

Tipos de clusters anexados Versões do Kubernetes
Red Hat OpenShift Kubernetes Engine (OKE) 4.9 e 4.10 1.23, 1.24
Red Hat OpenShift Container Platform (OCP) 4.9 e 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. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, 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. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

    gcloud init
  14. Verifique os pré-requisitos de registo da frota para garantir que tem as autorizações relevantes e as APIs ativadas para registar um cluster.
  15. Consulte o guia Antes de começar para ver os requisitos específicos para anexar clusters externos Google Cloud, incluindo os passos de configuração especiais de que pode precisar para o seu tipo de cluster.
  16. Registe clusters anexados

    Tem de registar todos os clusters que quer usar com as funcionalidades do GKE na frota do seu projeto. Uma frota oferece uma forma de agrupar e normalizar logicamente clusters do Kubernetes, o que facilita a administração da infraestrutura. Pode procurar e gerir clusters na mesma frota em conjunto na Google Cloud consola, e muitos componentes do GKE e do Google Cloud usam conceitos de frotas, como identidade igual e espaço de nomes igual, para simplificar o trabalho com vários clusters. Pode saber muito mais sobre as frotas e a funcionalidade que permitem no nosso guia de gestão de frotas.

    Tem o direito de ativar e usar funcionalidades do GKE nestes clusters e pode gerir algumas funcionalidades do GKE ao nível da frota a partir da página de funcionalidades do GKE.

    Configure a identidade

    Todos os clusters anexados requerem uma identidade para o agente Connect usar quando se autentica no Google. Se o seu cluster cumprir os requisitos, pode registá-lo na frota com a identidade da carga de trabalho ativada para autenticação. Os clusters com esta funcionalidade ativada usam identidades de um Workload Identity Pool da frota ao nível da frota. Pode saber mais sobre o funcionamento do Workload Identity da frota e as vantagens da sua utilização em Use o Workload Identity da frota.

    Se não conseguir usar a identidade de carga de trabalho da frota, o registo de um cluster anexado requer uma Google Cloud conta de serviço para autenticação. Recomendamos que crie uma nova conta de serviço para cada cluster que quer associar. Para criar uma conta de serviço para um cluster com as funções adequadas, siga as instruções em Criar uma conta de Google Cloud serviço com gcloud. Depois de criar a conta de serviço, pode usar o ficheiro JSON com as credenciais (ficheiro de chave) da conta de serviço para registar o cluster, conforme descrito na secção seguinte.

    Registe o seu cluster

    Recomendamos que obtenha o estado de membro do cluster depois de o registar para garantir que está corretamente ligado ao Google Cloud. Consulte o nosso guia de resolução de problemas se tiver problemas com o registo.

    gcloud

    Execute o seguinte comando:

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

    Substitua o seguinte:

    • MEMBERSHIP_NAME: o nome do membro que escolher e que é usado para representar de forma exclusiva o cluster que está a ser registado na frota.
    • SERVICE_ACCOUNT_KEY_PATH: o caminho do ficheiro local para o ficheiro JSON da chave privada da conta de serviço transferido como parte dos pré-requisitos. Esta chave da conta de serviço é armazenada como um segredo denominado creds-gcp no espaço de nomes gke-connect.
    • KUBECONFIG_CONTEXT: o contexto do cluster do cluster que está a ser registado, tal como aparece no ficheiro kubeconfig. Pode obter este valor na linha de comandos executando kubectl config current-context.
    • KUBECONFIG_PATH: o caminho do ficheiro local onde o seu kubeconfig que contém uma entrada para o cluster que está a ser registado está armazenado. A predefinição é $KUBECONFIG se essa variável de ambiente estiver definida; caso contrário, a predefinição é $HOME/.kube/config.

    Registe um cluster anexado com o Workload Identity da frota

    Para registar um cluster anexado com o Workload Identity da frota ativado, execute o seguinte comando. Para mais informações sobre os tipos de clusters anexados que podem usar esta funcionalidade e quaisquer requisitos adicionais, consulte os pré-requisitos dos clusters anexados.

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

    Consola

    Gere um comando de registo

    Pode usar a consola Google Cloud para ajudar a gerar um gcloud comando de registo para registar o seu cluster (apenas com uma conta de serviço).

    Para registar um cluster:

    1. Na Google Cloud consola, aceda à página Vista geral dos clusters do Google Kubernetes Engine.

      Aceda aos clusters do GKE

    2. Clique em Registar cluster existente.

    3. Clique em Adicionar cluster externo.

    4. Introduza o nome do cluster que quer registar no campo Nome do cluster.

    5. Opcional: adicione Google Cloud etiquetas ao seu cluster.

    6. Clique em Gerar comando de registo.

    7. No Cloud Shell ou onde quer que tenha guardado as credenciais da conta de serviço, edite e execute o comando gcloud apresentado na página. Tem de especificar os seguintes valores:

      • O CLUSTER_CONTEXT é o contexto do cluster, tal como aparece no ficheiro kubeconfig. Pode obter este valor na linha de comandos executando kubectl config current-context.
      • O KUBECONFIG_PATH é o caminho do ficheiro local onde o ficheiro kubeconfig está armazenado. A predefinição é $KUBECONFIG se essa variável de ambiente estiver definida; caso contrário, a predefinição é $HOME/.kube/config.
      • LOCAL_KEY_PATH é o caminho para o ficheiro de chave da conta de serviço.

      A execução deste comando implementa o agente Connect no cluster de utilizadores. Quando o agente de ligação se liga ao Google Cloud e o cluster é registado, é apresentada uma mensagem de êxito na página.

    8. Clique em Definir etiquetas ou clique em Ignorar se não tiver definido etiquetas.

    Opções de registo avançadas (apenas na linha de comandos)

    Transfira o manifesto do agente Connect

    Para transferir o manifesto de instalação do agente Connect sem implementar o agente, por exemplo, se quiser examinar ou editar o manifesto antes da instalação, transmita a flag --manifest-output-file para o comando gcloud container fleet memberships register. Por exemplo:

    --manifest-output-file=[MANIFEST_FILE_PATH]

    onde [MANIFEST_FILE_PATH] é o caminho do ficheiro local onde quer que o manifesto de instalação do agente de ligação seja armazenado.

    A utilização desta opção não implementa o agente Connect no cluster. Para implementar o agente Connect, aplique manualmente o manifesto transferido ao seu cluster.

    Usar um servidor proxy

    Para configurar um servidor proxy, transmita a flag --proxy para o comando gcloud container fleet memberships register. Por exemplo:

    --proxy=[URL]

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

    O agente de ligação suporta apenas proxies HTTP e HTTPS baseados em CONNECT e aceita endereços IP e nomes de anfitriões. Certifique-se de que especifica o protocolo correspondente ao tipo de proxy no URL. Por exemplo, para transmitir um nome de anfitrião HTTPS:

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

    A menos que especifique o contrário, o agente de ligação usa a porta 3128 para o proxy.

    Se o seu proxy exigir autorização, certifique-se de que transmite as suas credenciais, como:

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

    Instalar o agente Connect num cluster com nós do Windows e Linux

    O agente Connect tem de ser executado num nó Linux. Se estiver a instalar num cluster misto com nós Linux e Windows, pode garantir que o agente Connect é implementado num nó Linux adicionando um seletor de nós adequado à definição de implementação.

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

    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 validar que 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 deve devolver:

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

    Resolução de problemas

    Se tiver problemas durante esta configuração, consulte o guia de resolução de problemas de criação de frotas.

    Ative funcionalidades do GKE em clusters anexados

    Depois de registar os clusters, pode ativar as funcionalidades do GKE disponíveis nos mesmos para as suas aplicações. Estas funcionalidades só são suportadas nos nossos tipos de clusters validados. Pode ver as versões atuais das funcionalidades suportadas nestes tipos em Suporte de versões e atualizações.

    Os seguintes guias mostram como ativar as funcionalidades suportadas nos seus clusters:

    Aceda a clusters anexados

    Depois de registar um cluster anexado, este é apresentado nas páginas de clusters do GKE no Google Cloud console. No entanto, para ver mais detalhes, como nós e cargas de trabalho, tem de iniciar sessão e autenticar-se no cluster. Para iniciar sessão nos clusters anexados a partir da Google Cloud consola, siga as instruções em Iniciar sessão nos clusters a partir da Google Cloud consola. Consoante o método de autenticação que escolher, tenha em atenção que pode ter de fazer alguma configuração adicional, ou um administrador da plataforma, antes de poder iniciar sessão no cluster, ou outros utilizadores.

    Para aceder a clusters anexados a partir da linha de comandos através de uma Google Cloud identidade, consulte o artigo Estabelecer ligação a clusters registados com o gateway Connect.

    Para se autenticar em clusters anexados através do seu fornecedor de identidade de terceiros existente (apenas para clusters do EKS na AWS, funcionalidade de pré-visualização), consulte os artigos Configurar o GKE Identity Service para uma frota e Aceder a clusters com o GKE Identity Service.

    O que se segue?