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:17]
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]]
  
-kube1:~/traefik# kubectl ​get ingressclasses+  * [[Решение 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>​
  
-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#​ingress-traefik-controller]]
  
 <​code>​ <​code>​
-kube1:​~/​webd-k8s# ​cat my-gateway.yaml +kube1:​~/​webd-k8s# ​kubectl ​-n traefik logs pods/traefik-<TAB>
-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.corp13.un"​ +
-    protocol: HTTPS +
-    port: 8443 +
-    tls: +
-      mode: Terminate +
-      certificateRefs:​ +
-        - kind: Secret +
-          name: htwebd-tls+
  
-kube1:​~/​webd-k8s#​ cat my-httproute.yaml +kube1:​~/​webd-k8s#​ cat my-ingress.yaml 
-apiVersion: gateway.networking.k8s.io/v1 +... 
-kindHTTPRoute +#              number8080 
-metadata+              ​number80 
-  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.1771694245.txt.gz · Last modified: 2026/02/21 20:17 by val