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/26 12:38]
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, но, это не точно:)
  
 ===== Техническое задание ===== ===== Техническое задание =====
  
-  * Развернуть ​HashiCorp Vault и Mozilla Sops для работы с секретами предприятия +  * Развернуть ​альтернативные решения, реализующие Ingress API 
-  * Интегрировать их с пайплайнами Ansible, Gitlab и Kubernetes+  * Проверить работу приложений,​ использующих Ingress API 
 +  * Развернуть решения, ​реализующие Gateway API 
 +  * Провести миграцию ​приложений на Gateway API
  
 ===== Запись вебинара ===== ===== Запись вебинара =====
  
-  * Тэги: ​+  * Тэги: ​Ingress, NGINX, ​
  
 ===== Шаг 1. Что у нас есть, для начала ===== ===== Шаг 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.1772098695.txt.gz · Last modified: 2026/02/26 12:38 by val