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

So erstellen Sie einen Nginx-Server mit Docker

Betriebsumgebung: MAC Docker-Version: Docker vers...

Grafisches Tutorial zur Installation und Konfiguration von CentOS 7

In diesem Artikel wird das ausführliche Installat...

MySQL-Startfehler InnoDB: Sperren nicht möglich/ibdata1-Fehler

Beim Starten von MySQL in einer OS X-Umgebung wir...

CSS3 realisiert den Animationseffekt der Lotusblüte

Schauen wir uns zunächst die Wirkung an: Dieser E...

Ursachen und Lösungen für die Front-End-Ausnahme 502 Bad Gateway

Inhaltsverzeichnis 502 Bad Gateway Fehlerbildung ...

CnBlogs - Teilen im benutzerdefinierten Blogstil

Nachdem ich die halbe Nacht daran gearbeitet hatt...

Lösung für Überlauf: versteckter Fehler in CSS

Ursache des Fehlers Als ich heute ein Karussell s...

Zusammenfassung grundlegender SQL-Anweisungen in der MySQL-Datenbank

Dieser Artikel beschreibt anhand von Beispielen d...

JavaScript-Canvas zum Erzielen eines farbenfrohen Uhreffekts

Verwenden Sie Leinwand, um eine bunte Uhr zu schr...