Puncte:0

Rutare bazată pe mediu NGINX

drapel vn

Am o singură aplicație care rulează în mai multe clustere K8s; Să presupunem că există un serviciu frontend și două backend.

Folosesc proxy NGINX pentru solicitările de la serviciile frontend către serviciile de backend. Ediția obișnuită NGINX, nu NGINX+. Aici este nginx.conf:

Server {
    ....
    setați $back1 „<k8s hostname for the backend1 service>”;
    setați $back2 „<k8s hostname for the backend2 service>”;

    locație /înapoi1 {
        rescrie ^/back1/(.*)$ /$1 pauză;
        proxy_pass http://$back1;
    }
    
    <și același lucru pentru serviciul backend 2>
}

Deci, practic, ceea ce se întâmplă este că în aplicația mea frontend, am setat adresa serviciului backend la localhost/back1 și localhost/back2, solicitările lovesc NGINX, care le elimină înapoi1 și înapoi2 prefixe și apelează orice punct final pe care îl specific după în serviciile backend reale din K8s.

Deoarece am mai multe clustere K8s, numele de gazdă ale serviciilor de backend diferă și trebuie să țin cont de asta în conf. NGINX.

Întrebarea este: Există o modalitate ca NGINX să facă diferența între clusterele mele K8s? Poate pot trece o variabilă de mediu containerului care rulează serviciul meu de front-end și pot face un dacă declarație în nginx.conf. Ceva asemănător cu:

Server {
    dacă (${env} = „cluster1”) {
        set $back1 = "<nume gazdă cluster1>"
    }
    dacă (${env} = „cluster2”) {
        set $back1 = "<nume gazdă cluster2>"
    }
}

Sau dacă pot executa o comandă shell în conf nginx pentru a obține numele de gazdă și a scrie blocuri similare if.

Aș aprecia orice ajutor în această chestiune!

Puncte:0
drapel vn

Am mers pe o altă cale - prin șabloane, variabile de mediu și utilitarul envsubst care se livrează în cele mai recente imagini docker nginx.

În șablon:

setați $upstream_back1 „${BACK1}”;
setați $upstream_back2 „${BACK2}”;

În Dockerfile

RUN envsubst < șablonul dvs. > /etc/nginx/nginx.conf

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.