|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Configuração de Valores de Afinidade
As configurações de afinidade controlam o comportamento de agendamento de pods em SUSE® Observability. Os valores de afinidade ajudam a otimizar a utilização de recursos e garantir alta disponibilidade controlando onde os pods são agendados.
Opções de Configuração Disponíveis
Afinidade de Nó
Você pode usar afinidade de nó para agendar pods em nós ou grupos de instâncias específicos, como nós EC2 implantados na mesma zona de disponibilidade.
affinity:
# Node Affinity settings - applied to all components when configured
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
Anti-Afinidade de Pod
Você pode usar anti-afinidade de pod para agendar réplicas de serviços de dados em nós diferentes para garantir alta disponibilidade. Por padrão, o agendamento é obrigatório (anti-afinidade rígida) e topologyKey é kubernetes.io/hostname.
affinity:
podAntiAffinity:
# Enable required pod anti-affinity (true = hard, false = soft)
requiredDuringSchedulingIgnoredDuringExecution: true
# Topology key for pod anti-affinity
topologyKey: "kubernetes.io/hostname"
Comportamento
Anti-Afinidade de Pod
-
Quando configurado: Aplicado apenas quando
sizing.profiletermina com-ha(arquivos de controle de alta disponibilidade) -
Arquivos de controle de alta disponibilidade:
150-ha,250-ha,500-ha,4000-ha -
Componentes afetados: Todos os serviços de dados com estado, incluindo Clickhouse, Kafka, Zookeeper, VictoriaMetrics, StackGraph, Elasticsearch
Exemplos de configurações
Afinidade de Nó Básica (mesma Zona de Disponibilidade) + anti-afinidade de Pod rígida para Implantação de HA
Suponha que você defina sizing.profile para um dos arquivos de controle de alta disponibilidade. Os valores abaixo configuram a afinidade de nó para agendar componentes de SUSE® Observability na zona us-west-2a e forçar o agendamento das réplicas dos mesmos serviços de dados em hosts diferentes (affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution=true por padrão).
affinity:
# Schedule all pods to nodes in the same AZ
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
Uso
-
Método recomendado
-
Método legado (Descontinuado)
|
O método de configuração |
Adicione a configuração de afinidade diretamente ao seu arquivo values.yaml sob global.suseObservability.affinity:
global:
suseObservability:
# Your existing configuration
license: "YOUR-LICENSE-KEY"
baseUrl: "https://observability.example.com"
sizing:
profile: "150-ha"
adminPassword: "your-password"
# Affinity configuration
affinity:
# Node affinity - schedule all pods to nodes in the same AZ
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
# Pod anti-affinity for HA profiles (infrastructure components)
podAntiAffinity:
# true = hard anti-affinity, false = soft anti-affinity
requiredDuringSchedulingIgnoredDuringExecution: true
topologyKey: "kubernetes.io/hostname"
Em seguida, instale ou faça upgrade com um único comando:
helm upgrade --install \
--namespace suse-observability \
--create-namespace \
--values values.yaml \
suse-observability \
suse-observability/suse-observability
| Para arquivos de controle de alta disponibilidade, a anti-afinidade de pods é aplicada automaticamente a todos os serviços de dados com estado. Você só precisa configurá-la se quiser alterar o comportamento padrão. |
Para mais detalhes sobre a migração do método legado, consulte o guia de migração.
|
Este método está descontinuado. Para novas instalações, use o método recomendado acima. Para instalações existentes que usam este método, consulte o guia de migração para transitar para o novo formato de configuração. |
==== Etapa 1: Crie seu arquivo de Valores de Afinidade
Crie um arquivo de valores separado com a configuração de afinidade desejada. Por exemplo, salve o seguinte como suse-observability-values-values.yaml:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: true
==== Etapa 2: Gere valores de modelo de Afinidade
Execute o seguinte comando para gerar o modelo de valores de afinidade:
export VALUES_DIR=.
helm template \
--set license='<your license>' \
--set baseUrl='<suse-observability-base-url>' \
--set sizing.profile='<sizing.profile>' \
--values suse-observability-values-values.yaml \
suse-observability-values \
suse-observability/suse-observability-values --output-dir $VALUES_DIR
==== Etapa 3: Use os valores gerados na instalação do Helm
Inclua os valores de afinidade gerados na sua instalação do Helm:
helm upgrade \
--install \
--namespace suse-observability \
--values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/affinity_values.yaml \
suse-observability \
suse-observability/suse-observability