Sobre pools de nós
Um pool de nós é um grupo de nós em um cluster, que têm
a mesma configuração.
Normalmente, você define pools de nós separados quando tem pods com requisitos de recursos diferentes.
Por exemplo, os pods apigee-cassandra
exigem armazenamento permanente, e
os outros pods híbridos da Apigee não.
Neste tópico, você aprenderá a configurar pools de nós dedicados para uma instalação híbrida.
Como usar o nodeSelectors padrão
A prática recomendada é configurar dois pools de nós dedicados: um para os pods
do Cassandra e outro para todos os outros pods de ambientes de execução. Usando as configurações
nodeSelector padrão, o
instalador atribuirá os pods do Cassandra a um pool de nós com estado chamado apigee-data
e todos
os outros pods para um pool de nós sem estado chamado apigee-runtime
. Tudo o que você precisa fazer é
criar pools de nós com esses nomes, e a Apigee híbrida gerenciará os detalhes da programação do pod
para você:
Nome padrão do pool de nós | Descrição |
---|---|
apigee-data |
Um pool de nós com estado. |
apigee-runtime |
Um pool de nós sem estado. |
Veja a seguir a configuração padrão de nodeSelector
. A propriedade
apigeeData
especifica um pool de nós para os pods do Cassandra. O apigeeRuntime
especifica o pool de
nós de todos os outros pods. É possível modificar essas configurações
padrão no seu arquivo de modificações, conforme explicado mais adiante neste tópico:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Para garantir que seus pods sejam programados nos nós corretos, crie dois pools de nós com os nomes apigee-data
e apigee-runtime
.
A propriedade requiredForScheduling
A seção de configuração nodeSelector
tem uma propriedade chamada
requiredForScheduling
:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "apigee-runtime" apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data"
Se definido como false
, os pods subjacentes serão programados independentemente dos pools de nós
serem definidos com os nomes necessários. Isso significa que, se você esquecer de criar pools de nós
ou acidentalmente nomear um pool de nós diferente de apigee-runtime
ou
apigee-data
, a instalação do ambiente de execução híbrido será bem-sucedida. O Kubernetes
decidirá onde executar os pods.
Se você definir requiredForScheduling
como true
(o padrão), a instalação falhará,
a menos que haja pools de nós que correspondam às chaves e aos valores nodeSelector
configurados.
Como usar nomes de pool de nós personalizados
Se você não quiser usar pools de nós com os nomes padrão, crie pools de nós com
nomes personalizados e especifique esses nomes
na estrofe nodeSelector
. Por exemplo, a configuração a seguir atribui os
pods do Cassandra ao pool chamado my-cassandra-pool
e todos os outros pods ao pool
chamado my-runtime-pool
:
nodeSelector: requiredForScheduling: false apigeeRuntime: key: "cloud.google.com/gke-nodepool" value: "my-runtime-pool" apigeeData: key: "cloud.google.com/gke-nodepool" value: "my-cassandra-pool"
Como modificar o pool de nós para componentes específicos no GKE
Também é possível substituir as configurações do pool de nós
para cada componente. Por exemplo, a configuração a seguir atribui
o pool de nós com o valor
apigee-custom
ao componente runtime
:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-custom
É possível especificar um pool de nós personalizado em qualquer um destes componentes:
istio
mart
synchronizer
runtime
cassandra
udca
logger
Configuração do pool de nós do GKE e do Google Distributed Cloud
Nas plataformas GKE e Google Distributed Cloud (GDC), os pools de nós precisam ter um nome exclusivo que você fornece ao criar os pools, e o GKE/GDC rotula automaticamente cada nó com os seguintes elementos:
cloud.google.com/gke-nodepool=THE_NODE_POOL_NAME
Desde que você crie pools de nós chamados apigee-data
e apigee-runtime
,
nenhuma configuração adicional será necessária. Se você quiser usar nomes de nós personalizados, consulte
Como usar nomes de pools de nós personalizados.
Configuração do pool de nós em outras plataformas do Kubernetes.
Consulte a documentação da sua plataforma Kubernetes para informações sobre como rotular e gerenciar pools de nós.
Embora os pools de nós rotulem automaticamente os nós de trabalho por padrão, é possível rotular os nós de trabalho manualmente seguindo estas etapas:
- Execute o seguinte comando para receber uma lista dos nós de trabalho no cluster:
kubectl -n APIGEE_NAMESPACE get nodes
Se você estiver usando rótulos personalizados de pool de nós, verifique se cada par de chave-valor é exclusivo. Exemplo:
nodeSelector: requiredForScheduling: true apigeeRuntime: key: "pool1-key" value: "pool1-label" apigeeData: key: "pool2-key" value: "pool2-label"
Como substituir o pool de nós para componentes específicos
Também é possível substituir as configurações do pool de nós para cada componente. Por exemplo, a configuração a seguir atribui o pool de nós com o valor
apigee-custom
ao componenteruntime
:runtime: nodeSelector: key: apigee.com/apigee-nodepool value: apigee-custom
É possível especificar um pool de nós personalizado em qualquer um destes componentes:
apigeeingressgateway
cassandra
logger
mart
metrics
runtime
synchronizer
udca