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
- 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.
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
- Verifique os pré-requisitos de registo da frota para garantir que tem as autorizações relevantes e as APIs ativadas para registar um cluster.
- 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.
- 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 nomesgke-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
. Na Google Cloud consola, aceda à página Vista geral dos clusters do Google Kubernetes Engine.
Clique em Registar cluster existente.
Clique em Adicionar cluster externo.
Introduza o nome do cluster que quer registar no campo Nome do cluster.
Opcional: adicione Google Cloud etiquetas ao seu cluster.
Clique em Gerar comando de registo.
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.
- O CLUSTER_CONTEXT é o contexto do cluster, tal como aparece no ficheiro kubeconfig. Pode obter este valor na linha de comandos executando
Clique em Definir etiquetas ou clique em Ignorar se não tiver definido etiquetas.
O Cloud Service Mesh 1.11 e posterior suporta o Amazon EKS:
Gestão de políticas e configurações:
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:
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:
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.