Substitua o ack-ingress-nginx pelo ack-ingress-nginx-v1 para oferecer suporte ao Kubernetes 1.24 e versões posteriores.
Contexto
O ACK Kubernetes 1.24 descontinua os recursos de Ingress v1beta1. O ack-ingress-nginx instala o Nginx Ingress Controller 0.44.0, que utiliza a versão v1beta1. Após a atualização para o Kubernetes 1.24, esse controlador torna-se indisponível.
O ack-ingress-nginx-v1 utiliza o Nginx Ingress Controller ≥ 1.1.0. Substitua o ack-ingress-nginx pelo ack-ingress-nginx-v1 para manter o controlador em execução.
Esta orientação não se aplica ao Nginx Ingress Controller disponível no Gerenciamento de Componentes. Para atualizar esse componente, consulte Atualizar o componente Nginx Ingress Controller.
Pré-requisitos
-
A versão do cluster é 1,20 ou superior.
NotaO Chart 4.0.17+ do ack-ingress-nginx-v1 (componente v1.8.0-aliyun.1+) exige a versão 1,22 ou superior do cluster. Para clusters na versão 1,20, use o Chart 4.0.16 (componente v1.2.1-aliyun.1).
O ack-ingress-nginx está instalado a partir do Marketplace.
Etapa 1: Crie uma aplicação ack-ingress-nginx-v1
Crie uma aplicação ack-ingress-nginx-v1 pelo Marketplace
Para cada aplicação ack-ingress-nginx existente, implante uma aplicação correspondente do ack-ingress-nginx-v1 conforme descrito em Implantar múltiplos Ingress Controllers para isolar o tráfego.
Não defina o parâmetro controller.ingressClassResource.name no ack-ingress-nginx-v1 com o mesmo valor de controller.ingressClass no ack-ingress-nginx. Classes de Ingress conflitantes podem causar problemas de estabilidade no controlador.
(Opcional) Ajuste especificações e parâmetros do SLB
Caso tenha ajustado anteriormente as especificações ou parâmetros do Server Load Balancer (SLB) para o ack-ingress-nginx, aplique os mesmos ajustes ao ack-ingress-nginx-v1. Configure o Service usando Annotations controller.service (rede pública) ou controller.service.internal (rede privada). Consulte Configurar o Classic Load Balancer (CLB) usando Annotations para CLB ou Configurar o Network Load Balancer (NLB) usando Annotations para NLB.
Etapa 2: Crie e valide regras de roteamento de Ingress
Copie as regras de roteamento de Ingress existentes, atualize a Ingress Class e aplique-as para evitar interrupções no tráfego. Exemplo:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: nginx-intranet # Original Ingress Class is nginx-intranet.
spec:
rules:
- host: test-ingress.com
http:
paths:
- path: /foo
backend:
service:
name: web1-service
port:
number: 8080
pathType: ImplementationSpecific
- path: /bar
backend:
service:
name: web1-service
port:
number: 8080
pathType: ImplementationSpecific
Crie uma nova regra de roteamento de Ingress.
-
Ao usar Annotations, altere apenas o nome da Ingress Class. Mantenha todas as outras configurações inalteradas.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress-v1 # Create a new Ingress resource. namespace: default annotations: kubernetes.io/ingress.class: nginx-intranet-v1 # Change to the Ingress Class used by ack-ingress-nginx-v1, for example, nginx-intranet-v1. spec: rules: - host: test-ingress.com http: paths: - path: /foo backend: service: name: web1-service port: number: 8080 pathType: ImplementationSpecific - path: /bar backend: service: name: web1-service port: number: 8080 pathType: ImplementationSpecific Se você usar
spec.ingressClassNameem vez de Annotations, crie uma nova regra de Ingress e atualize o nome da Ingress Class emspec.ingressClassName.
Após criar a nova regra de Ingress, valide a configuração atualizando o arquivo hosts local para resolver o nome de domínio para o novo endereço IP do CLB.
Etapa 3: Migre o tráfego
Depois de validar as novas regras de roteamento de Ingress, migre o tráfego para o ack-ingress-nginx-v1 atualizando os registros DNS.
Faça login no console do Alibaba Cloud DNS ou no console DNS do provedor de domínio. Atualize o registro DNS para apontar para o novo endereço IP. Monitore a aplicação durante a propagação do DNS e faça rollback se necessário. Use logs de contêineres ou métricas para acompanhar o progresso da migração.
Próximas etapas
Após migrar todo o tráfego e confirmar a operação normal, exclua a aplicação ack-ingress-nginx original. Faça login no console do Container Service for Kubernetes. Selecione o cluster, escolha , localize o release e clique em Delete.