Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:kubernetes:ingress-nginx-loadbalancer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:kubernetes:ingress-nginx-loadbalancer [2022/04/23 13:24] – angelegt markoit-wiki:kubernetes:ingress-nginx-loadbalancer [2025/02/19 13:17] (aktuell) – gelöscht marko
Zeile 1: Zeile 1:
-====== Ingress Nginx Loadbalancer ====== 
-==== Installation Kubernetes Nginx Ingress Controller ==== 
-Zur einfachen Installation des Kubernetes Nginx Ingress Controllers solltest Du Helm verwenden. Helm bezeichnet sich selbst als Paketmanager für Kubernetes-Anwendungen. Neben der Installation bietet Helm auch einfache Updates seiner Anwendungen. Wie auch bei kubectl brauchst Du nur die K8s-Config, um direkt loszulegen: 
-<code bash> 
-    $ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx 
-    $ helm repo update 
-    $ helm install my-ingress ingress-nginx/ingress-nginx  
-</code> 
- 
----- 
-NOTES: 
-The ingress-nginx controller has been installed. 
-It may take a few minutes for the LoadBalancer IP to be available. 
-You can watch the status by running 'kubectl --namespace default get services -o wide -w my-ingress-ingress-nginx-controller' 
- 
-An example Ingress that makes use of the controller: 
-  apiVersion: networking.k8s.io/v1 
-  kind: Ingress 
-  metadata: 
-    name: example 
-    namespace: foo 
-  spec: 
-    ingressClassName: nginx 
-    rules: 
-      - host: www.example.com 
-        http: 
-          paths: 
-            - pathType: Prefix 
-              backend: 
-                service: 
-                  name: exampleService 
-                  port: 
-                    number: 80 
-              path: / 
-    # This section is only required if TLS is to be enabled for the Ingress 
-    tls: 
-      - hosts: 
-        - www.example.com 
-        secretName: example-tls 
- 
-If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided: 
- 
-  apiVersion: v1 
-  kind: Secret 
-  metadata: 
-    name: example-tls 
-    namespace: foo 
-  data: 
-    tls.crt: <base64 encoded cert> 
-    tls.key: <base64 encoded key> 
-  type: kubernetes.io/tls 
---- 
- 
-Mit diesen Befehlen startet Helm alle nötigen Komponenten im default Namespace und gibt diesen das Label my-ingress. Für den Nginx Ingress Controller wird ein deployment, ein replicaset und ein pod erstellt. Alle http/s-Anfragen müssen an diesen pod weitergeleitet werden, damit dieser anhand von vHosts und URI-Pfaden die Anfragen sortieren kann. Dafür wurde ein service vom Typ loadbalancer erstellt, welcher auf eine öffentliche IP lauscht und den ankommenden Traffic auf den Ports 443 und 80 an unseren pod weiterleitet. Ein ähnliches Konstrukt wird auch für das default-backend angelegt, auf welche ich hier aber nicht näher eingehe. Damit Du den Überblick nicht verlierst, kannst Du Dir alle beteiligten Komponenten mit kubectl anzeigen lassen: 
-<code bash> 
-    $ kubectl get all -l app.kubernetes.io/instance=my-ingress 
-</code> 
- 
- 
- 
- 
- 
- 
  
it-wiki/kubernetes/ingress-nginx-loadbalancer.1650720260.txt.gz · Zuletzt geändert: 2022/04/23 13:24 von marko