Schritte zum Bereitstellen von Ingress-Nginx auf K8s

Schritte zum Bereitstellen von Ingress-Nginx auf K8s

Vorwort

Nachdem der K8S-Clusterdienst bereitgestellt wurde, müssen Sie einen Domänennamen für den externen Zugriff angeben. Zu diesem Zeitpunkt benötigen Sie Ingress-Nginx. Heute werde ich mit Ihnen teilen

1. Bereitstellung und Konfiguration von Ingress

1. Holen Sie sich die Konfigurationsdatei

#Die Datei wurde lokal heruntergeladen https://github.com/kubernetes/ingress-nginx/tree/nginx-0.20.0/deploy

2. Bereiten Sie das Bild vor

entpacken Sie ingress-nginx-nginx-0.20.0.zip
cd ingress-nginx-nginx-0.20.0/deploy/
vim mandatory.yaml #Sammlung anderer Dateien#Bearbeiten Sie die Datei mandatory.yaml und ändern Sie die Standard-Backend-Image-Adresse in die Alibaba Cloud-Image-Adresse (wie unten gezeigt).
Bild: registry.cn-hangzhou.aliyuncs.com/allinpay/defaultbackend-amd64:v1.5

Bildbeschreibung hier einfügen

3. Installation

kubectl apply -f obligatorisch.yaml 

Bildbeschreibung hier einfügen

#Warten Sie einen Moment und verwenden Sie den folgenden Befehl, um kubectl get namespace abzufragen
kubectl get pods -n ingress-nginx

Bildbeschreibung hier einfügen

4. Backend-Pod und -Dienst erstellen (Pod-B, Dienst-B)

vim deploy-demo.yaml
API-Version: v1
Art: Dienstleistung
Metadaten:
  Name: meineApp
  Namespace: Standard
Spezifikation:
  Wähler:
    App: meineApp
    Veröffentlichung: Kanarienvogel
  Häfen:
  - Name: http
    ZielPort: 80
    Anschluss: 80
--- 
 API-Version: Apps/v1
Art: Bereitstellung
Metadaten:
  Name: meineApp-Bereitstellung
  Namespace: Standard
Spezifikation:
  Replikate: 3
  Wähler:
    Übereinstimmungsetiketten:
      App: meineApp
      Veröffentlichung: Kanarienvogel
  Vorlage:
    Metadaten:
      Beschriftungen:
        App: meineApp
        Veröffentlichung: Kanarienvogel
    Spezifikation:
      Behälter:
      - Name: meineApp
        Bild: ikubernetes/myapp:v2
        Häfen:
        - Name: http
          ContainerPort: 80

#Anwendungskonfiguration kubectl apply -f deploy-demo.yaml
#Kubectl Get Pods anzeigen

Bildbeschreibung hier einfügen

5. Erstellen Sie Service-A

vim service-nodeport.yaml
API-Version: v1
Art: Dienstleistung
Metadaten:
  Name: ingress-nginx
  Namespace: ingress-nginx
  Beschriftungen:
    app.kubernetes.io/Name: ingress-nginx
    app.kubernetes.io/Teil von: ingress-nginx
Spezifikation:
  Typ: NodePort
  Häfen:
  - Name: http
    Anschluss: 80
    ZielPort: 80
    Protokoll: TCP
    KnotenPort: 30080
  - Name: https
    Port: 443
    ZielPort: 443
    Protokoll: TCP
    KnotenPort: 30443
  Wähler:
    app.kubernetes.io/Name: ingress-nginx
app.kubernetes.io/Teil von: ingress-nginx

#Anwendungskonfiguration kubectl apply -f service-nodeport.yaml

#Kubectl get svc -n ingress-nginx anzeigen

Bildbeschreibung hier einfügen

Zugriff in einem externen Browser: ip:30080

Bildbeschreibung hier einfügen

Der Grund für den Fehler liegt derzeit darin, dass keine Ingress-Regeln generiert werden, um den Ingress-Controller mit Dienst B zu verknüpfen.

6. Definieren Sie Ingress-Regeln

Definieren Sie Ingress-Regeln, die automatisch in nginx.conf des Ingress-Controllers (Pod) eingefügt werden.
Der Ingress-Controller ist direkt mit Dienst B verbunden, aber Ingress generiert dazwischen verschiedene Regeln.

vim ingress-myapp.yaml
API-Version: Erweiterungen/v1beta1
Art: Ingress
Metadaten:
  Name: ingress-myapp
  Namespace: Standard
  Anmerkungen:
    kubernetes.io/ingress.class: "nginx"
Spezifikation:
  Regeln:
  - Host: myapp.magedu.com
    http:
      Pfade:
      - Weg:
        Backend:
          Dienstname: meineApp
          ServicePort: 80

Zu diesem Zeitpunkt wird in der nginx.conf des Ingress-Controllers automatisch eine Serversegmentkonfiguration generiert, d. h. ein Feld für den virtuellen Nginx-Host, einschließlich der Upstream-Konfiguration usw.;
Upstream führt automatisch einen Proxy zum Backend-Pod (Pod-B) durch. Diese werden alle automatisch generiert, sodass eine automatische Konfigurationsgenerierung und automatische Konfigurationsänderung erreicht wird.
Sie müssen nur diese YAML-Datei ändern;

#Anwendungskonfiguration kubectl apply -f ingress-myapp.yaml

Bildbeschreibung hier einfügen

Konfigurieren der Hostdatei auf dem externen Host

Bildbeschreibung hier einfügen

Besuchen Sie es dann erneut im Browser und stellen Sie fest, dass auf den Backend-Pod zugegriffen werden kann

Bildbeschreibung hier einfügen

2. Verwenden Sie https

1. Erstellen Sie ein K8S-Zertifikat (beachten Sie, dass derselbe Namespace wie für das Backend-Pod verwendet wird).

kubectl -n Standardmäßig erstellen Sie geheimen TLS-Ingress-Test --key /home/centos/cert/cash432.key --cert /home/centos/cert/cash432.crt

2. Ingress-Regeln erstellen

Achten Sie auf den gleichen Namespace, sonst wird das Zertifikat nicht wirksam

vim ingress-myapp-cash432.yaml
API-Version: Erweiterungen/v1beta1
Art: Ingress
Metadaten:
  Name: ingress-myapp
  Namespace: Standard
  Anmerkungen:
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/secure-backends: „wahr“
    kubernetes.io/ssl-passthrough: „wahr“
Spezifikation:
  tls:
  - Gastgeber:
    - myapp.cash432.xyz
    geheimer Name: Ingress-Test
  Regeln:
  - Host: myapp.cash432.xyz
    http:
      Pfade:
      - Weg:
        Backend:
          Dienstname: meineApp
          ServicePort: 80

#Anwendungskonfiguration kubectl apply -f ingress-myapp-cash432.yaml

Browserzugriff

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Schritte zum Bereitstellen von Ingress-Nginx auf K8s. Weitere relevante Inhalte zum Bereitstellen von Ingress-Nginx auf K8s finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Der siebenschichtige Ingress-Routing-Mechanismus implementiert den Domänennamenzugriff auf k8s
  • Eine detaillierte Einführung in die Bereitstellung von Ingress in k8s und das Erstellen von Regeln

<<:  Eine Lösung für einen Fehler in IE6 mit jquery-multiselect

>>:  So installieren Sie Element UI und verwenden Vektorgrafiken in vue3.0

Artikel empfehlen

Verwendungsanweisungen für den Befehl „Docker Create“

Mit dem Befehl „Docker Create“ können Sie einen C...

Beispiele und bewährte Vorgehensweisen für die Seitennummerierung

<br />Struktur und Hierarchie reduzieren die...

Vorschau auf die neuen Funktionen von XHTML 2.0

<br />Bevor Browser die nächste Generation v...

CSS Acht auffällige HOVER-Effekt-Beispielcodes

1. Effekt-HTML senden <div id="senden-btn...

Eine kurze Erläuterung des Lazy-Loading-Attributmusters in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. On-Demand-Att...

MySQL 8.0.18 fügt Benutzer zur Datenbank hinzu und erteilt Berechtigungen

1. Es wird empfohlen, den Root-Benutzer für die A...

Grundlegendes zur CSS-Eigenschaft „transform-origin“

Vorwort Ich habe vor kurzem eine Feuerwerksanimat...

Sechs mit CSS3 implementierte Randübergangseffekte

Sechs EffekteImplementierungscode html <h1>...