Nesta página, fornecemos uma visão geral de como os serviços de vários clusters (MCS, na sigla em inglês) do GKE funcionam. Para saber como usar o MCS, consulte Como configurar serviços de vários clusters.
Visão geral dos MCS
O conhecido objeto Service do Kubernetes permite que você descubra e acesse um serviço nas extremidades de um único cluster do Kubernetes. No entanto, às vezes convém dividir os aplicativos em vários clusters para atender aos requisitos de gerenciamento de estado, privacidade, escalonabilidade, disponibilidade e soberania de dados. Com o MCS, é possível criar aplicativos do Kubernetes que abranjam vários clusters.
O MCS é um mecanismo de descoberta e invocação de serviço entre clusters para o Google Kubernetes Engine (GKE) que aproveita o objeto Service atual. Os serviços ativados com esse recurso são detectáveis e acessíveis em clusters com um IP virtual, correspondendo ao comportamento de um serviço ClusterIP acessível em um cluster. Assim como os serviços atuais, o MCS é compatível com APIs abertas e voltadas para a comunidade, garantindo que cargas de trabalho permaneçam portáteis.
O MCS é um recurso do GKE. O MCS configura zonas e registros do Cloud DNS para cada serviço exportado nos clusters de frota. Uma frota permite agrupar e normalizar logicamente os clusters do GKE, facilitando a administração da infraestrutura e permitindo o uso de recursos de vários clusters, como o MCS. Saiba mais sobre os benefícios dos frotas e como criá-los na documentação de gerenciamento de frota.
Os serviços exportados, independentemente do tipo, sempre têm um registro do Cloud DNS, e os serviços sem tipo exportados têm registros para cada pod de back-end com um nome do host, incluindo pods em StatefulSets. O uso do Cloud DNS gera mais cobranças. A cobrança é feita de acordo com os preços do Cloud DNS.
Para exportar um serviço com o MCS, crie um recurso personalizado ServiceExport usando o mesmo namespace e o mesmo nome que o serviço. O MCS importa automaticamente o serviço para cada cluster na frota. Quando o MCS importa um serviço, ele cria:
- Um recurso personalizado ServiceImport que usa o mesmo namespace e o mesmo nome que o serviço.
- Um objeto Endpoints que usa o mesmo namespace que o serviço e um nome aleatório.
Benefícios do uso do MCS
O uso do MCS oferece os seguintes benefícios:
- Alta disponibilidade: a execução do mesmo serviço em clusters em várias regiões proporciona melhor tolerância a falhas. Se um serviço em um cluster não estiver disponível, a solicitação poderá falhar e ser veiculada de outros clusters. Com o MCS, é possível gerenciar a comunicação nos serviços entre clusters para melhorar a disponibilidade dos aplicativos em contêineres.
- Serviços com estado e sem estado: os serviços com estado e sem estado têm diferentes dependências operacionais e complexidades, assim como apresentam diferentes vantagens operacionais. Normalmente, a ausência do gerenciamento de estado facilita o escalonamento, o upgrade e a migração de uma carga de trabalho com maior disponibilidade. O MCS permite separar clusters para cargas de trabalho com estado e sem estado e torná-los independentes, isolados e mais fáceis de gerenciar.
- Serviços compartilhados: é comum criar clusters separados do Kubernetes para ter maior disponibilidade, melhor gerenciamento de serviços com estado e sem estado e conformidade mais fácil com os requisitos de soberania de dados. No entanto, muitos serviços, como o monitoramento com o Prometheus ou o uso de gerenciamento de secrets com o Vault, geralmente são compartilhados entre todos os clusters. Em vez de cada cluster exigir uma réplica de serviço local própria, o MCS facilita a configuração dos serviços compartilhados comuns em um cluster separado para ser usado por todos os clusters funcionais.
- Migração: a modernização de um aplicativo existente em uma arquitetura baseada em microsserviço conteinerizado geralmente requer que você implante serviços em vários clusters do Kubernetes. O MCS fornece um mecanismo para ajudar a estabelecer a comunicação entre esses serviços, facilitando a migração de aplicativos. Isso é especialmente útil, já que é possível implantar o mesmo serviço em dois clusters e o tráfego tem permissão para alternar de um cluster ou aplicativo para outro.
A seguir
- Saiba mais sobre a Entrada de vários clusters, que fornece serviços para rotas de tráfego norte-sul e leste-oeste.
- Saiba mais sobre o Cloud Service Mesh, que oferece um controle mais preciso sobre o roteamento e a modelagem de tráfego.