Quando um pool de nós esgota um tipo específico de instância em uma zona, as solicitações de dimensionamento falham silenciosamente. O add-on de dimensionamento instantâneo de nós monitora os níveis de estoque em todas as zonas configuradas e grava o status em tempo real em um ConfigMap no namespace kube-system. Consulte esse ConfigMap para identificar condições de baixo estoque antes que elas bloqueiem o scale-out.
Dois sinais estão disponíveis:
|
Sinal |
Nome |
Quando usar |
|
ConfigMap |
|
Monitoramento contínuo e ajustes proativos de tipos de instância — atualizado constantemente. |
|
Evento |
|
Reação a mudanças de estoque conforme ocorrem — disparado sempre que o status de fornecimento de um tipo de instância em uma zona muda. |
Pré-requisitos
Antes de começar, verifique se você tem:
Um pool de nós com Auto Scaling ativado e dimensionamento instantâneo de nós habilitado. Consulte Enable Node Instant Elasticity.
Versão 0.2.1 ou posterior do add-on de dimensionamento instantâneo de nós. Para atualizar, consulte Gerenciar add-ons.
Como funciona
Após ativar o dimensionamento instantâneo para um pool de nós, o add-on de dimensionamento instantâneo de nós executa as seguintes ações:
Recupera todos os tipos de instância configurados para o pool de nós.
Consulta o status de estoque em tempo real de cada tipo de instância em cada zona configurada.
Grava os resultados em um ConfigMap chamado
{node pool id}-inventory-statusno namespacekube-system.
Sempre que o status de fornecimento de qualquer tipo de instância em uma zona configurada mudar, o add-on também emitirá um evento InstanceInventoryStatusChanged no objeto ACKNodePool, no seguinte formato:
{InstanceType}/{Zone} inventory status changed from {OldInventoryStatus} to {NewInventoryStatus}
Verificar o status de integridade do estoque
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em nome do cluster.
No painel de navegação à esquerda, escolha Configurations > ConfigMaps.
Na lista suspensa Namespace, selecione kube-system. Localize o ConfigMap chamado
{node pool id}-inventory-status.Verifique o campo
data.statuspara obter a integridade do estoque em tempo real.
Entender os campos do ConfigMap
O campo data.status contém um objeto JSON. Os exemplos a seguir mostram um estado de estoque saudável e um degradado lado a lado para facilitar a identificação rápida de anomalias.
Exemplo: estoque saudável
{
"SupplySeqs": [
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-c",
"State": "WithStock"
},
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-c",
"State": "WithStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
}
],
"Conditions": [
{
"Type": "InventoryNoStock",
"Status": "False",
"Reason": "NoInterruption",
"Message": "all instanceTypes are with stock",
"LastTransitionTime": "2024-08-01T08:20:49Z"
}
],
"Phase": "Healthy",
"LastTransitionTime": "2024-08-01T08:20:49Z"
}
Exemplo: estoque degradado
{
"SupplySeqs": [
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-c",
"State": "WithoutStock"
},
{
"InstanceType": "ecs.g6.8xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-c",
"State": "ClosedWithoutStock"
},
{
"InstanceType": "ecs.g5ne.4xlarge",
"Zone": "cn-hongkong-b",
"State": "WithStock"
}
],
"Conditions": [
{
"Type": "InventoryNoStock",
"Status": "True",
"Reason": "PartialInterruption",
"Message": "some instanceTypes are out of stock",
"LastTransitionTime": "2024-08-01T09:15:00Z"
}
],
"Phase": "UnHealthy",
"LastTransitionTime": "2024-08-01T09:15:00Z"
}
Campos de SupplySeqs
|
Campo |
Descrição |
|
|
Nome do tipo de instância. |
|
|
Zona onde reside o tipo de instância. |
|
|
Status de estoque do tipo de instância na zona. Consulte a tabela abaixo para valores válidos. |
Valores de State
|
Valor |
Significado |
Ação |
|
|
Recursos com estoque suficiente. |
Nenhuma ação necessária. |
|
|
Recursos com estoque baixo e possível indisponibilidade para compra. |
Use tipos de instância com estado |
|
|
Recursos esgotados, mas com reposição prevista. |
Use tipos de instância com estado |
|
|
Recursos esgotados e sem previsão de reposição. |
Use tipos de instância com estado |
Campos de Conditions
|
Campo |
Descrição |
|
|
Este campo especifica apenas um tipo ( |
|
|
Indica se algum tipo de instância está sem estoque. |
|
|
Motivo da integridade geral do estoque. |
|
|
Descrição detalhada da condição atual. |
|
|
Timestamp da alteração mais recente no campo |
Campos de nível superior
|
Campo |
Descrição |
|
|
Integridade geral do estoque. Pode ser |
|
|
Timestamp da alteração mais recente no campo |
Próximos passos
Visualize detalhes de pods e nós, além do histórico de atividades de dimensionamento, no painel de dimensionamento de nós. Consulte Painel de dimensionamento de nós.