Deployment eines nginx Ingress Controllers
2 Minuten Lesezeit
Allgemein
Diese Anleitung ist für die Installation eines nginx Ingress Controllers auf Kubernetes gedacht.
Bereitstellen
kubeconfig laden
Der erste Schritt besteht darin, die kubeconfig für den jeweiligen Cluster zu laden.
export KUBECONFIG=$pfad_zur_kubeconfig
nginx Ingress Controller installieren
Nun müssen Sie das Helm-Repository hinzufügen oder es aktualisieren, falls es bereits hinzugefügt wurde.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx && helm repo update
Als nächstes müssen Sie eine Datei “values.yaml” mit den folgenden Schlüssel/Wert-Paaren erstellen:
rbac:
create: true
controller:
publishService:
enabled: true
# Octavia config
config:
use-forwarded-headers: "true"
compute-full-forwarded-for: "true"
use-proxy-protocol: "true"
service:
annotations:
loadbalancer.openstack.org/proxy-protocol: "true"
#loadbalancer.openstack.org/keep-floatingip: "true" # Reserve the FloatingIP in OpenStack even after deleting the Helm chart
#service.beta.kubernetes.io/openstack-internal-load-balancer: "true" # Create a LoadBalancer in OpenStack without FloatingIP
#loadBalancerIP: <FloatingIP> # Here you can define an already reserved FloatingIP. When "openstack-internal-load-balancer" is true, this will define the private IPv4 address of the OpenStack LoadBalancer.
Load Balancer mit privater IP-Adresse
Sie können jede verfügbare IP-Adresse aus dem Knoten (1) Netzwerk 10.250.0.0/16 des jeweiligen PSKE-Clusters verwenden.
Wichtig!
Passen Sie gegebenenfalls die Version des Ingress-nginx Charts an. Dafür können Sie einfach die Versions-Flag aus dem unten folgenden Beispiel entfernen.
Stellen Sie sicher, dass die Softwareversionen und IP-Adressen entsprechend auf dem neuesten Stand sind und die Umgebung korrekt repräsentieren.
Installieren Sie nun den nginx Ingress Controller mit Helm und den Schlüssel/Wert-Paaren aus der values.yaml
:
helm install ingress-nginx ingress-nginx/ingress-nginx \
-f values.yaml \
--version 3.34.0 \
--create-namespace \
--namespace ingress-nginx
Jetzt können Sie IP-Whitelisting in einer Ingress-Ressource durchführen. Dazu fügen Sie der Ingress-Ressource die folgende Anmerkung hinzu:
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
annotations:
nginx.ingress.kubernetes.io/whitelist-source-range: "217.235.33.56/32,79.207.189.32/32"
Reservierte FloatingIP freigeben
Der beste Weg, eine reservierte FloatingIP freizugeben, ist, “loadbalancer.openstack.org/keep-floatingip” im Helm-Diagramm auf “false” zu setzen.
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--reuse-values \
--version 3.34.0 \
--namespace ingress-nginx \
--set controller.service.annotations.'loadbalancer\.openstack\.org/keep-floatingip'=false
Danach können Sie die Helmkarte löschen:
helm uninstall ingress-nginx \
--namespace ingress-nginx