Esta página oferece uma vista geral de como funcionam os serviços (MCS) de vários clusters do GKE. Para saber como usar o MCS, consulte o artigo Configurar serviços multicluster.
Vista geral do MCS
O objeto Service familiar do Kubernetes permite-lhe descobrir e aceder a um serviço nos limites de um único cluster do Kubernetes. No entanto, por vezes, pode querer dividir as aplicações em vários clusters para resolver os requisitos de gestão de estado, privacidade, escalabilidade, disponibilidade e soberania dos dados. Com o MCS, pode criar aplicações Kubernetes que abrangem vários clusters.
O MCS é um mecanismo de invocação e descoberta de serviços entre clusters para o Google Kubernetes Engine (GKE) que tira partido do objeto de serviço existente. Os serviços ativados com esta funcionalidade são detetáveis e acessíveis em todos os clusters com um IP virtual, correspondendo ao comportamento de um serviço ClusterIP acessível num cluster. Tal como os seus serviços existentes, o MCS é compatível com APIs abertas e orientadas pela comunidade, o que garante a portabilidade das suas cargas de trabalho.
O MCS é uma funcionalidade do GKE. O MCS configura zonas e registos do Cloud DNS para cada serviço exportado nos seus clusters da frota. Uma frota permite-lhe agrupar e normalizar logicamente os seus clusters do GKE, o que facilita a administração da infraestrutura e permite a utilização de funcionalidades de vários clusters, como o MCS. Pode saber mais acerca das vantagens das frotas e como criá-las na documentação de gestão de frotas.
Os serviços exportados, independentemente do tipo, têm sempre um registo do Cloud DNS, e os serviços do tipo Headless exportados têm registos para cada pod de back-end com um nome de anfitrião, incluindo pods em StatefulSets. A utilização do Cloud DNS incorre em custos adicionais. A faturação é feita de acordo com os preços do Cloud DNS.
Para exportar um serviço com o MCS, crie um recurso personalizado ServiceExport com o mesmo espaço de nomes e nome que o serviço. O MCS importa automaticamente o serviço para cada cluster na frota. Quando o MCS importa um serviço, cria:
- Um recurso personalizado ServiceImport que usa o mesmo espaço de nomes e nome que o serviço.
- Um objeto Endpoints que usa o mesmo espaço de nomes que o serviço e um nome aleatório.
Vantagens da utilização do MCS
A utilização do MCS oferece-lhe as seguintes vantagens:
- Alta disponibilidade: executar o mesmo serviço em vários clusters em várias regiões oferece uma tolerância a falhas melhorada. Se um serviço num cluster estiver indisponível, o pedido pode falhar e ser publicado a partir de outros clusters. Com o MCS, é possível gerir a comunicação entre serviços em vários clusters para melhorar a disponibilidade das suas aplicações em contentores.
- Serviços com estado e sem estado: os serviços com estado e sem estado têm dependências e complexidades operacionais diferentes e apresentam compromissos operacionais diferentes. Normalmente, a ausência de gestão de estado facilita a escalabilidade, a atualização e a migração de uma carga de trabalho com maior disponibilidade. O MCS permite-lhe separar clusters para cargas de trabalho com estado e sem estado, e torná-los independentes, isolados e mais fáceis de gerir.
- Serviços partilhados: é comum criar clusters do Kubernetes separados para obter uma maior disponibilidade, uma melhor gestão dos serviços com e sem estado, e uma conformidade mais fácil com os requisitos de soberania dos dados. No entanto, muitos serviços, como a monitorização com o Prometheus ou a utilização da gestão de segredos com o Vault, são frequentemente partilhados entre todos os clusters. Em vez de cada cluster exigir a sua própria réplica de serviço local, o MCS facilita a configuração de serviços partilhados comuns num cluster separado que todos os clusters funcionais usam.
- Migração: a modernização de uma aplicação existente numa arquitetura baseada em microsserviços em contentores requer frequentemente a implementação de serviços em vários clusters do Kubernetes. O MCS oferece-lhe um mecanismo para ajudar a estabelecer a comunicação entre esses serviços, o que facilita a migração das suas aplicações. Isto é especialmente útil, uma vez que pode implementar o mesmo serviço em dois clusters diferentes e o tráfego pode mudar de um cluster ou aplicação para outro.
O que se segue?
- Saiba mais sobre o Multi Cluster Ingress, que fornece serviços para direções de tráfego norte-sul e leste-oeste.
- Saiba mais sobre a Cloud Service Mesh, que lhe oferece um controlo mais detalhado sobre o encaminhamento e a modelagem de tráfego.