Nesta página, você encontra 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. Observe as seguintes limitações com a prévia do cluster avançado:
- É possível ativar o cluster avançado no momento da criação apenas para novos clusters 1.31.
- Depois que o cluster avançado for ativado, não será possível fazer upgrade dele para a versão 1.32. Ative o cluster avançado apenas em um ambiente de teste.
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 referenciados no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE.
Visão geral
Um domínio de topologia é um grupo de nós de cluster 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 diferentes servidores vCenter
- 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 ao criar um cluster, você define um rótulo de topologia. Depois da criação do cluster, o rótulo de topologia é preenchido com os 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 restrições de propagaçã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
PodTemplate
na sua implantação, StatefulSet ou ReplicaSet, conforme aplicável com a chave do 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 no domínio de topologia para garantir alta disponibilidade e evitar concentração excessiva em uma única área em caso de falha. Para mais informações sobre como configurartopologySpreadConstraints
na especificação de pod, consulte Restrições de propagação da topologia de pod na documentação do Kubernetes.
Exemplo 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 alto, 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 entre esses três grupos de nós.
Diretrizes para configuração de domínios de topologia
Para garantir o uso eficaz de todos os recursos dos clusters pelo programador do Kubernetes, recomendamos as seguintes diretrizes:
- Os domínios de topologia precisam ser equilibrados. 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 faça a propagação 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 carga 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 tentará usar a capacidade total do cluster, mas poderá levar mais tempo para programar pods, e nem todos os pods terão o comportamento de distribuição esperado.
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