O Container Service for Kubernetes (ACK) gerencia a arquitetura técnica e os componentes principais dos serviços de contêiner. No entanto, operações inadequadas em componentes não gerenciados e em aplicações executadas em clusters ACK podem causar falhas no serviço. Para antecipar e prevenir riscos operacionais, leia atentamente as recomendações e notas deste tópico antes de utilizar o ACK.
Índice
|
Item |
Tópicos relacionados |
Notas de uso
Componentes do plano de dados
Os componentes do plano de dados são componentes de sistema executados em suas instâncias ECS, como CoreDNS, Ingress, kube-proxy, Terway e kubelet. Como esses componentes rodam em suas instâncias ECS, tanto a Alibaba Cloud quanto você compartilham a responsabilidade por manter sua estabilidade.
O ACK oferece o seguinte suporte para componentes do plano de dados:
Fornece recursos para gerenciamento de parâmetros de componentes, otimização periódica de funcionalidades, correções de bugs e patches de CVE, juntamente com as orientações correspondentes.
Disponibiliza recursos de observabilidade, como monitoramento e alertas para componentes. Para alguns componentes principais, os logs são fornecidos e expostos a você por meio do Simple Log Service (SLS).
Oferece práticas recomendadas e sugestões de configuração. O ACK fornece recomendações de configuração de componentes com base na escala do cluster.
Proporciona capacidades de inspeção periódica e notificação de alertas para componentes. As inspeções abrangem itens como versões de componentes, configurações, cargas de trabalho, topologias de implantação e quantidade de instâncias.
Siga estas recomendações ao utilizar componentes do plano de dados:
Utilize as versões mais recentes dos componentes. Novas versões são lançadas frequentemente para corrigir bugs ou oferecer novos recursos. Após o lançamento de uma nova versão, escolha um momento adequado para atualizar o componente seguindo as instruções do guia de atualização, garantindo assim a estabilidade do serviço. Para mais informações, consulte Componentes.
No console ACK, defina o endereço de e-mail e o número de telefone móvel dos seus contatos e especifique como receber notificações de alerta. A Alibaba Cloud envia notificações de alerta, avisos de serviço e outras informações sobre o ACK por meio desses canais. Para mais informações, consulte Gerenciar alertas para ACK.
Caso receba um relatório de risco de estabilidade de componente, siga as instruções relevantes para resolver o problema e eliminar prontamente os riscos de segurança.
Ao usar componentes do plano de dados, configure parâmetros personalizados para eles no console ACK, na página , ou utilize a OpenAPI. Modificar configurações de componentes por outros canais pode fazer com que suas funcionalidades apresentem comportamento anormal. Para mais informações, consulte Gerenciar componentes.
Não utilize a OpenAPI de produtos de Infraestrutura como Serviço (IaaS) para alterar o ambiente de execução dos componentes. Exemplos incluem usar a OpenAPI do ECS para mudar o status de execução de uma instância ECS, modificar a configuração de grupo de segurança de um nó worker, alterar a configuração de rede de um nó worker ou usar a OpenAPI do Server Load Balancer (SLB) para modificar configurações do SLB. Alterações não autorizadas nos recursos da camada IaaS podem causar anomalias nos componentes do plano de dados.
Alguns componentes do plano de dados são afetados por componentes open source upstream e podem apresentar bugs ou vulnerabilidades. Atualize os componentes prontamente para evitar impactos em seus serviços.
Atualizações de cluster
Sempre utilize o recurso de atualização de cluster do ACK para atualizar a versão do Kubernetes do seu cluster. Atualizar a versão do Kubernetes por conta própria pode causar problemas de estabilidade e compatibilidade. Para mais informações, consulte Atualizar um cluster e atualizar independentemente o plano de controle e os node pools de um cluster.
O ACK oferece o seguinte suporte para atualizações de cluster:
Disponibiliza um recurso para atualizar o cluster para uma nova versão do Kubernetes.
Oferece um recurso de verificação prévia para atualizações de versão do Kubernetes, garantindo que o estado atual do cluster suporte a atualização.
Fornece guias de versão para novas versões do Kubernetes que descrevem as mudanças em relação à versão anterior.
Notifica você sobre possíveis riscos decorrentes de alterações de recursos ao atualizar para uma nova versão do Kubernetes.
Siga estas recomendações ao utilizar o recurso de atualização de cluster:
Execute uma verificação prévia antes da atualização do cluster e corrija quaisquer problemas bloqueantes com base nos resultados obtidos.
Leia atentamente o guia da nova versão do Kubernetes. Confirme o status do cluster e dos seus serviços com base nos riscos de atualização identificados pelo ACK e avalie os riscos por conta própria. Para mais informações, consulte [[Descontinuado] Visão geral dos lançamentos de versões do Kubernetes](t1960241.dita#task_1960241).
O recurso de atualização de cluster não suporta rollbacks. Crie um plano de atualização detalhado e faça backups antes de prosseguir.
Atualize a versão do Kubernetes do seu cluster prontamente dentro do ciclo de suporte da versão atual, conforme a política de suporte de versões do ACK. Para mais informações, consulte Guia de versões.
Configurações nativas do Kubernetes
-
Não modifique configurações essenciais do Kubernetes sem autorização. Exemplos incluem os caminhos, links e conteúdo dos seguintes arquivos:
/var/lib/kubelet
/var/lib/docker
/etc/kubernetes
/etc/kubeadm
/var/lib/containerd
Não utilize anotações reservadas para clusters Kubernetes em modelos YAML. Isso pode tornar os recursos indisponíveis, causar falhas em solicitações ou gerar comportamentos anormais. Anotações que começam com
kubernetes.io/ek8s.io/são reservadas para componentes principais. A seguir, um exemplo de violação:pv.kubernetes.io/bind-completed: "yes".
Clusters serverless ACK
Nos cenários a seguir, não há compensação para clusters serverless ACK:
Para simplificar as operações e manutenção (O&M) do cluster, os clusters serverless ACK oferecem capacidades gerenciadas para alguns componentes de sistema. Após ativar o recurso gerenciado para componentes em um cluster, o ACK torna-se responsável pela implantação e manutenção deles. Se seus serviços forem afetados porque você excluiu por engano objetos Kubernetes dos quais os componentes gerenciados dependem, ou devido a outras situações semelhantes, o ACK Serverless não fornecerá compensação.
Clusters registrados
Ao conectar um cluster Kubernetes externo usando o recurso de cluster registrado no console ACK, garanta a estabilidade da rede entre o cluster externo e a Alibaba Cloud.
O ACK permite registrar e conectar-se a clusters Kubernetes externos, mas não consegue controlar a estabilidade nem prevenir operações inadequadas nesses clusters. Portanto, tenha cautela ao configurar informações como rótulos, anotações e tags para nós em um cluster externo usando o recurso de cluster registrado. Isso pode causar execução anormal das aplicações.
App Catalog
Para enriquecer as aplicações Kubernetes, o App Catalog no ACK Marketplace disponibiliza aplicações adaptadas e personalizadas com base em software open source. O ACK não tem controle sobre os bugs inerentes ao software open source. Esteja ciente desse risco. Para mais informações, consulte App Catalog.
Operações de risco
Certas operações no ACK são consideradas de alto risco e podem afetar significativamente a estabilidade do serviço. Antes de executar essas operações, certifique-se de compreendê-las plenamente, bem como seus impactos.
Operações de risco relacionadas ao cluster
|
Categoria |
Operação de risco |
Impacto |
Solução de recuperação |
|
API Server |
Reutilizar a instância CLB do API server para outros cenários, como um Service do tipo LoadBalancer. |
O cluster fica indisponível e o tráfego de serviço é afetado. |
Reverta para a configuração original ou entre em contato com o suporte pós-venda. |
|
Modificar o listener, grupo vServer, lista de controle de acesso (ACL) ou outras configurações que controlam o encaminhamento do SLB, ou modificar a configuração de tags da instância SLB usada pelo API Server. |
O cluster apresenta comportamento anormal. |
Reverta para a configuração original. |
|
|
Excluir a instância CLB utilizada pelo API server. |
As operações no cluster falham. |
Esta operação não pode ser revertida. É necessário recriar o cluster. Para mais informações, consulte Criar um cluster gerenciado ACK. |
|
|
Nó worker |
Modificar o grupo de segurança de um nó no cluster. |
O nó pode ficar indisponível. |
Adicione o nó de volta ao grupo de segurança criado automaticamente para o cluster. Para mais informações, consulte Associar um grupo de segurança a uma instância (ENI primária). |
|
O nó expira ou é destruído. |
O nó fica indisponível. |
Esta operação não pode ser revertida. |
|
|
Reinstalar o sistema operacional. |
Os componentes no nó são excluídos. |
Remova o nó do cluster e adicione-o novamente. Para mais informações, consulte Remover um nó e Adicionar nós existentes a um cluster. |
|
|
Atualizar versões de componentes do nó por conta própria. |
O nó pode tornar-se inutilizável. |
Faça rollback para a versão original. |
|
|
Alterar o endereço IP do nó. |
O nó fica indisponível. |
Reverta o endereço IP para o original. |
|
|
Modificar parâmetros de componentes principais, como kubelet, docker e containerd, por conta própria. |
O nó pode ficar indisponível. |
Configure os parâmetros conforme recomendado na documentação oficial. |
|
|
Modificar a configuração do sistema operacional. |
O nó pode ficar indisponível. |
Tente reverter o item de configuração. Caso contrário, exclua o nó e adquira um novo. |
|
|
Modificar a hora do nó. |
Os componentes no nó podem funcionar de maneira anormal. |
Reverta a hora do nó. |
|
|
Adicionar poder computacional ao cluster de uma forma não suportada pelo ACK. |
O ACK fornece métodos como console, OpenAPI e interface de linha de comando (CLI) para adicionar poder computacional a um cluster. Para mais informações, consulte Adicionar nós existentes a um cluster. Se você adicionar nós ao cluster usando outros métodos, o ACK não conseguirá identificar a origem desses nós e não poderá fornecer capacidades do produto, como gerenciamento de ciclo de vida de nós, O&M automatizado e suporte técnico. Para uma descrição detalhada dos riscos, consulte Por que o console mostra que a origem do node pool ao qual um nó pertence é "Outros Nós"?. |
Recomendamos gerenciar o poder computacional usando node pools. Se desejar continuar usando o método atual, garanta a compatibilidade dos nós com vários componentes do cluster, como Kubernetes, rede, armazenamento e segurança. |
|
|
Nó master (cluster dedicado ACK) |
Modificar o grupo de segurança de um nó no cluster. |
O nó master pode ficar indisponível. |
Adicione o nó de volta ao grupo de segurança criado automaticamente para o cluster. Para mais informações, consulte Associar um grupo de segurança a uma instância (ENI primária). |
|
O nó expira ou é destruído. |
O nó master fica indisponível. |
Esta operação não pode ser revertida. |
|
|
Reinstalar o sistema operacional. |
Os componentes no nó master são excluídos. |
Esta operação não pode ser revertida. |
|
|
Atualizar as versões dos componentes Master ou etcd por conta própria. |
O cluster pode tornar-se inutilizável. |
Faça rollback para a versão original. |
|
|
Excluir ou formatar dados em diretórios principais, como /etc/kubernetes, no nó. |
O nó master fica indisponível. |
Esta operação não pode ser revertida. |
|
|
Alterar o endereço IP do nó. |
O nó master fica indisponível. |
Reverta o endereço IP para o original. |
|
|
Modificar parâmetros de componentes principais, como etcd, kube-apiserver e docker, por conta própria. |
O nó master pode ficar indisponível. |
Configure os parâmetros conforme recomendado na documentação oficial. |
|
|
Substituir o certificado Master ou etcd por conta própria. |
O cluster pode tornar-se inutilizável. |
Esta operação não pode ser revertida. |
|
|
Adicionar ou remover nós master por conta própria. |
O cluster pode tornar-se inutilizável. |
Esta operação não pode ser revertida. |
|
|
Modificar a hora do nó. |
Os componentes no nó podem funcionar de maneira anormal. |
Reverta a hora do nó. |
|
|
Outros |
Alterar permissões ou realizar modificações via RAM. |
Alguns recursos do cluster, como instâncias SLB, podem falhar ao serem criados. |
Reverta para as permissões originais. |
|
Nota
Aplica-se apenas a clusters que executam uma versão do Kubernetes anterior à 1.26. Modificar ou excluir recursos pré-configurados relacionados ao PodSecurityPolicy no cluster. Isso inclui o recurso PodSecurityPolicy chamado |
Componentes principais do cluster podem apresentar comportamento anormal. Você pode não conseguir criar ou atualizar recursos de pod no cluster. |
Recupere os recursos relacionados. Para mais informações, consulte Configurar ou recuperar as políticas de segurança de pod padrão do ACK. |
Operações de risco relacionadas a node pools
|
Operação de risco |
Impacto |
Solução de recuperação |
|
Excluir um grupo de dimensionamento. |
O node pool apresenta comportamento anormal. |
Esta operação não pode ser revertida. A única opção é recriar o node pool. Para mais informações, consulte Criar um node pool. |
|
Remover um nó usando kubectl. |
O número de nós exibido no node pool não corresponde ao número real. |
Remova o nó especificado no console ACK ou usando a API relacionada a node pools (consulte Remover um nó), ou reduza a escala modificando o número esperado de nós no node pool (consulte Criar e gerenciar node pools). |
|
Liberar diretamente uma instância ECS. |
A página do produto node pool pode exibir informações incorretas. Para um node pool com um número específico de nós esperados, o pool escala automaticamente para atingir esse número com base na configuração do node pool. |
Esta operação não pode ser revertida. O procedimento correto é reduzir a escala modificando o número esperado de nós no node pool pelo console ACK ou usando a API relacionada a node pools (consulte Criar e gerenciar node pools) ou remover um nó específico (consulte Remover um nó). |
|
Escalar manualmente para fora ou para dentro um node pool com auto scaling ativado. |
O componente de auto scaling ajusta automaticamente o número de nós com base na política. Isso faz com que o resultado não corresponda às suas expectativas. |
Esta operação não pode ser revertida. Node pools com auto scaling não requerem intervenção manual. |
|
Modificar o número máximo ou mínimo de instâncias em um grupo de dimensionamento ESS. |
O dimensionamento pode apresentar comportamento anormal. |
|
|
Não fazer backup de dados antes de adicionar um nó existente. |
Quaisquer dados na instância serão perdidos. |
Esta operação não pode ser revertida.
|
|
Salvar dados importantes no disco do sistema do nó. |
A operação de autocorreção de um node pool pode reparar um nó redefinindo sua configuração. Isso pode levar à perda de dados no disco do sistema. |
Esta operação não pode ser revertida. A prática correta é armazenar dados importantes em um disco de dados extra ou em um disco em nuvem, NAS ou OSS. |
Operações de risco relacionadas a nós virtuais
|
Operação de risco |
Impacto |
Solução de recuperação |
|
Desinstalar o componente de nó virtual. |
O recurso de gerenciamento de pods serverless apresenta comportamento anormal: pods ECI e ACS criados não podem ser excluídos normalmente, e novos pods ECI e ACS não podem ser criados normalmente. |
Operações de risco relacionadas a rede e Server Load Balancer
|
Operação de risco |
Impacto |
Solução de recuperação |
|
Modificar o parâmetro de kernel |
Falha na conectividade de rede. |
Modifique o parâmetro de kernel para |
|
Modificar os parâmetros de kernel:
|
Falha na conectividade de rede. |
Modifique os parâmetros de kernel para:
|
|
Modificar o parâmetro de kernel |
As verificações de integridade do pod apresentam comportamento anormal. |
Modifique o parâmetro de kernel para |
|
Modificar o parâmetro de kernel |
O NAT apresenta comportamento anormal. |
Modifique o parâmetro de kernel para |
|
Modificar o parâmetro de kernel |
Ocorrem falhas intermitentes na conectividade de rede. |
Modifique o parâmetro de kernel para o valor padrão |
|
Instalar software de firewall, como Firewalld ou ufw. |
Falha na conectividade de rede do contêiner. |
Desinstale o software de firewall e reinicie o nó. |
|
A configuração do grupo de segurança do nó não permite tráfego UDP na porta 53 para o bloco CIDR do contêiner. |
O DNS no cluster não funciona corretamente. |
Configure o grupo de segurança para permitir o tráfego conforme recomendado na documentação oficial. |
|
Modificar ou excluir as tags de uma instância SLB adicionada pelo ACK. |
A instância SLB apresenta comportamento anormal. |
Reverta as tags da instância SLB. |
|
Modificar a configuração de uma instância SLB gerenciada pelo ACK a partir do console SLB, incluindo a instância SLB, listener e grupo vServer. |
A instância SLB apresenta comportamento anormal. |
Reverta a configuração da instância SLB. |
|
Remover a anotação para reutilizar uma instância SLB existente de um Service, que é |
A instância SLB apresenta comportamento anormal. |
Adicione a anotação para reutilizar uma instância SLB existente ao Service. Nota
Não é possível alterar diretamente um Service que reutiliza uma instância SLB existente para um Service que usa uma instância SLB criada automaticamente. É necessário recriar o Service. |
|
Excluir uma instância SLB criada pelo ACK a partir do console SLB. |
A rede do cluster pode apresentar comportamento anormal. |
Exclua a instância SLB excluindo o Service. Para mais informações, consulte Excluir um Service. |
|
Excluir manualmente o Service |
O Ingress Controller não funciona corretamente e pode travar em casos graves. |
Crie um novo Service com o mesmo nome usando o YAML a seguir.
|
|
Adicionar ou modificar a opção |
Se o servidor DNS configurado não estiver definido corretamente, a resolução DNS pode falhar. Isso afeta a operação normal do cluster. |
Se quiser usar um servidor DNS autogerenciado como servidor upstream, recomendamos configurá-lo no lado do CoreDNS. Para mais informações, consulte Configurar um componente CoreDNS não gerenciado. |
|
Modificar ou excluir interfaces de rede elásticas (ENIs) ou ENIs Lingjun criadas pelo ACK. |
A rede do pod é interrompida. |
Esta operação não pode ser revertida. |
|
Modificar ou excluir CRDs relacionados à rede.
|
O componente Terway não funcionará. Isso pode levar a interrupções de rede e anomalias nos pods em casos graves. |
Esta operação não pode ser revertida. |
|
Criar, modificar ou excluir CRs de sistema relacionados à rede.
|
O componente Terway não funcionará. Isso pode levar a interrupções de rede e anomalias nos pods em casos graves. |
Exclua o CR personalizado e recrie o pod associado. |
|
Modificar ou excluir campos cuja alteração não é permitida na configuração de rede do Terway. Para declarações de parâmetros, consulte Personalizar configurações do Terway. |
O componente Terway não funcionará. Isso pode levar a interrupções de rede e anomalias nos pods em casos graves. |
Reverta para a configuração original e reinicie o nó. |
Operações de risco relacionadas a armazenamento
|
Operação de risco |
Impacto |
Solução de recuperação |
|
Desanexar manualmente um disco em nuvem pelo console. |
As operações de gravação do pod relatam um erro de I/O. |
Reinicie o pod e limpe manualmente os resíduos do ponto de montagem no nó. |
|
Executar umount no caminho de montagem do disco no nó. |
O pod grava no disco local. |
Reinicie o pod. |
|
Operar diretamente em um disco em nuvem no nó. |
O pod grava no disco local. |
Esta operação não pode ser revertida. |
|
Montar o mesmo disco em nuvem em múltiplos pods. |
O pod grava no disco local ou relata um erro de I/O. |
Garanta que um disco em nuvem seja usado por apenas um pod. Importante
Discos em nuvem são armazenamentos não compartilhados fornecidos pela Alibaba Cloud e podem ser montados em apenas um pod por vez. |
|
Excluir manualmente um diretório de montagem NAS. |
As operações de gravação do pod relatam um erro de I/O. |
Reinicie o pod. |
|
Excluir um disco NAS ou destino de montagem que esteja em uso. |
O pod sofre um travamento de I/O. |
Reinicie o nó ECS. Para mais informações, consulte Reiniciar uma instância ECS. |
Operações de risco relacionadas a logs
|
Operação de risco |
Impacto |
Solução de recuperação |
|
Excluir o diretório /tmp/ccs-log-collector/pos no host. |
Coleta duplicada de logs. |
Esta operação não pode ser revertida. Os arquivos neste diretório registram as posições de coleta de logs. |
|
Excluir o diretório /tmp/ccs-log-collector/buffer no host. |
Perda de dados de log. |
Esta operação não pode ser revertida. Este diretório é um arquivo de cache para logs aguardando consumo. |
|
Excluir o recurso CRD aliyunlogconfig. |
Falha na coleta de logs. |
Recrie o CRD excluído e seus recursos correspondentes. No entanto, os logs do período de falha não podem ser recuperados. A exclusão de um CRD também exclui todas as suas instâncias correspondentes. Mesmo que o CRD seja recuperado, é necessário criar manualmente as instâncias excluídas. |
|
Excluir o componente de log. |
Falha na coleta de logs. |
Reinstale o componente de log e recupere manualmente as instâncias do CRD aliyunlogconfig. Os logs do período de exclusão não podem ser recuperados. Excluir o componente de log equivale a excluir o CRD aliyunlogconfig e o coletor Logtail. Todas as capacidades de coleta de logs são perdidas durante este período. |