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/21 20:26]
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>​ </​code>​
 +  * [[Система Kubernetes#​Service]]
  
-  ​* [[Система Kubernetes#Traefik]]+===== Шаг 3. Доступ к приложению через Ingress NGINX ===== 
 +  * [[Система Kubernetes#​MetalLB]] 
 +  * [[Система Kubernetes#​Установка Helm]] 
 +  ​* [[Система Kubernetes#ingress-nginx]]
  
 +  * [[Решение FreeIPA#​Создание ключа и сертификата для стороннего сервиса]] ehwebd
 +  * [[Система Kubernetes#​secrets tls]]
 <​code>​ <​code>​
-kube1:~/traefik# kubectl ​get ingressclasses+kube1:~# kubectl ​create secret tls ehwebd-tls --key /​tmp/​ehwebd.key --cert /​tmp/​ehwebd.crt -n my-ns 
 +</​code>​
  
-kube1:​~/​webd-k8scat my-ingressroute.yaml +  * [[Система Kubernetes#ingress example]] 
-</​code>​<​code>​ + 
-apiVersiontraefik.io/v1alpha1 +===== Шаг 4Замена Ingress NGINX на Ingress Traefik ===== 
-kind: IngressRoute + 
-metadata: +<​code>​ 
-  name: my-ingressroute +kube1:~/webd-k8s# kubectl delete ​-f my-ingress.yaml -my-ns                    ​
-spec: +
-  entryPoints:​ +
-    ​web +
-  routes: +
-    ​match: Host(`htwebd.corpX.un`) +
-      kind: Rule +
-      services: +
-        ​name: my-webd +
-          port: 80+
 </​code>​ </​code>​
  
-  * [[Система Kubernetes#Gateway API]]+  * [[Система Kubernetes#ingress-traefik-controller]]
  
 <​code>​ <​code>​
-kube1:​~/​webd-k8s# ​cat my-gateway.yaml +kube1:​~/​webd-k8s# ​kubectl ​-n traefik logs pods/​traefik-<​TAB> 
-</code><​code>​ + 
-apiVersion: gateway.networking.k8s.io/​v1 +kube1:​~/​webd-k8s#​ cat my-ingress.yaml 
-kind: Gateway +... 
-metadata: +#              number8080 
-  name: my-gateway +              ​number80 
-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 +
-kindHTTPRoute +
-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>​
 +
 +===== Шаг 5. Замена Ingress на Gateway API =====
 +
 +  * [[Система Kubernetes#​Gateway API]]
 +
 +  * [[Система Kubernetes#​Traefik]]
 +
 +  * [[Система Kubernetes#​Envoy Gateway]]
 +
 +  * [[Система Kubernetes#​Gateway]]
 +  * [[Система Kubernetes#​HTTPRoute]]
как_и_чем_заменить_ingress_nginx.1771694811.txt.gz · Last modified: 2026/02/21 20:26 by val