Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A rede entre clusters para o Azure Kubernetes Fleet Manager (Fleet) é uma oferta gerida baseada em Cilium Cluster Mesh que lhe permite estabelecer comunicação direta entre pods em vários clusters do Azure Kubernetes Service (AKS). Ao criar uma rede entre clusters, pode ativar uma conectividade este-oeste contínua sem recorrer a gateways, ao mesmo tempo que obtém observabilidade entre clusters e uma aplicação consistente das políticas de segurança.
Arquitetura e capacidades
Numa configuração de rede entre clusters, uma rede virtual plana permite que pods em diferentes clusters encaminhem tráfego diretamente através das fronteiras entre clusters. A cada cluster são normalmente atribuídas duas sub-redes: uma para os nós e outra para os pods. Esta arquitetura consistente garante que a rede pod permanece plana em toda a rede cross-cluster, sem o uso de sobreposições ou túneis.
Componentes e capacidades chave para este cenário incluem:
- Azure CNI com plano de dados Cilium: Ambos os clusters AKS devem usar Azure CNI com o Azure CNI alimentado pelo plano de dados Cilium.
- Serviços Avançados de Rede de Contentores (ACNS): O ACNS deve estar ativado nos clusters para suportar este cenário.
-
Azure Kubernetes Fleet Manager: A Fleet gere o ciclo de vida e a configuração da rede cross-cluster através de recursos como o perfil
ClusterMesh. - Desempenho nativo: O encaminhamento pod IP ocorre em clusters com desempenho nativo através de encaminhamento direto, evitando a necessidade de gateways ou proxies.
- Aplicação unificada de políticas de rede: Estende a aplicação de políticas de rede das Camadas 3 a 7 do Cilium a todos os clusters da rede entre clusters, garantindo uma abordagem de segurança consistente.
- Observabilidade multi-cluster: Proporciona visibilidade de ponta a ponta sobre os fluxos de tráfego entre clusters. Esta visibilidade ajuda-o a monitorizar a saúde da aplicação, resolver problemas de conectividade e analisar padrões de tráfego ao longo da rede cross-cluster.
Casos de utilização
A interligação entre clusters permite vários cenários principais de vários clusters. As secções seguintes descrevem os casos de utilização mais comuns da ligação em rede entre clusters com o Fleet.
Caso de uso: Descoberta transparente de serviços e balanceamento de carga
Quando utiliza serviços Kubernetes padrão e os marca como globais, a Cilium descobre automaticamente os endpoints para esses serviços em todos os clusters da rede cross-cluster. Qualquer tráfego destinado a um serviço ClusterIP global é automaticamente balanceado em todos os clusters contribuintes, simplificando a comunicação entre clusters.
As aplicações podem descobrir e interagir com serviços independentemente do cluster em que se encontrem, sem necessidade de alterações ao nível da aplicação ou registos de serviços externos.
Caso de utilização: Alta disponibilidade e tolerância a falhas
A alta disponibilidade é o caso de uso mais comum para redes entre clusters. Este caso de uso inclui operar clusters Kubernetes em múltiplas regiões ou zonas de disponibilidade e executar réplicas dos mesmos serviços em cada cluster. Em caso de falha, os pedidos podem ser redirecionados para outros clusters na rede entre clusters.
O cenário de falha abordado neste caso de uso não é, principalmente, a completa indisponibilidade de toda uma região ou domínio de falha. Um cenário mais provável é a indisponibilidade temporária de recursos ou má configuração num cluster, levando à incapacidade de executar ou escalar determinados serviços nesse cluster. Com a rede cross-cluster, o tráfego destinado ao serviço afetado é automaticamente encaminhado para endpoints saudáveis noutros clusters, mantendo a sua aplicação disponível.
Caso de utilização: Serviços partilhados
Embora a tendência inicial das plataformas baseadas em Kubernetes fosse construir grandes clusters multiinquilino, está a tornar-se cada vez mais comum construir clusters individuais por tenant ou construir clusters para diferentes categorias de serviços, como diferentes níveis de sensibilidade de segurança.
No entanto, alguns serviços, como gestão de segredos, registo, monitorização ou DNS, são frequentemente partilhados entre todos os clusters. Centralizar estes serviços num cluster partilhado de "serviços" evita a sobrecarga operacional de os manter em cada cluster de inquilino.
A principal motivação deste modelo é o isolamento entre clusters de inquilinos. Para manter esse objetivo, os clusters de tenant estão ligados exclusivamente ao cluster de serviços partilhados e não aos outros clusters de tenant.
Caso de utilização: Separação com estado e separação sem estado
Pode isolar a complexidade operacional de serviços com estado, como as bases de dados e o armazenamento, em clusters dedicados. Esta separação mantém clusters de aplicações sem estado ágeis e fáceis de migrar. Também melhora a segurança, simplifica a gestão do ciclo de vida do cluster e permite dimensionar cargas de trabalho sem estado independentemente das com estado.
Caso de uso: Segurança multi-cluster e aplicação de políticas
A ligação em rede entre clusters estende a aplicação das políticas de rede de Camada 3 a 7 do Cilium a todos os clusters da rede entre clusters. Esta aplicação unificada assegura uma postura de segurança consistente e simplifica a gestão de políticas ao evitar a necessidade de replicar manualmente as políticas em todos os ambientes. As políticas aplicadas a um cluster são aplicadas em todos os outros clusters, proporcionando segurança unificada com reconhecimento de identidade em toda a frota.
Caso de uso: Observabilidade multicluster
A rede entre clusters proporciona visibilidade de ponta a ponta do tráfego que flui entre serviços entre clusters. Ao agregar dados de fluxo de todos os clusters na rede cross-cluster, pode visualizar o tráfego este-oeste, monitorizar a saúde das aplicações entre regiões, resolver problemas de conectividade entre clusters e analisar padrões de tráfego para planeamento de capacidade.
Com registos de rede de contentores, os operadores obtêm uma visão unificada da comunicação pod-a-pod, independentemente do cluster onde reside a origem ou destino, sem aplicações de instrumentação.
Serviços globais
Para permitir o fluxo de tráfego entre clusters, deve configurar os seus serviços Kubernetes como serviços globais. Numa rede cross-cluster, um serviço global é um serviço Kubernetes padrão que é partilhado entre múltiplos clusters. Quando marca um serviço como global, a Cilium descobre automaticamente os endpoints desse serviço em todos os clusters dentro da rede cross-cluster e realiza o balanceamento de carga entre eles.
Uma vez que um serviço é marcado como global, quaisquer políticas aplicadas a um cluster são respeitadas entre os outros clusters da rede cross-cluster, proporcionando uma postura de segurança consistente. Esta configuração permite:
- Descoberta Transparente de Serviços: As aplicações podem descobrir e interagir com serviços independentemente do cluster em que se encontrem.
- Alta Disponibilidade: Se um serviço num cluster se tornar indisponível, o tráfego é automaticamente transferido para uma instância saudável noutro cluster.
O Cilium gere esta descoberta monitorizando os serviços com a anotação io.cilium/global-service: "true". Para estes serviços, todos os endpoints com o mesmo nome e namespace entre clusters são fundidos num único serviço global. Qualquer tráfego destinado a esse serviço ClusterIP é então balanceado em carga entre todos os clusters contribuintes.
Limitações
- Um cluster membro pode participar apenas numa rede cross-cluster de cada vez.
- Uma única rede entre clusters suporta até 255 clusters integrantes.
- As configurações multicluster autogeridas do Cilium não são suportadas em conjunto com a rede entre clusters gerida pela Fleet.
- Os comandos Cilium CLI que modificam a malha, como
cilium clustermesh connectoucilium upgrade, não são suportados porque a Frota gere estas operações. - A rede entre clusters está restrita a clusters dentro do mesmo domínio de roteamento plano acessível. Não suporta conectividade em malha entre redes virtuais não emparelhadas.
Passos seguintes
- Explore os conceitos do Azure Kubernetes Fleet Manager.
- Saiba mais sobre Serviços Avançados de Redes de Contentores.