As frotas em Google Cloud são grupos lógicos de clusters do Kubernetes e outros recursos que podem ser gerenciados juntos, criados ao registrar clusters no Google Cloud. O gateway do Connect foi desenvolvido com base na eficiência das frotas para que os usuários do GKE possam se conectar e executar comandos nos clusters registrados de frota de maneira simples, consistente e segura, estejam eles no Google Cloud, em outras nuvens públicas ou no local, além de facilitar a automatização de processos de DevOps em todos os clusters.
Neste guia, pressupomos que você já conheça alguns conceitos básicos da frota e saiba como registrar clusters em frotas. Saiba mais na Visão geral do gerenciamento de frota, na Visão geral de criação de frota e nos guias vinculados. Você também precisa conhecer as ferramentas e conceitos do Kubernetes, incluindo kubectl, client-go (se quiser usar o gateway para fins de automação), controle de acesso baseado em papéis (RBAC) e recursos principais do Kubernetes.
Por padrão, o gateway do Connect usa seu ID do Google para se autenticar em clusters, com suporte para provedores de identidade de terceiros que usam a federação de identidade de colaboradores e com suporte para a autenticação baseada em grupo pelo serviço de identidade do GKE. Se você quiser saber mais sobre o Serviço de Identidade do GKE ou usá-lo como uma opção independente de autenticação de terceiros, consulte Introdução ao Serviço de Identidade do GKE.
Por que usar o gateway do Connect?
Há muitos desafios no gerenciamento das cargas de trabalho quando os clusters são executados em várias nuvens e ambientes híbridos. Os clusters podem estar sendo executados em nuvens privadas virtuais (VPCs) diferentes e aproveitar diferentes provedores de identidade, o que torna a conectividade, autenticação e autorização mais complicadas. As vezes, é difícil descobrir quais clusters existem nesses ambientes.
O gateway do Connect facilita:
- Descobrir quais clusters existem (no Google Cloud, em outra nuvem pública ou no local) e estão registrados na sua frota por fazendo uma consulta simples.
- Conectar-se a um cluster usando a mesma infraestrutura que usamos para mostrar os clusters do GKE registrados no Google Cloud console.
- Autenticar usando as mesmas identidades que você usa com Google Cloud serviços.
- Autorizar de maneira consistente em todos os clusters registrados em uma frota.
O gateway autentica sua Google Cloud identidade e fornece a conexão com o servidor da API do cluster por meio do serviço Connect.
É possível interagir com os clusters diretamente pelo gateway usando ferramentas de linha de comando que aceitam um kubeconfig, como kubectl. Também é fácil aproveitar o gateway com seus pipelines de versão e outras automações de DevOps. Veja um exemplo de como fazer isso no nosso tutorial Como integrar ao Cloud Build.
Também é possível usar o serviço Connect para se conectar a clusters registrados fora do Google Cloud com sua Google Cloud identidade no Google Cloud console. Para fazer isso, siga as instruções em Trabalhar com clusters no Google Cloud console.
Como funciona
Veja o fluxo que um usuário ou serviço típico (como um pipeline de CI/CD) cumpre para usar o gateway do Connect depois que a autenticação e a autorização apropriadas são configuradas. Para instruções mais detalhadas sobre os usuários, consulte nosso guia de uso.
O usuário ou serviço descobre clusters listando recursos de assinatura da frota com a Google Cloud CLI.
gcloud container fleet memberships list
O usuário ou serviço busca o
kubeconfigespecífico do gateway do Connect necessário para alcançar o cluster selecionado usando a Google Cloud CLI.gcloud container fleet memberships get-credentials membership-name
Se você já sabe usar a CLI gcloud com o GKE, é semelhante à execução de
gcloud container clusters get-credentialsusando a conta do Google Cloud. Isso permite, se houver autorização, acessar qualquer cluster registrado e se conectar na frota do projeto. Google CloudO usuário ou serviço executa os comandos como faria normalmente com
kubectlouclient-go, usando o arquivokubeconfigbaixado.- O usuário/serviço é autenticado pelo gateway do Connect e a autorização é verificada para garantir que tenha permissão para usar o gateway. Para clusters do GKE, o gateway se conecta diretamente ao cluster do GKE.
- Para clusters do Kubernetes que não são do GKE, a solicitação é encaminhada por meio do serviço do Connect e do agente do Connect para o servidor correspondente da API Kubernetes.
- Para clusters do Kubernetes que não são do GKE, o servidor da API Kubernetes autoriza a solicitação, que exige que o agente do Connect esteja autorizado a personificar o usuário ou serviço e que o usuário ou serviço esteja autorizado a executar a solicitação desejada.
Suporte do Grupo do Google
No fluxo padrão descrito na seção anterior, a solicitação do usuário é autorizada com base no ID individual. No entanto, em muitos casos é útil autorizar os usuários com base na assinatura do Grupos do Google. Autorizar com base na associação ao grupo significa que você não precisa configurar uma autorização separada para cada conta, simplificando o gerenciamento das políticas e facilitando a auditoria. Por exemplo, é fácil compartilhar o acesso ao cluster para uma equipe, eliminando a necessidade de adicionar/remover manualmente usuários individuais dos clusters quando eles ingressam ou saem da equipe. Com algumas configurações adicionais usando o Serviço de Identidade do GKE, é possível configurar o gateway do Connect para receber as informações de associação ao grupo do Google para o usuário.
Saiba mais sobre como esse recurso funciona e como configurá-lo em Configurar o gateway do Connect com o Grupos do Google.
Se você quiser usar esse recurso com clusters anexados ou outros ambientes do GKE, entre em contato com o Cloud Customer Care ou com a equipe de gateway do Connect.
Compatibilidade com identidade de terceiros
Além de trabalhar com usuários e grupos do Google Workspace, o gateway do Connect oferece suporte à autorização usando identidades de terceiros, como o Azure Active Directory e Okta. Usando a federação de identidade de colaboradores, é possível usar um provedor de identidade externo para autenticar e autorizar uma força de trabalho (um grupo de usuários, como funcionários, parceiros e prestadores de serviço) usando o Identity and Access Management para que os usuários possam acessar Google Cloud serviços como o gateway do Connect. Com algumas configurações adicionais usando o Serviço de Identidade do GKE, é possível configurar o gateway do Connect para receber informações de associação a grupos de terceiros para usuários.
Para clusters anexados do GKE, esse recurso está disponível para todas as versões de cluster do Kubernetes com suporte.
Saiba mais sobre como esse recurso funciona e como fazer a configuração dele em Configurar o gateway do Connect com identidades de terceiros.
Se preferir, configure a autenticação de terceiros usando o serviço de identidade do GKE, seguindo as instruções na documentação.
Latência
A latência total de uma solicitação por meio do gateway pode ser dividida em duas partes: o RTT (tempo de retorno) do serviço de gateway do Connect para o agente do Connect e o tempo de execução da solicitação dentro do cluster. A latência extra trazida pelo RTT é de p95<500 ms e p99<1s. Observe que a maioria dos comandos kubectl executa uma série de solicitações diferentes, cada uma exigindo uma ida e volta, antes de renderizar uma resposta para o usuário.
A seguir
- Saiba como configurar o gateway do Connect para usuários e contas de serviço.
- Saiba como configurar o suporte do Grupos do Google para o gateway do Connect.
- Saiba como se conectar e executar comandos em um cluster registrado usando o gateway do Connect
- Veja um exemplo de como usar o gateway do Connect como parte da sua automação de DevOps no tutorial Como integrar com o Cloud Build.