O componente ack-onepilot atualiza automaticamente os agentes do Application Real-Time Monitoring Service (ARMS) em clusters Kubernetes. Para validar uma nova versão antes de uma implantação ampla ou manter uma versão específica por estabilidade, fixe o agente em uma versão definida em vez de aceitar atualizações automáticas.
Escolha um método conforme a versão do ack-onepilot no cluster:
|
Tarefa |
Método |
Versão do ack-onepilot |
|
Fixar uma versão específica do agente (autoatendimento) |
V3.0.17 ou posterior |
|
|
Implantar uma versão primeiro em um subconjunto de instâncias |
V3.3.0 ou posterior |
|
|
Fixar uma versão sem autoatendimento |
Anterior à V3.0.17 |
Especifique uma versão do agente
Requisito: ack-onepilot V3.0.17 ou posterior. Para verificar a versão, acesse o Container Service Management Console, clique em Add-ons, localize o ack-onepilot e verifique sua versão. Se houver atualização disponível, clique em Upgrade.
Esta é a abordagem recomendada para controlar versões de agentes. Há três métodos disponíveis. Se você usar o Método 1 com o Método 2, ou o Método 1 com o Método 3, a versão especificada pelo Método 2 ou 3 terá prioridade sobre o Método 1.
Etapa 1: Identifique a versão alvo do agente
Faça logon no console do ARMS.
No painel de navegação à esquerda, escolha .
Anote o número da versão a ser usada. Selecione a versão estável mais recente, a menos que o ambiente exija uma versão específica.
Na aba Agent Online Status, registre a versão atual do agente de cada aplicação. Essa versão servirá como alvo de rollback caso ocorram problemas.
Etapa 2: Aplique a versão
Escolha um dos métodos a seguir.
Método 1: Rótulo YAML
Adicione o rótulo aliyun.com/agent-version ao arquivo YAML da aplicação:
metadata:
labels:
aliyun.com/agent-version: "<agent-version>"
Substitua <agent-version> pelo número da versão obtido na Etapa 1.
Após salvar o arquivo e clicar em Update, a aplicação reinicia automaticamente para aplicar a versão especificada.
Este rótulo aplica-se apenas à aplicação atual. Repita esta etapa para cada aplicação que necessite de fixação de versão.
Método 2: Console do EDAS
Ao implantar uma aplicação em um cluster Kubernetes pelo console do Enterprise Distributed Application Service (EDAS), especifique a versão do agente na seção Monitoring and Governance Configurations da aba Advanced Settings.
Para ajustar as versões de agente disponíveis no EDAS, contate o do EDAS.
Método 3: API do EDAS
Ao criar ou implantar uma aplicação pela API do EDAS, defina o parâmetro CustomAgentVersion na operação InsertK8sApplication ou DeployK8sApplication.
Etapa 3: Valide e implante
Aplique a versão primeiro em uma aplicação de teste.
Valide se a aplicação funciona conforme o esperado com a nova versão do agente.
Após a validação bem-sucedida, repita a Etapa 2 para as aplicações restantes.
Se a nova versão do agente causar problemas, altere o rótulo ou parâmetro para a versão anterior registrada na Etapa 1 para fazer rollback.
Ative a atualização progressiva
Requisito: ack-onepilot V3.3.0 ou posterior. A carga de trabalho da aplicação deve ter três ou mais réplicas.
A atualização progressiva permite validar uma nova versão do agente em um pequeno subconjunto de instâncias antes que ela atinja toda a carga de trabalho.
Adicione ambos os rótulos ao YAML da aplicação:
metadata:
labels:
aliyun.com/agent-version: "<agent-version>"
aliyun.com/enable-progressive-update: "true"
Ao reimplantar uma carga de trabalho Deployment ou StatefulSet em um cluster ACK com atualização progressiva ativada, apenas uma ou duas instâncias recebem a versão especificada do agente. As demais mantêm a versão atual.
Limitações
A atualização progressiva exige pelo menos três réplicas. Se a carga de trabalho tiver menos de três réplicas, nenhuma instância será atualizada para a versão especificada, mesmo com o rótulo definido. Nesse caso, não ative a atualização progressiva.
Esse recurso aplica-se exclusivamente a cargas de trabalho Deployment e StatefulSet.
Contate o suporte técnico para fixar uma versão
Use este método se o ack-onepilot for anterior à V3.0.17 ou se o ambiente exigir modificações manuais no YAML. Essa abordagem usa bloqueio de versão para migrar agentes de versões obsoletas ou sem suporte para a mais recente.
Selecione uma aplicação de teste. Contate o suporte técnico do ARMS para bloquear o agente na versão alvo.
Reinicie a aplicação de teste e valide a nova versão do agente.
Após a validação bem-sucedida, contate o suporte técnico do ARMS para atualizar a versão bloqueada nos clusters restantes em lotes.
Reinicie as aplicações de cada lote para aplicar a atualização.
Melhores práticas
Valide antes da implantação ampla: Fixe a nova versão em uma única aplicação de teste inicialmente. Confirme a operação normal antes de atualizar as aplicações restantes.
Use atualização progressiva para cargas de produção: Em cargas de trabalho com três ou mais réplicas, ative a atualização progressiva para limitar o raio de impacto durante mudanças de versão.
Registre as versões atuais antes das alterações: Antes de fixar uma nova versão, anote a versão atual do agente na aba Agent Online Status para permitir um rollback rápido.
Mantenha o ack-onepilot atualizado: Atualize o ack-onepilot para a V3.0.17 ou posterior para acessar a fixação de versão por autoatendimento, ou para a V3.3.0 ou posterior para usar a atualização progressiva, sem depender do suporte técnico.