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
No GKE, os pools de nós precisam ter um nome exclusivo que você fornece ao criar os pools, e o GKE 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.
Como rotular nós manualmente
Atualmente, a Apigee híbrida só é suportada no Anthos 1.1.1. Esta versão do Anthos não é compatível com o recurso do pool de nós. Portanto, rotule manualmente os nós de trabalho, como explicado abaixo. Siga as etapas abaixo quando o cluster híbrido estiver em execução:
- Execute o seguinte comando para receber uma lista dos nós de trabalho no cluster:
kubectl -n APIGEE_NAMESPACE get nodes
Exemplo de saída:
NAME STATUS ROLES AGE VERSION apigee-092d639a-4hqt Ready <none> 7d v1.14.6-gke.2 apigee-092d639a-ffd0 Ready <none> 7d v1.14.6-gke.2 apigee-109b55fc-5tjf Ready <none> 7d v1.14.6-gke.2 apigee-c2a9203a-8h27 Ready <none> 7d v1.14.6-gke.2 apigee-c70aedae-t366 Ready <none> 7d v1.14.6-gke.2 apigee-d349e89b-hv2b Ready <none> 7d v1.14.6-gke.2
- Rotule cada nó para diferenciar entre nós de ambiente de execução e de dados.
Use este comando para rotular os nós:
kubectl label node NODE_NAME KEY=VALUE
Exemplo:
$ kubectl label node apigee-092d639a-4hqt apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-092d639a-ffd0 apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-109b55fc-5tjf apigee.com/apigee-nodepool=apigee-runtime $ kubectl label node apigee-c2a9203a-8h27 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-c70aedae-t366 apigee.com/apigee-nodepool=apigee-data $ kubectl label node apigee-d349e89b-hv2b apigee.com/apigee-nodepool=apigee-data
Como modificar o pool de nós para componentes específicos no Anthos GKE
Também é possível modificar as configurações
do pool de nós para cada componente para uma instalação do Anthos GKE. Por exemplo, a configuração
a seguir atribui
o pool de nós com o valor
apigee-custom
ao componente runtime
:
runtime: nodeSelector: key: apigee.com/apigee-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