Erste Schritte mit dem NGINX Ingress Operator auf Red Hat OpenShift

NGINX | 30. April 2020

Im Rahmen unserer Partnerschaft mit Red Hat konzentrieren wir uns weiterhin darauf, Unternehmenskunden zu unterstützen, die eine leistungsstarke, skalierbare und langfristige Lösung für die DevOps-kompatible Bereitstellung von Diensten in OpenShift benötigen. Der NGINX Ingress Operator für OpenShift ist ein unterstützter und zertifizierter Mechanismus zur Bereitstellung des NGINX Plus Ingress Controller für Kubernetes parallel zum Standard-Router in einer OpenShift-Umgebung. Er bietet eine Installation per Mausklick und automatische Upgrades. Sie können den Operator Lifecycle Manager (OLM) für die Installation, das Upgrade und die Konfiguration des NGINX Ingress Operator nutzen.

Sie fragen sich, warum Sie den NGINX Plus Ingress Controller zusätzlich zum Standard-Router verwenden sollten? Erfahren Sie in unserem Blogbeitrag „Der Mehrwert von Red Hat + NGINX“, wie unsere Partnerschaft eine sichere, skalierbare und unterstützte Anwendungsbereitstellung ermöglicht.

Diese Schritt-für-Schritt-Anleitung enthält alles, was Sie für die ersten Schritte mit dem NGINX Ingress Operator benötigen. Bevor Sie beginnen, stellen Sie sicher, dass Sie über Administratorzugriff auf eine OpenShift-Clusterumgebung verfügen, auf der OpenShift 4.3 oder höher ausgeführt wird.

Installieren des Operators

Hier ist ein Video, das die Installation des NGINX Ingress Operators zeigt, gefolgt von einer schriftlichen Zusammenfassung mit Screenshots.

Wir installieren den NGINX Ingress Operator über die OpenShift-Konsole.

  1. Melden Sie sich als Administrator bei der OpenShift-Konsole an.
  2. Klicken Sie in der linken Navigationsleiste auf „Operators“ und anschließend auf „OperatorHub“. Geben Sie nginx in das Suchfeld ein und klicken Sie auf die angezeigte Kachel „Nginx Ingress Operator“.
  3. Nachdem Sie die Produktinformationen geprüft haben, klicken Sie auf die Schaltfläche „Installieren“.
  4. Geben Sie auf der daraufhin geöffneten Seite „Operator-Abonnement erstellen“ den Cluster-Namespace an, in dem der Operator installiert werden soll (in diesem Beispiel nginx-ingress). Klicken Sie außerdem unter „Automatisch“ auf das Optionsfeld „Genehmigungsstrategie“, um automatische Updates der ausgeführten Operator-Instanz ohne manuelle Genehmigung durch den Administrator zu aktivieren. Klicken Sie auf die Schaltfläche „Abonnieren“.
  5. Führen Sie nach Abschluss der Installation diesen Befehl in einem Terminal aus, um zu überprüfen, ob der Operator ausgeführt wird:
# oc get pods –n nginx-ingressNAME                                     READY   STATUS    RESTARTS   AGE
nginx-ingress-operator-dd546d869-xxxxx   1/1     Running   0          7m29s
  1. Klicken Sie in der linken Navigationsspalte auf „Installierte Operatoren“. Klicken Sie auf der daraufhin geöffneten Seite in der Spalte „Bereitgestellte APIs“ auf den Link „NginxIngressController“. NginxIngressController ist eine benutzerdefinierte Ressource, die der Operator verwendet, um den NGINX Plus Ingress Controller im OpenShift-Cluster bereitzustellen.
  2. Fügen Sie auf der daraufhin geöffneten Seite ein Manifest wie im folgenden Beispiel in das Textfeld ein und klicken Sie auf die Schaltfläche Erstellen, um den NGINX Plus Ingress Controller für Kubernetes bereitzustellen. Beachten Sie, dass wir ein Secret mit einem TLS-Zertifikat und einem Schlüssel in die Felder defaultSecret und wildcardTLS einbetten. Dies ermöglicht TLS-Terminierung und -Passthrough, ohne dass das Secret in die Ingress-Richtlinien aufgenommen werden muss. Für die Konfiguration des NGINX Plus Ingress Controllers für Kubernetes stehen zahlreiche Optionen zur Verfügung, die in unserem GitHub-Repository aufgeführt sind.
apiVersion: k8s.nginx.org/v1alpha1kind: NginxIngressController
metadata:
  name: my-nginx-ingress-controller
  namespace: nginx-ingress
spec:
  enableCRDs: true
  image:
    pullPolicy: Always
    repository: registry.hub.docker.com/nginx/nginx-ingress
    tag: edge
  nginxPlus: false
  serviceType: LoadBalancer
  type: deployment
  replicas: 2
  defaultSecret: nginx-ingress/default-server-secret
  wildcardTLS: default/app-secret
  configMapData:
    error-log-level: debug
  enableTLSPassthrough: true
  globalConfiguration: nginx-ingress/nginx-configuration
  1. Führen Sie die folgenden Befehle in einem Terminal aus, um die Bereitstellung zu überprüfen. Wie in der Ausgabe zu sehen ist, wurden mit dem im vorherigen Schritt verwendeten Manifest zwei Replikate des NGINX Plus Ingress Controllers bereitgestellt und über einen LoadBalancer-Dienst verfügbar gemacht. (Die Ausgabe des Befehls get ist zur besseren Lesbarkeit auf mehrere Zeilen verteilt.)
# oc get pods -n nginx-ingressNAME                                          READY  STATUS   RESTARTS  AGE
my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
my-nginx-ingress-controller-579f455d7d-xxxxx  1/1    Running  0         5m53s
nginx-ingress-operator-dd546d869-xxxxx        1/1    Running  0         56m

# oc get svc –n nginx-ingress
my-nginx-ingress-controller      LoadBalancer   172.xx.48.254    <pending>  ...   
nginx-ingress-operator-metrics   ClusterIP      172.xx.209.190   <none>     ...   

    ... 80:32028/TCP,443:31973/TCP   10m
    ... 80:32028/TCP,443:31973/TCP   10m
  1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der NGINX Plus Ingress Controller auf Anfragen reagiert. Ersetzen Sie public_IP_address durch die externe IP-Adresse des LoadBalancer-Dienstes, über den der NGINX Plus Ingress Controller erreichbar ist. Beachten Sie, dass der Befehl zu diesem Zeitpunkt 404 Not Found zurückgibt. Das liegt daran, dass wir noch keine Ingress-Ressource konfiguriert und bereitgestellt haben, um den Datenverkehr an die Backend-Pods weiterzuleiten. Weitere Informationen finden Sie in unserer Dokumentation.
# curl public_IP_address <html> 
<head><title>404 Not Found</title></head> 
<body bgcolor="white"> 
<center><h1>404 Not Found</h1></center> 
<hr><center>nginx/1.13.4</center> 
</body> 
</html>
  1. Beachten Sie, dass Endbenutzer mehrere Manifeste der Ressource NginxIngressController einreichen können und für jedes davon eine separate Bereitstellung erstellt wird. Der Operator unterstützt außerdem Bereitstellungen in verschiedenen Namespaces. Der Namespace kann im Abschnitt metadata des Manifests angegeben werden.

Wie geht es weiter?

Der NGINX Ingress Operator unterstützt Sie bei der Verwaltung Ihrer Bereitstellung des NGINX Plus Ingress Controllers, insbesondere bei folgenden Aufgaben:

  • Konfiguration – Starten Sie eine einfache Bereitstellung mit nur wenigen Eingabeparametern und einem einzigen Manifest
  • Skalierung – Replikate nahtlos hinzufügen und entfernen
  • Upgrades – Nutzen Sie Rolling Updates ohne Ausfallzeiten
  • Deinstallation – Stellen Sie sicher, dass alle Operator- und Kubernetes-Ingress-Controller-Objekte ordnungsgemäß und sicher entfernt werden

Nachdem Sie den NGINX Plus Ingress Controller eingerichtet und bereitgestellt haben, lesen Sie unsere Dokumentation und besuchen Sie unser GitHub-Repository, um die erweiterten Funktionen von NGINX Plus in OpenShift zu nutzen.

Sie sind noch kein Kunde? Wenn Sie NGINX Plus und den Ingress Controller ausprobieren möchten, starten Sie noch heute Ihre kostenlose 30-Tage-Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen.

Der Mehrwert von Red Hat + NGINX

Grafik, die drei Vorteile des gemeinsamen Einsatzes von Red Hat- und NGINX-Lösungen zeigt: Anwendungen schützen, Unternehmen skalieren und Visionen verwirklichen


Teilen
Schlagwörter: F5 NGINX, 2020, Tech

Über den Autor

Ähnliche Blogbeiträge

Die Zukunft von NGINX: Zurück zu unseren Open-Source-Wurzeln
NGINX | 23.08.2022

Die Zukunft von NGINX: Zurück zu unseren Open-Source-Wurzeln

Beim NGINX Sprint 2022 besinnen wir uns auf unsere Open-Source-Wurzeln. Erfahren Sie mehr über die Initiativen, die wir im kommenden Jahr verfolgen, und teilen Sie uns mit, was Sie sich wünschen.

Ein Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Ermitteln Sie Ihre Anforderungen
NGINX | 08.09.2021

Ein Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Ermitteln Sie Ihre Anforderungen

Ein Ingress-Controller kann eines der leistungsstärksten Tools in Ihrem Kubernetes-Stack sein. Erfahren Sie, wie Sie Ihre Ingress-Anforderungen ermitteln, um die beste Option auszuwählen.

Bereitstellung des NGINX Ingress Controllers auf Amazon EKS: So haben wir getestet
NGINX | 16.08.2021

Bereitstellung des NGINX Ingress Controllers auf Amazon EKS: So haben wir getestet

Wir haben kürzlich den Lösungsleitfaden zum NGINX Ingress Controller um Empfehlungen zur Dimensionierung für Amazon Elastic Kubernetes Service (EKS) ergänzt. In diesem Blogbeitrag erläutern wir, wie wir diese Empfehlungen erarbeitet haben, und stellen Ihnen alle Informationen zur Verfügung, die Sie benötigen, um selbst ähnliche Tests durchzuführen.

Protokollierung des Datenverkehrs zwischen NGINX und Upstream-Servern bei CDN77
NGINX | 12.12.2018

Protokollierung des Datenverkehrs zwischen NGINX und Upstream-Servern bei CDN77

Bei der Fehlersuche bei Datenverkehrsproblemen zwischen NGINX und Upstream-Servern konnte CDN77 die benötigten Daten nur aus dem Fehlerprotokoll mit aktivierter Debug-Ausgabe beziehen, was die Leistung beeinträchtigt und riesige Dateien erzeugt. Daher entwickelte das Team ein neues benutzerdefiniertes Modul, das ausschließlich die benötigten Daten protokolliert.

Ankündigung von NGINX Plus R16
NGINX | 05.09.2018

Ankündigung von NGINX Plus R16

NGINX Plus R16 ist eine einheitliche, elastische Ingress- und Egress-Schicht für Anwendungen, die die Funktionen eines Load Balancers, API-Gateways und einer WAF vereint und neue Features wie clusterfähige Ratenbegrenzung, Schlüssel-Wert-Speicher, „Random with Two Choices“, verbessertes UDP-Load-Balancing und vieles mehr bietet.

5 Gründe für den Umstieg auf softwarebasiertes Load Balancing
NGINX | 13.10.2016

5 Gründe für den Umstieg auf softwarebasiertes Load Balancing

Entdecken Sie fünf Gründe für den Wechsel zu einem softwarebasierten Load Balancer wie NGINX Plus, darunter Kosteneinsparungen, die Einführung von DevOps und eine einheitliche Lösung für alle Umgebungen.