Planeie funcionalidades da frota

Uma parte importante do planeamento para frotas é decidir que funcionalidades ativadas para frotas quer usar. Em particular, se estiver a trabalhar com clusters e cargas de trabalho de produção existentes, pode querer identificar funcionalidades da frota que podem ser adotadas imediatamente com o mínimo de atrito ou risco para as suas aplicações existentes, ao mesmo tempo que planeia outras funcionalidades que podem exigir uma adoção mais gradual ou cuidadosa. Este guia descreve os diferentes tipos de funcionalidades ativadas através da utilização de frotas e os respetivos requisitos, e oferece algumas orientações práticas sobre a adoção de funcionalidades.

Este guia destina-se a arquitetos da nuvem que querem começar a usar frotas nas respetivas organizações. Antes de ler este guia, certifique-se de que conhece a nossa vista geral da gestão de frotas e o artigo Planeie recursos da frota, que aborda a organização de clusters novos ou existentes em frotas.

Práticas recomendadas para a adoção de funcionalidades

Todas as funcionalidades de frotas (exceto a observabilidade básica de frotas) são opcionais, ou seja, tem de especificar que quer usá-las. Apenas adicionar um cluster existente a uma frota não altera a respetiva configuração. Quando decidir usar as funcionalidades de frota, algumas funcionalidades podem ser ativadas imediatamente com um risco mínimo, mas pode ter de abordar algumas funcionalidades com mais cuidado. Esta secção fornece algumas orientações para a adoção de funcionalidades.

Em particular, com clusters e cargas de trabalho existentes, tem de ter especial cuidado quando as funcionalidades usam a semelhança. Este é um conceito de frota em que os espaços de nomes, os serviços ou as identidades com o mesmo nome em diferentes clusters são assumidos pela funcionalidade como sendo a mesma coisa. Pode ler mais acerca do princípio da igualdade e das funcionalidades que o usam no artigo Como funcionam as frotas.

Integração de funcionalidades de baixo risco

As seguintes funcionalidades "ambientais" não pressupõem qualquer tipo de semelhança e não afetam os clusters de forma alguma. Podem ser usadas em segurança, mesmo com cargas de trabalho e clusters existentes, o que lhe permite beneficiar imediatamente de uma observabilidade melhorada e de estatísticas de segurança em toda a sua frota, bem como da capacidade de gerir a ordem das atualizações de clusters com base na associação à frota.

As seguintes funcionalidades estão instaladas em clusters individuais. As funcionalidades podem assumir a igualdade, mas apenas quando configuram ou especificam recursos em vários clusters. Isto significa que pode ativar estas funcionalidades em segurança nos seus clusters com cargas de trabalho existentes e só tem de considerar a igualdade quando criar ou usar configurações para as mesmas que usam estes seletores opcionais.

Integração de funcionalidades avançadas de vários clusters

As seguintes funcionalidades avançadas reduzem os custos operacionais da gestão de vários clusters. No entanto, é preciso ter mais cuidado com estas funcionalidades, uma vez que todas requerem a pressuposição de um ou mais tipos de semelhança para funcionar, e ativá-las ou desativá-las pode afetar vários clusters e as respetivas cargas de trabalho.

Por exemplo, se tiver espaços de nomes do Kubernetes existentes com o mesmo nome em diferentes clusters e aplicações (incluindo o espaço de nomes predefinido), deve verificar se quer que sejam tratados como o mesmo espaço de nomes antes de ativar quaisquer funcionalidades que façam esta suposição. Da mesma forma, se quiser usar o Cloud Service Mesh, deve compreender que os pontos finais de serviço vão ser unidos nos seus clusters e confirmar que este é o comportamento pretendido.

Auditoria da igualdade do espaço de nomes

Se conhecer bem as suas aplicações, pode auditar os seus espaços de nomes apenas verificando que não existem duas aplicações "diferentes" a usar o mesmo espaço de nomes. Em particular, procure a utilização ad hoc do espaço de nomes predefinido. Por exemplo, se tiver um espaço de nomes denominado default num cluster e um espaço de nomes denominado default noutro cluster, mas forem usados para fins diferentes, deve mudar o nome de um deles.

Para uma abordagem mais rigorosa, experimente o seguinte. Para cada conjunto de namespaces com o mesmo nome em diferentes clusters de uma frota, verifique se:

  • Em todos os clusters, as mesmas regras de RBAC estão no cluster e o namespace de diretores tem acesso permitido ao namespace.
  • O conjunto de imagens usado pelos Pods (exceto o hash/etiqueta) é o mesmo.
  • O conjunto de segredos usado pelos pods é idêntico.

Se todas estas condições forem verdadeiras, os espaços de nomes são suficientemente semelhantes para serem tratados como "iguais".

Se os seus espaços de nomes não forem suficientemente semelhantes, pode migrar as apps para novos espaços de nomes. Quando tiver a certeza de que os espaços de nomes são iguais, pode ativar as funcionalidades que os usam.

Audite a igualdade do serviço

Se quiser adotar o Cloud Service Mesh para gerir as suas aplicações baseadas em microsserviços, outro aspeto a considerar é a igualdade dos serviços. Isto significa que, para qualquer combinação de namespace e nome do serviço, o Cloud Service Mesh trata-os como o mesmo serviço lógico em termos de:

  • Identidade (especificamente para a segurança da Cloud Service Mesh): se namespace1/service1 tiver autorização para fazer algo, as cargas de trabalho com essa identidade de qualquer cluster têm autorização.
  • Gestão de tráfego: por predefinição, o tráfego é equilibrado entre a carga de namespace1/service1 serviços em qualquer cluster.
  • Observabilidade: as métricas para namespace1/service1 em todos os clusters são agregadas.

Se estiver a ativar a Cloud Service Mesh com novos clusters e aplicações, recomendamos que reserve combinações únicas de namespace/nome do serviço em toda a malha. Para aplicações existentes, audite os seus serviços para garantir que os serviços com o mesmo espaço de nomes e nome nos seus clusters são aqueles que quer que sejam tratados como o mesmo serviço em termos de identidade, gestão de tráfego e observabilidade.

Em particular, certifique-se de que os serviços logicamente diferentes (por exemplo, uma API de contabilidade de pagamentos e uma API de transações de pagamentos) não usam o mesmo par [namespace, name] (por exemplo, payments/api), porque são tratados como o mesmo serviço assim que estiverem numa malha de serviços. Esta união conceptual ocorre mesmo entre limites regionais. Além disso, o funcionamento dos serviços pode ser afetado.

A igualdade do nome/espaço de nomes do serviço também é assumida pelo Multi Cluster Ingress e pelo gateway de vários clusters quando direcionam o tráfego para serviços em vários clusters, embora apenas para serviços que são expostos fora dos clusters.

Considere o Workload Identity

Uma funcionalidade poderosa da frota é a federação de identidade da carga de trabalho ao nível da frota. Isto expande as capacidades fornecidas na Workload Identity Federation para o GKE, que permite que as cargas de trabalho no seu cluster sejam autenticadas no Google sem ter de transferir, rodar manualmente e, geralmente, gerir Google Cloud chaves de contas de serviço. Em alternativa, as cargas de trabalho são autenticadas através de tokens de curta duração gerados pelos clusters, com cada cluster adicionado como um fornecedor de identidade a um Workload Identity Pool especial. As cargas de trabalho executadas num espaço de nomes específico podem partilhar a mesma identidade de gestão de identidade e de acesso entre clusters.

Embora a federação de identidade da carga de trabalho normal para o GKE use um conjunto de identidades ao nível do projeto, a federação de identidade da carga de trabalho ao nível da frota usa um conjunto de identidades da carga de trabalho para toda a frota, mesmo que os clusters estejam em projetos diferentes, com igualdade implícita para identidades em toda a frota, bem como igualdade de espaço de nomes e serviços. Isto simplifica a configuração da autenticação para as suas aplicações em vários projetos, mas pode ter considerações de controlo de acesso além das da Workload Identity Federation normal para o GKE se optar por usá-la em frotas com vários projetos, especialmente se o projeto anfitrião da frota tiver uma combinação de clusters de frotas e não de frotas.

Para saber mais sobre a federação de identidades da carga de trabalho da frota e como a usar para aceder a Google Cloud serviços, consulte o artigo Use o Workload Identity da frota. Para ver orientações sobre como minimizar o risco com a federação de identidades da carga de trabalho da frota, juntamente com alguns exemplos, consulte o artigo Práticas recomendadas para usar o Workload Identity da frota.

Predefinições ao nível da frota

O GKE oferece a capacidade de definir predefinições ao nível da frota para determinadas funcionalidades empresariais, incluindo o Cloud Service Mesh, o Config Sync e o Policy Controller. Isto ajuda a configurar clusters para usar estas funcionalidades sem ter de configurar cada cluster individualmente. Por exemplo, um administrador pode ativar o Policy Controller para a sua frota e definir políticas predefinidas ao nível da frota. Isto instala o agente necessário em novos clusters de membros da frota e aplica-lhes as políticas predefinidas.

No entanto, estas predefinições só se aplicam automaticamente a novos clusters que adicionar à frota no momento da criação do cluster. Os clusters existentes e as respetivas cargas de trabalho não são afetados, mesmo que já os tenha adicionado à frota ou se adicionar os clusters depois de configurar as predefinições das funcionalidades. Isto significa que pode configurar em segurança predefinições ao nível da frota sem correr o risco de ativar ou configurar funcionalidades em clusters onde não está pronto para o fazer. Pode sempre optar por aplicar as predefinições aos clusters existentes mais tarde.

Requisitos de funcionalidades

Existem algumas limitações a ter em conta ao implementar frotas com base nas funcionalidades de frotas que a sua organização quer usar. Por exemplo, algumas funcionalidades não suportam o trabalho com clusters que não estão no projeto anfitrião da frota, enquanto outras não são suportadas em clusters fora Google Cloud.

A tabela seguinte mostra os requisitos e as limitações atuais de cada componente, com algumas diretrizes específicas nas secções seguintes.

Funcionalidade
Tipos de clusters
Requisitos do projeto
Requisitos da VPC
Config Sync Todos os clusters suportados do GKE Nenhum Nenhum
Controlador de políticas Todos os clusters suportados do GKE Nenhum Nenhum
Cloud Service Mesh Veja as limitações Todos os clusters usados com a Cloud Service Mesh que estejam no mesmo projeto têm de estar registados na mesma frota. Para mais informações, consulte os requisitos da frota da Cloud Service Mesh. Os clusters do GKE têm de estar na mesma rede de VPC.
Serviços em vários clusters (MCS) GKE no Google Cloud Nenhum Consulte MCS na VPC partilhada
Entrada em vários clusters e gateway em vários clusters GKE no Google Cloud Os recursos de entrada/gateway, os clusters do GKE e a frota têm de estar no mesmo projeto. Os recursos de entrada/gateway e os clusters do GKE têm de estar na mesma rede de VPC.
Workload Identity Pools Otimizado para o GKE no Google Cloud e no Google Distributed Cloud no VMware. Outros clusters do Kubernetes são suportados, mas requerem trabalho de configuração adicional. Nenhum Nenhum
Autorização binária GKE on Google Cloud, Google Distributed Cloud on VMware, Google Distributed Cloud on bare metal Nenhum Nenhum
Advanced Vulnerability Insights GKE no Google Cloud Nenhum Nenhum
Postura de segurança GKE no Google Cloud Nenhum Nenhum
Postura de conformidade GKE no Google Cloud Nenhum Nenhum
Métricas de utilização de recursos da frota GKE no Google Cloud Nenhum Nenhum
Registo de frotas Tudo Nenhum Nenhum
Ligue o gateway Tudo Nenhum Nenhum
Gestão da equipa de frotas Tudo Nenhum Nenhum
Políticas de rede FQDN de pods GKE no Google Cloud Nenhum Nenhum
Encriptação transparente entre nós GKE no Google Cloud Nenhum Nenhum
Config Controller Não aplicável Nenhum Nenhum
Sequenciação da implementação GKE no Google Cloud Nenhum Nenhum

Considere os requisitos da nuvem privada virtual

Se planeia usar uma funcionalidade, como a Cloud Service Mesh, que requer que os clusters estejam numa única rede de nuvem virtual privada (VPC), conforme mostrado na tabela anterior, deve criar uma frota para cada VPC. Se não planeia usar essas funcionalidades, pode colocar várias VPCs numa frota.

Por exemplo, um padrão comum é uma organização ter vários projetos, cada um com a sua própria VPC predefinida. Estes podem ter ligações de peering existentes entre si. Se não estiver a usar uma funcionalidade com requisitos de VPC única, pode colocar tudo numa única frota. Outro padrão comum segue uma topologia de "hub and spoke", que usa várias VPCs. Se não estiver a usar uma funcionalidade com requisitos de VPC única, pode colocar clusters de todas essas VPCs numa única frota. Tenha em atenção que, em alguns casos, seguir estas diretrizes pode resultar em frotas com apenas um cluster. Nesse caso, pode ter de renunciar à utilização de funcionalidades com restrições de VPC e criar frotas de vários projetos ou reconsiderar a sua arquitetura e mover cargas de trabalho, conforme adequado.

Requisitos para a rede de vários clusters

Se quiser usar o Multi Cluster Ingress ou gateways de vários clusters para a gestão de tráfego, tenha em atenção que, em ambos os casos, o controlador de gateway não pode abranger projetos. Isto significa que todos os clusters que quer usar com estas funcionalidades também têm de estar no mesmo projeto e na mesma frota. Se precisar de criar frotas que incluam clusters de vários projetos, pode usar gateways de cluster único e direcionar o tráfego para o gateway certo de outra forma (por exemplo, através de DNS). Os clusters que usam estas funcionalidades também têm de estar na mesma rede VPC.

O que se segue?