Esta página oferece uma vista geral dos domínios de topologia e das diretrizes para a respetiva configuração.
A configuração de um domínio de topologia requer que ative o cluster avançado. Tenha em atenção as seguintes limitações da pré-visualização avançada de clusters:
- Só pode ativar o cluster avançado no momento da criação do cluster para novos clusters 1.31.
- Depois de ativar o cluster avançado, não pode atualizar o cluster para a versão 1.32. Ative o cluster avançado apenas num ambiente de teste.
Esta página destina-se a administradores e arquitetos que definem soluções de TI e a arquitetura do sistema de acordo com a estratégia da empresa, e criam e gerem políticas relacionadas com autorizações dos utilizadores. Para saber mais sobre as funções comuns e as tarefas de exemplo a que fazemos referência no Google Cloud conteúdo, consulte Funções e tarefas comuns de utilizadores do GKE.
Vista 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 um centro de dados. Um domínio de topologia deve corresponder a algum hardware ou software subjacente que tenha alguma possibilidade de falha correlacionada. Por exemplo:
- Falha de software, como diferentes servidores vCenter
- Falha de hardware, como diferentes racks, diferentes fontes de alimentação e diferentes edifícios
No Google Distributed Cloud (apenas software) para VMware, como parte da configuração de um domínio de topologia quando cria um cluster, define uma etiqueta de topologia. Após a criação do cluster, a etiqueta de topologia é preenchida com as etiquetas dos nós no domínio de topologia.
Para usar um domínio de topologia, tem as seguintes opções:
Versão 1.32 e superior: configure restrições de dispersão de topologia predefinidas ao nível do cluster. Para obter mais detalhes, consulte
schedulerConfiguration
.Use a restrição predefinida ao nível do cluster do Kubernetes,
"topology.kubernetes.io/zone"
, como chave na etiqueta de topologia. Para mais informações, consulte Restrições predefinidas incorporadas.Configure o
PodTemplate
na sua implementação, StatefulSet ou ReplicaSet, conforme aplicável, com a chave da etiqueta de topologia. Na especificação do pod, usa a chave na etiqueta de topologia como o valor do campotopologySpreadConstraints.topologyKey
. Esta chave permite que o programador do Kubernetes distribua os pods pelo domínio da topologia para garantir a elevada disponibilidade e evitar a concentração excessiva numa única área em caso de falha. Para mais informações sobre a configuração detopologySpreadConstraints
na especificação do pod, consulte Restrições de dispersão da topologia do pod na documentação do Kubernetes.
Exemplos de etiquetas de domínio de topologia
Suponhamos que cria os seguintes três domínios de topologia quando cria um cluster de utilizadores:
...
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 de criar o cluster, atualize a especificação do pod, por exemplo:
...
topologySpreadConstraints:
topologyKey: "topology.examplepetstore.com/zone"
...
Em termos gerais, o programador do Kubernetes usa
topology.examplepetstore.com/zone
para separar os nós do cluster em
diferentes grupos: zone-1
, zone-2
e zone-3
. Em seguida, o programador distribui os pods por estes três grupos de nós.
Diretrizes para a configuração de domínios de topologia
Para garantir a utilização eficaz de todos os recursos dos clusters pelo programador do Kubernetes, recomendamos as seguintes diretrizes:
- Os domínios de topologia têm de estar equilibrados. Deve fornecer quantidades quase iguais de capacidade de CPU e RAM em cada domínio de topologia.
- Indique, pelo menos, dois e, de preferência, três domínios de topologia.
- Não faça a distribuição por mais do que uma chave de topologia.
- Os nós devem ter um tamanho semelhante em cada domínio de topologia.
- Se usar restrições e tolerâncias para a separação de cargas de trabalho num cluster, cada grupo de nós deve cumprir os requisitos anteriores.
Se estas diretrizes não forem cumpridas, o programador continua a tentar usar a capacidade total do cluster, mas pode demorar mais tempo a programar pods e nem todos os pods vão ter o comportamento de distribuição esperado.
O que se segue?
- Crie um cluster de administrador para utilização em domínios de topologia
- Crie um cluster de utilizadores para utilização em domínios de topologia
- Ficheiro de configuração da infraestrutura do vSphere