O ACK Edge é uma solução gerenciada de integração entre nuvem e borda, oferecida pelo Container Service for Kubernetes (ACK) para cenários de edge computing. Este tópico descreve as notas de versão do ACK Edge para Kubernetes 1.18.
Versão
Versão do cluster ACK Edge: 1.18.8-aliyunedge.1
Novidades
Canal de operações e monitoramento entre nuvem e borda
O tunnel-server agora intercepta e processa o tráfego de operações e monitoramento da borda com base nas resoluções do Domain Name System (DNS) do cluster, em vez de usar regras iptables de nós individuais. Essa alteração traz três melhorias:
O Prometheus e o metrics-server não precisam mais ser executados no mesmo nó que o tunnel-server.
Implante o tunnel-server em várias réplicas de pod, com balanceamento de carga aplicado em todos os nós.
Um novo módulo
meta serverfoi adicionado ao tunnel-server para processarPrometheus metricsedebug/pprof. O endpoint do tunnel-server éhttp://127.0.0.1:10265e o endpoint do edge-tunnel-agent éhttp://127.0.0.1:10266. Para alterar a porta padrão, defina o parâmetro de inicialização--meta-portem qualquer um dos componentes.
Autonomia dos nós de borda
O edge-hub aprimora o cache de borda, as verificações de integridade, os endpoints de serviço e a análise de tráfego. Isso fortalece a autonomia do tráfego na borda e o acesso interno ao cluster para o kube-apiserver. Confira as alterações específicas:
O edge-hub agora oferece suporte nativo à topologia de tráfego dos Services na borda, sem dependência de feature gates do Kubernetes.
O edge-hub atualiza automaticamente o endpoint de um Service na borda para o endpoint público do kube-apiserver do cluster. Isso permite que aplicações de borda acessem o cluster no modo in-cluster.
O edge-hub armazena CustomResourceDefinitions (CRDs) em cache. Por exemplo, a CRD
nodenetworkconfigurations, que guarda informações de rede do Flannel, agora pode ser armazenada em cache.As verificações de integridade foram aprimoradas: o edge-hub agora envia heartbeats do tipo
Leaseem vez de requisiçõeshealthz.O edge-hub escuta na porta
10261para encaminhamento de requisições e na porta10267para requisições locais, como liveness probes, métricas e pprof doyurthub.A métrica
node_edge_hub_proxy_traffic_collectorestá disponível agora. Ela exibe o tráfego gerado quando componentes do nó, como kubelet e kube-proxy, acessam recursos do Kubernetes, incluindo pods e Deployments.
Gerenciamento baseado em células na borda
O controlador UnitedDeployment agora oferece suporte a um campo Patch no gerenciamento baseado em células. Use esse campo para personalizar configurações por node pool. Por exemplo, para implantar nós em diferentes node pools usando repositórios de imagens locais distintos, especifique um endereço de imagem separado para cada node pool no campo Patch.
Nós de borda
Agora é possível adicionar nós com Ubuntu 20.04 a clusters Kubernetes de borda.
Rede de borda
A rede entre nuvem e borda do Flannel foi otimizada. As operações de listagem e observação (list e watch) agora ocorrem nas CRDs relacionadas, e não diretamente nos nós. Isso reduz o tráfego gerado por essas operações.
As anotações de gerenciamento de tráfego também foram atualizadas. Para obter detalhes, consulte Anotações sobre gerenciamento de tráfego na borda.
Antes de atualizar
Os valores válidos da anotação openyurt.io/topologyKeys para gerenciamento de tráfego mudaram no Kubernetes 1.18. Revise as alterações a seguir antes de prosseguir com a atualização.
Anotações sobre gerenciamento de tráfego na borda
A tabela a seguir descreve as chaves de anotação suportadas no Kubernetes 1.16:
|
Chave da anotação |
Valor da anotação |
Descrição |
|
|
|
O Service fica acessível apenas pelo nó onde está implantado. |
|
|
|
O acesso ao Service é restrito aos nós do mesmo node pool. |
|
N/A |
N/A |
Não há restrições de acesso ao Service. |
No Kubernetes 1.18, os values válidos de openyurt.io/topologyKeys foram atualizados. Os valores válidos agora são kubernetes.io/zone e openyurt.io/nodepool. Ambos indicam que o Service é acessível apenas pelos nós pertencentes ao mesmo node pool. Use openyurt.io/nodepool como valor.