Ana içeriğe geç

Wallarm modülleri entegre edilmiş NGINX Ingress controller'ın yükseltilmesi

Bu talimatlar, dağıtılmış Wallarm NGINX tabanlı Ingress Controller 4.x'in Wallarm node 5.0 içeren yeni sürüme nasıl yükseltileceğini açıklar.

Ömrünü tamamlamış node'u (3.6 veya daha düşük) yükseltmek için lütfen farklı talimatları kullanın.

Gereksinimler

  • Kubernetes platform version 1.26-1.30

  • Helm package manager

  • Compatibility of your services with the Community Ingress NGINX Controller version 1.11.5

  • Access to the account with the Administrator role in Wallarm Console for the US Cloud or EU Cloud

  • Access to https://us1.api.wallarm.com for working with US Wallarm Cloud or to https://api.wallarm.com for working with EU Wallarm Cloud

  • Access to https://charts.wallarm.com to add the Wallarm Helm charts. Ensure the access is not blocked by a firewall

  • Access to the Wallarm repositories on Docker Hub https://hub.docker.com/r/wallarm. Make sure the access is not blocked by a firewall

  • Access to the IP addresses below for downloading updates to attack detection rules and API specifications, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers

    34.96.64.17
    34.110.183.149
    35.235.66.155
    34.102.90.100
    34.94.156.115
    35.235.115.105
    
    34.160.38.183
    34.144.227.90
    34.90.110.226
    

Adım 1: Wallarm Helm grafik deposunu güncelleyin

helm repo update wallarm

Adım 2: Tüm gelecek K8s manifest değişikliklerini gözden geçirin

Beklenmeyen Ingress controller davranışı değişikliklerini önlemek için, dağıtılmış Ingress controller sürümü ile yeni sürüm arasındaki farkları gösteren Helm Diff Plugin kullanılarak tüm gelecek K8s manifest değişikliklerini gözden geçirin.

Eklentiyi yüklemek ve çalıştırmak için:

  1. Eklentiyi yükleyin:

    helm plugin install https://github.com/databus23/helm-diff
    
  2. Eklentiyi çalıştırın:

    helm diff upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 5.3.0 -f <PATH_TO_VALUES>
    
    • <RELEASE_NAME>: Ingress controller grafiğini içeren Helm sürümünün adı
    • <NAMESPACE>: Ingress controller'ın dağıtıldığı namespace
    • <PATH_TO_VALUES>: Ingress controller 5.0 ayarlarını tanımlayan values.yaml dosyasının yolu - önceki Ingress controller sürümünü çalıştırmak için oluşturulmuş olanı kullanabilirsiniz
  3. Çalışan servislerin kararlılığını etkileyecek hiçbir değişiklik olmadığından emin olun ve stdout'daki hataları dikkatle inceleyin.

    Eğer stdout boşsa, values.yaml dosyasının geçerli olduğundan emin olun.

Adım 3: Ingress controller'ı güncelleyin

Dağıtılmış NGINX Ingress controller'ı yükseltin:

helm upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 5.3.0 -f <PATH_TO_VALUES>
  • <RELEASE_NAME>: Ingress controller grafiğini içeren Helm sürümünün adı

  • <NAMESPACE>: Ingress controller'ın dağıtıldığı namespace

  • <PATH_TO_VALUES>: Ingress controller 5.0 ayarlarını tanımlayan values.yaml dosyasının yolu - önceki Ingress controller sürümünü çalıştırmak için oluşturulmuş olanı kullanabilirsiniz

Adım 4: Güncellenmiş Ingress controller'ı test edin

  1. Helm grafiğinin sürümünün güncellendiğinden emin olun:

    helm list -n <NAMESPACE>
    

    Burada <NAMESPACE>, Ingress controller grafiğinin dağıtıldığı namespace'tir.

    Grafik sürümü wallarm-ingress-5.3.0 ile eşleşmelidir.

  2. Pod listesini alın:

    kubectl get pods -n <NAMESPACE> -l app.kubernetes.io/name=wallarm-ingress
    

    Her pod'un durumu STATUS: Running veya READY: N/N olmalıdır. Örneğin:

    NAME                                                              READY     STATUS    RESTARTS   AGE
    ingress-controller-nginx-ingress-controller-675c68d46d-cfck8      3/3       Running   0          5m
    ingress-controller-nginx-ingress-controller-wallarm-tarantljj8g   4/4       Running   0          5m
    
  3. Wallarm Ingress controller adresine test Path Traversal saldırısı ile istek gönderin:

    curl http://<INGRESS_CONTROLLER_IP>/etc/passwd
    

    Yeni sürümün, kötü niyetli isteği önceki sürümde olduğu gibi işlediğini kontrol edin.