Ana içeriğe geç

Entegre Wallarm modülleriyle NGINX Ingress controller'ı yükseltme

Bu talimatlar, dağıtılmış Wallarm NGINX tabanlı Ingress Controller'ı en son 6.x sürümüne yükseltme adımlarını açıklar.

Ömrü dolmuş 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.8

  • 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 and their corresponding hostnames (if any) listed below. This is needed 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

    node-data0.us1.wallarm.com - 34.96.64.17
    node-data1.us1.wallarm.com - 34.110.183.149
    us1.api.wallarm.com - 35.235.66.155
    34.102.90.100
    34.94.156.115
    35.235.115.105
    
    node-data1.eu1.wallarm.com - 34.160.38.183
    node-data0.eu1.wallarm.com - 34.144.227.90
    api.wallarm.com - 34.90.110.226
    

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

helm repo update wallarm

Adım 2: Gelecek tüm K8s manifest değişikliklerini inceleyin

Ingress controller davranışının beklenmedik şekilde değişmesini önlemek için, Helm Diff Plugin kullanarak gelecek tüm K8s manifest değişikliklerini inceleyin. Bu eklenti, dağıtılmış Ingress controller sürümünün K8s manifestleri ile yenisinin manifestleri arasındaki farkı çıktılar.

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 6.5.1 -f <PATH_TO_VALUES>
    
    • <RELEASE_NAME>: Ingress controller chart’ına ait Helm sürümünün adı.
    • <NAMESPACE>: Ingress controller’ın dağıtıldığı namespace.
    • <PATH_TO_VALUES>: Ingress Controller 6.x ayarlarını içeren values.yaml dosyasının yolu. Önceki sürümün dosyasını yeniden kullanabilir, Tarantool'dan wstore'a geçiş için güncelleyebilirsiniz.

      Helm değerleri yeniden adlandırıldı: controller.wallarm.tarantoolcontroller.wallarm.postanalytics. Postanalytics belleğini açıkça ayırdıysanız, bu değişikliği values.yaml içinde uygulayın.

  3. Çalışan servislerin kararlılığını etkileyebilecek hiçbir değişiklik olmadığından emin olun ve stdout’taki hataları dikkatlice inceleyin.

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

Adım 3: Ingress controller’ı yükseltin

Değişiklikleri üretime almadan önce doğrulamak için NGINX Ingress Controller'ı önce bir hazırlık (staging) Kubernetes ortamında yükseltmeniz önerilir.

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

helm upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 6.5.1 -f <PATH_TO_VALUES>
  • <RELEASE_NAME>: Ingress controller chart’ına ait Helm sürümünün adı

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

  • <PATH_TO_VALUES>: Ingress Controller 6.x ayarlarını içeren values.yaml dosyasının yolu. Önceki sürümün dosyasını yeniden kullanabilir, Tarantool'dan wstore'a geçiş için güncelleyebilirsiniz:

    Helm değerleri yeniden adlandırıldı: controller.wallarm.tarantoolcontroller.wallarm.postanalytics. Postanalytics belleğini açıkça ayırdıysanız, bu değişikliği values.yaml içinde uygulayın.

Adım 4: Yükseltilmiş Ingress controller’ı test edin

  1. Helm chart sürümünün yükseltildiğinden emin olun:

    helm list -n <NAMESPACE>
    

    Burada <NAMESPACE>, Ingress controller ile Helm chart’ın dağıtıldığı namespace’tir.

    Chart sürümü wallarm-ingress-6.5.1 ile karşılık gelmelidir.

  2. Wallarm pod’unu alın:

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

    Pod durumu STATUS: Running ve READY: N/N olmalıdır:

    NAME                                                                  READY   STATUS    RESTARTS   AGE
    ingress-controller-wallarm-ingress-controller-6d659bd79b-952gl        3/3     Running   0          8m7s
    ingress-controller-wallarm-ingress-controller-wallarm-wstore-7ddmgbfm 3/3     Running   0          8m7s
    

    5.x veya daha düşük bir sürümden yükseltme yapıyorsanız, artık ayrı bir Tarantool pod’u olmadığını fark edeceksiniz; wstore, ana <CHART_NAME>-wallarm-ingress-controller-xxx pod’u içinde çalışır.

  3. Wallarm Ingress controller adresine test amaçlı Yol Geçişi saldırısı içeren isteği gönderin:

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

    Yeni sürümün çözümünün kötü amaçlı isteği önceki sürümde olduğu gibi işlediğini kontrol edin.

Yükseltme hazırlık ortamında başarıyla doğrulandıktan sonra üretim ortamını yükseltmeye devam edin.