Nesta página, apresentamos uma visão geral dos domínios de topologia e diretrizes para configurá-los.
Para configurar um domínio de topologia, é necessário ativar o cluster avançado.
Esta página é destinada a administradores e arquitetos que definem soluções de TI e arquitetura de sistemas de acordo com estratégias corporativas e criam e gerenciam políticas relacionadas a permissões dos usuários. Para saber mais sobre papéis comuns e tarefas de exemplo mencionados no conteúdo do Google Cloud , consulte Tarefas e papéis de usuário comuns do GKE.
Visão geral
Um domínio de topologia é um grupo de nós de cluster que são considerados parte do mesmo agrupamento lógico ou físico, como um campus ou data center. Um domínio de topologia precisa corresponder a algum hardware ou software subjacente que tenha alguma possibilidade de falha correlacionada. Exemplo:
- Falha de software, como servidores vCenter diferentes
- Falha de hardware, como racks, fontes de energia e edifícios diferentes
No Google Distributed Cloud (somente software) para VMware, ao configurar um domínio de topologia durante a criação de um cluster, você define um rótulo de topologia. Após a criação do cluster, o rótulo de topologia é preenchido nos rótulos dos nós no domínio de topologia.
Para usar um domínio de topologia, você tem as seguintes opções:
Versão 1.32 e mais recentes: configure as restrições de distribuição de topologia padrão no nível do cluster. Para mais detalhes, consulte
schedulerConfiguration.Use a restrição padrão no nível do cluster do Kubernetes,
"topology.kubernetes.io/zone", como a chave no rótulo de topologia. Para mais informações, consulte Restrições padrão integradas.Configure o
PodTemplatena implantação, no StatefulSet ou no ReplicaSet, conforme aplicável com a chave de rótulo de topologia. Na especificação do pod, use a chave no rótulo de topologia como o valor do campotopologySpreadConstraints.topologyKey. Essa chave permite que o programador do Kubernetes distribua pods pelo domínio de topologia para garantir alta disponibilidade e evitar a concentração excessiva em uma única área em caso de falha. Para mais informações sobre como configurartopologySpreadConstraintsna especificação do pod, consulte Restrições de propagação da topologia de pod na documentação do Kubernetes.
Exemplos de rótulos de domínio de topologia
Suponha que você crie os três domínios de topologia a seguir ao criar um cluster de usuário:
...
topologyDomains:
- name: "topology-domain-1"
topologyLabels:
"topology.examplepetstore.com/zone": "zone-1"
...
...
topologyDomains:
- name: "topology-domain-2"
topologyLabels:
"topology.examplepetstore.com/zone": "zone-2"
...
...
topologyDomains:
- name: "topology-domain-3"
topologyLabels:
"topology.examplepetstore.com/zone": "zone-3"
...
Depois que o cluster for criado, atualize a especificação do pod, por exemplo:
...
topologySpreadConstraints:
topologyKey: "topology.examplepetstore.com/zone"
...
Em um nível geral, o programador do Kubernetes usa
topology.examplepetstore.com/zone para separar os nós do cluster em
grupos diferentes: zone-1, zone-2 e zone-3. Em seguida, o programador distribui
os pods entre esses três grupos de nós.
Diretrizes para configurar domínios de topologia
Para garantir o uso eficaz de todos os recursos de clusters pelo programador do Kubernetes, recomendamos as seguintes diretrizes:
- Os domínios de topologia precisam ser balanceados. Forneça quantidades quase iguais de capacidade de CPU e RAM em cada domínio de topologia.
- Forneça pelo menos dois e, de preferência, três domínios de topologia.
- Não distribua por mais de uma chave de topologia.
- Os nós precisam ter um tamanho semelhante em cada domínio de topologia.
- Se você usar taints e tolerâncias para separação de cargas de trabalho em um cluster, cada grupo de nós precisará atender aos requisitos anteriores.
Se essas diretrizes não forem atendidas, o programador ainda vai tentar usar a capacidade total do cluster, mas pode levar mais tempo para programar os pods, e nem todos os pods vão ter o comportamento de distribuição esperado.
Limitações
Não é possível usar gkectl get-config para
gerar arquivos de configuração
de clusters que usam domínios de topologia. Essa limitação se aplica ao cluster de administrador e a todos os clusters de usuário gerenciados por ele. Mantenha os
arquivos de configuração usados para criar e atualizar esses clusters, incluindo
o
arquivo de configuração da infraestrutura do vSphere
e os arquivos de bloco de IP.
Use esses arquivos como a fonte de verdade para a configuração do cluster.
A seguir
- Criar um cluster de administrador para uso em domínios de topologia
- Criar um cluster de usuário para uso em domínios de topologia
- Arquivo de configuração da infraestrutura do vSphere