User Tools

Site Tools


как_и_чем_заменить_ingress_nginx

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
как_и_чем_заменить_ingress_nginx [2026/02/23 07:43]
val
как_и_чем_заменить_ingress_nginx [2026/03/11 09:57] (current)
val
Line 9: Line 9:
  
   * [[Все что должен знать DevOps про HTML]], HTTP и REST   * [[Все что должен знать DevOps про HTML]], HTTP и REST
 +  * [[Стратегии деплоя в Kubernetes]]
  
 +===== Реклама =====
 +
 +  * Не так часто случается в индустрии,​ когда решение,​ долгое время используемое в качестве стандартного,​ вдруг оказывается без официальной поддержки. На нашем вебинаре мы обсудим причины и "​как жить дальше"​ без Ingress NGINX, а так же узнаем,​ как и на что его можно заменить (спойлер:​ Traefik, Envoy, но, это не точно:​)
 +
 +===== Техническое задание =====
 +
 +  * Развернуть альтернативные решения,​ реализующие Ingress API
 +  * Проверить работу приложений,​ использующих Ingress API
 +  * Развернуть решения,​ реализующие Gateway API
 +  * Провести миграцию приложений на Gateway API
 +
 +===== Запись вебинара =====
 +
 +  * Тэги: Ingress, NGINX, ​
 +
 +===== Шаг 1. Что у нас есть, для начала =====
 +
 +  * Система Kubernetes [[Система Kubernetes#​Развертывание через Kubespray]]
 +  * [[Решение FreeIPA]]
 +
 +===== Шаг 2. Развертывание приложения =====
 +
 +  * [[Система Kubernetes#​Deployment]]
 <​code>​ <​code>​
 kube1:​~/​webd-k8s#​ cat my-webd-deployment.yaml kube1:​~/​webd-k8s#​ cat my-webd-deployment.yaml
 ... ...
-#        image: httpd 
         image: brndnmtthws/​nginx-echo-headers         image: brndnmtthws/​nginx-echo-headers
 ... ...
 </​code>​ </​code>​
 +  * [[Система Kubernetes#​Service]]
 +
 +===== Шаг 3. Доступ к приложению через Ingress NGINX =====
 +  * [[Система Kubernetes#​MetalLB]]
 +  * [[Система Kubernetes#​Установка Helm]]
 +  * [[Система Kubernetes#​ingress-nginx]]
 +
 +  * [[Решение FreeIPA#​Создание ключа и сертификата для стороннего сервиса]] ehwebd
 +  * [[Система Kubernetes#​secrets tls]]
 +<​code>​
 +kube1:~# kubectl create secret tls ehwebd-tls --key /​tmp/​ehwebd.key --cert /​tmp/​ehwebd.crt -n my-ns
 +</​code>​
 +
 +  * [[Система Kubernetes#​ingress example]]
 +
 +===== Шаг 4. Замена Ingress NGINX на Ingress Traefik =====
 +
 +<​code>​
 +kube1:​~/​webd-k8s#​ kubectl delete -f my-ingress.yaml -n my-ns                    ​
 +</​code>​
 +
 +  * [[Система Kubernetes#​ingress-traefik-controller]]
 +
 +<​code>​
 +kube1:​~/​webd-k8s#​ kubectl -n traefik logs pods/​traefik-<​TAB>​
 +
 +kube1:​~/​webd-k8s#​ cat my-ingress.yaml
 +...
 +#              number: 8080
 +              number: 80
 +...
 +</​code>​
 +
 +===== Шаг 5. Замена Ingress на Gateway API =====
  
   * [[Система Kubernetes#​Gateway API]]   * [[Система Kubernetes#​Gateway API]]
 +
   * [[Система Kubernetes#​Traefik]]   * [[Система Kubernetes#​Traefik]]
 +
   * [[Система Kubernetes#​Envoy Gateway]]   * [[Система Kubernetes#​Envoy Gateway]]
  
-<​code>​ +  * [[Система Kubernetes#Gateway]] 
-kube1:​~/​webd-k8scat my-gateway.yaml +  ​* [[Система Kubernetes#HTTPRoute]]
-</​code><​code>​ +
-apiVersion: gateway.networking.k8s.io/​v1 +
-kind: Gateway +
-metadata: +
-  ​name: my-gateway +
-spec: +
- ​gatewayClassName:​ traefik +
-#  gatewayClassName:​ eg +
-  listeners:​ +
-  - name: http +
-#    port: 8000 +
-#    port: 80 +
-    protocol: HTTP +
-  - name: https +
-    hostname: "​htwebd.corpX.un"​ +
-    protocol: HTTPS +
-#    port: 8443 +
-#    port: 443 +
-    tls: +
-      mode: Terminate +
-      certificateRefs:​ +
-        - kind: Secret +
-          name: htwebd-tls +
-</​code><​code>​ +
-kube1:​~/​webd-k8s#​ cat my-httproute.yaml +
-</​code><​code>​ +
-apiVersion: gateway.networking.k8s.io/​v1 +
-kind: HTTPRoute +
-metadata: +
-  name: my-httproute +
-spec: +
-  hostnames:​ +
-  - htwebd.corpX.un +
-  parentRefs:​ +
-  - name: my-gateway +
-#  - name: traefik-gateway +
-#    namespace: traefik +
-  rules: +
-  - matches: +
-    - path: +
-        type: Exact +
-        value: / +
-    backendRefs:​ +
-    - name: my-webd +
-      port: 80 +
-</​code>​+
как_и_чем_заменить_ingress_nginx.1771821783.txt.gz · Last modified: 2026/02/23 07:43 by val