====== Как и чем заменить Ingress NGINX ====== * [[https://gateway-api.sigs.k8s.io/guides/getting-started/|Getting started with Gateway API]] * [[https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/|Ingress NGINX Retirement: What You Need to Know]] * [[https://docs.rafay.dev/blog/2025/12/05/goodbye-to-ingress-nginx--what-happens-next/|Goodbye to Ingress NGINX – What Happens Next?]] * [[https://krisadas.medium.com/k8s-keycloak-with-traefik-ada27f62ac3e|K8S Keycloak with Traefik]] * [[https://tetrate.io/blog/migrating-from-ingress-nginx-to-envoy-gateway|Migrating from ingress-nginx to Envoy Gateway]] * [[Все что должен знать DevOps про HTML]], HTTP и REST * [[Стратегии деплоя в Kubernetes]] ===== Реклама ===== * Не так часто случается в индустрии, когда решение, долгое время используемое в качестве стандартного, вдруг оказывается без официальной поддержки. На нашем вебинаре мы обсудим причины и "как жить дальше" без Ingress NGINX, а так же узнаем, как и на что его можно заменить (спойлер: Traefik, Envoy, но, это не точно:) ===== Техническое задание ===== * Развернуть альтернативные решения, реализующие Ingress API * Проверить работу приложений, использующих Ingress API * Развернуть решения, реализующие Gateway API * Провести миграцию приложений на Gateway API ===== Запись вебинара ===== * Ютуб: https://youtu.be/QxN5w3aT3Lo * Рутуб: https://rutube.ru/video/private/8fa4647ac6d0f1ddc4fd52eff6d157be/ * Вк: https://vkvideo.ru/video-2190892_456239500 * Тэги: Kubernetes, Ingress, NGINX, Traefik, Envoy, Gateway API ===== Шаг 1. Что у нас есть, для начала ===== * Система Kubernetes [[Система Kubernetes#Развертывание через Kubespray]] * [[Решение FreeIPA]] ===== Шаг 2. Развертывание приложения ===== * [[Система Kubernetes#Deployment]] kube1:~/webd-k8s# cat my-webd-deployment.yaml ... image: brndnmtthws/nginx-echo-headers * [[Система Kubernetes#Service]] kube1:~/webd-k8s# cat my-webd-service.yaml ... targetPort: 8080 ===== Шаг 3. Доступ к приложению через Ingress NGINX ===== * [[Система Kubernetes#MetalLB]] * [[Система Kubernetes#Установка Helm]] * [[Система Kubernetes#ingress-nginx]] * [[Решение FreeIPA#Создание ключа и сертификата для стороннего сервиса]] ehwebd * [[Система Kubernetes#secrets tls]] kube1:~# kubectl create secret tls ehwebd-tls --key /tmp/ehwebd.key --cert /tmp/ehwebd.crt -n my-ns * [[Система Kubernetes#ingress example]] client1.corp13.un:~# curl https://ehwebd.corp13.un #-H "X-Forwarded-For: 192.168.13.101" ===== Шаг 4. Замена Ingress NGINX на Ingress Traefik ===== * [[Система Kubernetes#ingress-traefik-controller]] kube1:~/traefik# cat values.yaml service: spec: loadBalancerIP: "192.168.13.66" kube1:~/webd-k8s# kubectl -n traefik logs pods/traefik- kube1:~/webd-k8s# cat my-ingress.yaml ... # ingressClassName: nginx ingressClassName: traefik ... # number: 8080 number: 80 ... * ehwebd A 192.168.13.66 kube1:~/webd-k8s# kubectl apply -f my-ingress.yaml -n my-ns ===== Шаг 5. Замена Ingress на Gateway API ===== * [[https://habr.com/ru/companies/gnivc/articles/992366/|Прощай, Ingress. Здравствуй, Gateway API]] ==== GatewayClass (Инфраструктура/Провайдер) ==== * [[Система Kubernetes#Gateway API]] * [[Система Kubernetes#Traefik]] * [[Система Kubernetes#Envoy Gateway]] ==== GatewayClass (DevOps предприятия) ==== * [[Система Kubernetes#Gateway]] ==== HTTPRoute / TLSRoute (Разработчики приложений) ==== * [[Система Kubernetes#HTTPRoute]]