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/22 09:45]
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: brndnmtthws/​nginx-echo-headers
 +...
 +</​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>​ </​code>​
  
-  * [[Система Kubernetes#Gateway API]] +  * [[Система Kubernetes#ingress example]] 
-  * [[Система Kubernetes#Traefik]]+ 
 +===== Шаг 4. Замена Ingress NGINX на Ingress ​Traefik ​=====
  
 <​code>​ <​code>​
-kube1:​~/​webd-k8s# ​cat my-gateway.yaml +kube1:​~/​webd-k8s# ​kubectl delete ​-my-ingress.yaml -my-ns                    ​
-</​code><​code>​ +
-apiVersion: gateway.networking.k8s.io/​v1 +
-kind: Gateway +
-metadata: +
-  name: my-gateway +
-spec: +
-  gatewayClassName:​ traefik +
-  listeners:​ +
-  - name: http +
-    port: 8000 +
-    protocol: HTTP +
-  - name: https +
-    hostname: "​htwebd.corpX.un"​ +
-    protocol: HTTPS +
-    port: 8443 +
-    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>​ </​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#​Traefik]]
 +
 +  * [[Система Kubernetes#​Envoy Gateway]]
 +
 +  * [[Система Kubernetes#​Gateway]]
 +  * [[Система Kubernetes#​HTTPRoute]]
как_и_чем_заменить_ingress_nginx.1771742746.txt.gz · Last modified: 2026/02/22 09:45 by val