Öffentlich zugängliche Anwendungen mit Ingress
Machen Sie mehrere Anwendungen in Ihrem Red Hat® OpenShift® on IBM Cloud® öffentlich zugänglich, indem Sie Ingress-Ressourcen erstellen, die vom Ingress-Controller verwaltet werden.
Voraussetzungen
Bevor Sie mit der Verwendung mit Ingress beginnen, überprüfen Sie die folgenden Voraussetzungen.
- Für die Einrichtung von Ingress sind die folgenden IBM Cloud IAM-Rollen erforderlich:
- Administratorplattform-Zugangsrolle für den Cluster in IBM Cloud Kubernetes Service.
- Manager Service Access Rolle in allen IBM Cloud Kubernetes Service NamespacesRed Hat OpenShift Projekte).
- Wenn eine Zone ausfällt, treten möglicherweise sporadisch Fehler in Anforderungen an Apps auf, die vom Ingress-Controller in dieser Zone zugänglich gemacht werden.
- Um eine hohe Verfügbarkeit zu gewährleisten, werden mindestens zwei Workerknoten pro Zone empfohlen.
- VPC-Cluster: Erlauben Sie Verkehrsanfragen, die von Ingress an Knoten-Ports auf Ihren Arbeitsknoten weitergeleitet werden.
- VPC-Multizonen-Cluster: Wenn Sie einen Cluster in der Befehlszeilenschnittstelle (CLI) erstellt und später mit dem Befehl "
ibmcloud oc zone add vpc-gen2
manuell Zonen zu Ihren Worker-Pools hinzugefügt haben, müssen Sie den VPC-Load-Balancer, der den Ingress-Controller offenlegt, aktualisieren, um Subnetze für alle Zonen in Ihrem Cluster einzubeziehen. - Klassische Cluster: Aktivieren Sie eine VRF-Funktion (Virtual Router Function) für Ihr IBM Cloud-Infrastrukturkonto. Informationen zum Aktivieren von VRF finden
Sie im Abschnitt VRF aktivieren. Mit dem Befehl
ibmcloud account show
können Sie überprüfen, ob VRF bereits aktiviert ist. Wenn Sie VRF nicht aktivieren können oder möchten, aktivieren Sie VLAN-Spanning. Wenn VRF oder VLAN Spanning aktiviert ist, kann der Ingress-Controller Pakete an verschiedene Teilnetze im Konto weiterleiten.
Öffentliche Freigabe von Anwendungen in Clustern mit einem Endpunkt für öffentliche Cloud-Dienste
Klassische Cluster Virtual Private Cloud
Wenn Ihr Cluster auf einer klassischen Infrastruktur erstellt wurde oder wenn Ihr Cluster auf einer VPC-Infrastruktur erstellt wurde und Sie bei der Erstellung den Endpunkt für den öffentlichen Cloud-Dienst aktiviert haben, können Sie den standardmäßigen öffentlichen Ingress-Controller verwenden, um Anwendungen in Ihrem Cluster für den Empfang von Anforderungen aus dem öffentlichen Netzwerk freizugeben.
Vorbereitende Schritte:
- Überprüfen Sie die Voraussetzungen für Ingress.
- Rufen Sie Ihren Red Hat OpenShift-Cluster auf.
Schritt 1: Apps bereitstellen und App-Services erstellen
Stellen Sie als Erstes Ihre Apps bereit und erstellen Sie Kubernetes Services und machen Sie diese zugänglich.
-
Stellen Sie die App im Cluster bereit. Stellen Sie sicher, dass Sie eine Bezeichnung zu Ihrer Bereitstellung im Metadatenabschnitt Ihrer Konfigurationsdatei hinzufügen, z. B.
app: code
. Diese Bezeichnung ist zur Identifizierung aller Pods erforderlich, in denen Ihre App ausgeführt wird, damit sie in den Lastausgleich aufgenommen werden können. -
Erstellen Sie für jede App-Bereitstellung, die Sie zugänglich machen möchten, einen Kubernetes-Service
ClusterIP
. Ihre App muss durch einen Kubernetes Service zugänglich gemacht werden, damit sie in den Ingress-Lastausgleich einbezogen wird.
oc expose deploy <app_deployment_name> --name my-app-svc --port <app_port> -n <namespace>
Schritt 2: TLS-Terminierung mit TLS-Zertifikaten und geheimen Schlüsseln für Kubernetes einrichten
Ihr TLS-Zertifikat muss als geheimer Kubernetes-Schlüssel in jedem Namensbereich gespeichert werden, in dem Ihre Apps vorhanden sind.
-
Informationen zur Verwendung der von IBMverwalteten Ingress-Domäne finden Sie unter TLS-geheime Schlüssel für die von IBMbereitgestellte Ingress-Unterdomäne einrichten.
-
Informationen zur Verwendung einer selbst erstellten Domäne, z. B. einer Domäne, die bei einem externen Provider registriert ist, finden Sie unter Geheime TLS-Schlüssel für angepasste Unterdomänen einrichten.
Schritt 3: Ingress-Ressource erstellen
Ingress-Ressourcen definieren die Routing-Regeln, mit denen der Ingress-Controller Datenverkehr an Ihren App-Service weiterleitet.
-
Definieren Sie eine Konfigurationsdatei für die Ingress-Ressource, die die von IBM bereitgestellte Domäne oder Ihre angepasste Domäne für das Weiterleiten von eingehendem Netzverkehr an die zuvor erstellten Services verwendet.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: myingressresource spec: tls: - hosts: - <domain> secretName: <secret_name> rules: - host: <domain> http: paths: - path: /<app1_path> pathType: Prefix backend: service: name: test port: number: 80 - path: /<app2_path> backend: service: name: <app2_service> port: number: 80
tls
- Wenn Sie TLS verwenden wollen, schließen Sie diesen TLS-Abschnitt in Ihre Ressource ein. Ersetzen Sie
<domain>
durch Ihre Unterdomäne. Verwenden Sie*
nicht für Ihren Host oder lassen Sie die Hosteigenschaft leer, um Fehlschläge während der Ingress-Erstellung zu verhindern. Ersetzen Sie<tls_secret_name>
durch den geheimen Schlüssel, den Sie zuvor erstellt haben und der Ihr TLS-Zertifikat und Ihren Schlüssel für eine angepasste Domäne enthält, oder durch den geheimen TLS-Schlüssel, der automatisch für eine von IBM bereitgestellte Unterdomäne generiert wurde. host
- Ersetzen Sie
<domain>
durch die von IBM bereitgestellte Ingress-Unterdomäne oder Ihre angepasste Domäne. If your cluster has multiple projects where apps are exposed, one Ingress resource is required per project. Sie können in jeder Ressource dieselbe Unterdomäne oder unterschiedliche Unterdomänen verwenden. Wenn Sie beispielsweise eine Platzhalterdomäne verwenden, können Sie eine Platzhalterunterdomäne an den Anfang der Domäne anhängen, wie z. B.subdomain1.custom_domain.net
odersubdomain1.mycluster-<hash>-0000.us-south.containers.appdomain.cloud
. Verwenden Sie nicht * für Ihren Host oder lassen Sie die Hosteigenschaft leer, um Fehler während der Ingress-Erstellung zu verhindern. path
- Ersetzen Sie "
<app_path>
durch den Pfad, den Ihre Anwendung abfragt. Der Pfad wird an die von IBM bereitstellte Domäne oder Ihre angepasste Domäne angehängt, um eine eindeutige Route zu Ihrer App zu erstellen. Wenn Sie diese Route in einen Web-Browser eingeben, wird der Netzverkehr an den Ingress-Controller weitergeleitet. Der Ingress-Controller sucht den zugehörigen Service und der Ingress-Controller sendet Netzverkehr an den Service. Daraufhin leitet der Service den Datenverkehr an die Pods weiter, in denen die App ausgeführt wird. Viele Apps überwachen einen bestimmten Pfad nicht, verwenden jedoch den Stammverzeichnispfad und einen bestimmten Port. In diesem Fall definieren Sie den Stammverzeichnispfad als/
und geben keinen individuellen Pfad für Ihre App an. Geben Sie fürhttp://domain/
als Pfad/
ein. Geben Sie fürhttp://domain/app1_path
als Pfad/app1_path
ein. pathType
- Die Methode zum Abgleich des URL-Pfads. Unterstützte Werte sind
ImplementationSpecific
,Exact
oderPrefix
. Weitere Informationen und Beispiele zu den einzelnen Pfadarten finden Sie in der Kubernetes. name
- Ersetzen Sie
<app1_service>
,<app2_service>
usw. durch den Namen der Services, die Sie erstellt haben, um Ihre Apps zugänglich zu machen. Wenn die Apps von Services im Cluster in unterschiedlichen Projekten zugänglich gemacht werden, schließen Sie nur App-Services ein, die sich im selben Projekt befinden. Sie müssen für jedes Projekt, in dem Apps zugänglich gemacht werden sollen, eine Ingress-Ressource erstellen. port
- Der Port, den Ihr Service überwacht. Verwenden Sie denselben Port, die Sie beim Erstellen der Kubernetes Service-Instanz für Ihre App definiert haben.
-
Erstellen Sie die Ingress-Ressource für Ihren Cluster. Stellen Sie sicher, dass die Ressource im selben Projekt wie die App-Services bereitgestellt wird, die in der Ressource angegeben wurden.
oc apply -f myingressresource.yaml -n <project>
-
Überprüfen Sie, dass die Ingress-Ressource erfolgreich erstellt wurde. Wenn die Meldungen in den Ereignissen einen Fehler in Ihrer Ressourcenkonfiguration beschreiben, korrigieren Sie die Werte in Ihrer Ressourcendatei und wenden Sie die Datei für die Ressource erneut an.
oc describe ingress myingressresource
Ihre Ingress-Ressource wird im selben Projekt wie die App-Services erstellt und Ihre Apps werden beim Ingress-Controller registriert.
Schritt 4: Über das Internet auf die App zugreifen
Geben Sie in einem Web-Browser die URL des App-Service an, auf den zugegriffen werden soll.
https://<domain>/<app1_path>
Wenn Sie mehrere Apps zugänglich gemacht haben, greifen Sie auf diese Apps zu, indem Sie den an die URL angehängten Pfad ändern.
https://<domain>/<app2_path>
Wenn Sie eine Platzhalterdomäne verwenden, greifen Sie auf beide Apps über deren eigene Unterdomänen zu.
http://<subdomain1>.<domain>/<app1_path>
http://<subdomain2>.<domain>/<app1_path>
Kann keine Verbindung zu Ihrer App über Ingress hergestellt werden? Versuchen Sie, die Fehlerbehebung bei Ingress durchzuführen.
Apps nur über Private-Cloud-Serviceendpunkt öffentlich in VPC-Clustern zugänglich machen
Virtual Private Cloud
Wenn Ihr Cluster auf einer VPC-Infrastruktur erstellt wurde und Sie bei der Erstellung nur den Endpunkt für den privaten Cloud-Service aktiviert haben, wird Ihr Cluster standardmäßig nur mit einem privaten Ingress-Controller erstellt. Wenn Sie Ihre Apps öffentlich zugänglich machen möchten, müssen Sie zunächst einen öffentlichen Ingress-Controller erstellen. Anschließend müssen Sie Ihren Ingress-Controller in einer Unterdomäne registrieren und optional Ihr eigenes TLS-Zertifikat importieren.
Schritt 1: Apps bereitstellen und App-Services erstellen
Stellen Sie als Erstes Ihre Apps bereit und erstellen Sie Kubernetes Services und machen Sie diese zugänglich.
-
Stellen Sie die App im Cluster bereit. Stellen Sie sicher, dass Sie eine Bezeichnung zu Ihrer Bereitstellung im Metadatenabschnitt Ihrer Konfigurationsdatei hinzufügen, z. B.
app: code
. Diese Bezeichnung ist zur Identifizierung aller Pods erforderlich, in denen Ihre App ausgeführt wird, damit sie in den Lastausgleich aufgenommen werden können. -
Erstellen Sie für jede App-Bereitstellung, die Sie zugänglich machen möchten, einen Kubernetes-Service
ClusterIP
. Ihre App muss durch einen Kubernetes Service zugänglich gemacht werden, damit sie in den Ingress-Lastausgleich einbezogen wird.
oc expose deploy <app_deployment_name> --name my-app-svc --port <app_port> -n <namespace>
Schritt 2: TLS-Terminierung mit TLS-Zertifikaten und geheimen Schlüsseln für Kubernetes einrichten
Ihr TLS-Zertifikat muss als geheimer Kubernetes-Schlüssel in jedem Namensbereich gespeichert werden, in dem Ihre Apps vorhanden sind.
Geheime TLS-Schlüssel für angepasste Ingress-Domänen
Informationen zur Verwendung einer selbst erstellten Domäne, z. B. einer Domäne, die bei einem externen Provider registriert ist, finden Sie unter Geheime TLS-Schlüssel für angepasste Unterdomänen einrichten.
Geheime TLS-Schlüssel für IBM-verwaltete Ingress-Domänen
Führen Sie die Schritte zum Einrichten von geheimen TLS-Schlüsseln für die von IBMverwaltete Ingress-Domäne aus.
- Listen Sie die vorhandenen Unterdomänen in Ihrem Cluster auf. Kopieren Sie in der Spalte Unterdomäne der Ausgabe die Unterdomäne mit dem höchsten
000<n>
-Wert.
In dieser Beispielausgabe hat die Unterdomäneibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>
mycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud
den höchsten000<n>
-Wert von0002
.Subdomain Load Balancer Hostname Health Monitor SSL Cert Status SSL Cert Secret Name mycluster-a1b2cdef345678g9hi012j3kl4567890-0000.us-south.containers.appdomain.cloud ["1234abcd-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0000 mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud ["5678efgh-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0001 mycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud ["9012ijkl-us-south.lb.appdomain.cloud"] None created mycluster-a1b2cdef345678g9hi012j3kl4567890-0002
- Ändern Sie in der kopierten Unterdomäne den
000<n>
-Wert in der Unterdomäne auf000<n+1>
. Beispiel: Der Wert für die Unterdomänemycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloud
wird inmycluster-a1b2cdef345678g9hi012j3kl4567890-0003.us-south.containers.appdomain.cloud
geändert.n+1
gibt die nächste aufeinanderfolgende Unterdomäne an, die Sie in diesem Cluster erstellen. Diese Unterdomäne werden Sie in späteren Schritten registrieren. Wenn Sie die Domäne registrieren, wird automatisch ein TLS-Geheimnis für die Domäne erstellt. Der Name des geheimen Schlüssels ist eine gekürzte Form der Unterdomäne, z. B.mycluster-a1b2cdef345678g9hi012j3kl4567890-0003
.
Schritt 3: Öffentlichen Ingress-Controller erstellen und konfigurieren
Nachdem Sie Ihre Domäne und Ihr TLS-Zertifikat vorbereitet haben, müssen Sie einen öffentlichen Ingress-Controller erstellen und den Controller mit Ihrer Domäne konfigurieren.
-
Erstellen Sie eine Konfigurationsdatei für einen öffentlichen Ingress-Controller.
apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: public-ingress-controller namespace: openshift-ingress-operator spec: replicas: 2 domain: <domain> endpointPublishingStrategy: loadBalancer: scope: External type: LoadBalancerService
-
Erstellen Sie die IngressController-Ressource im
openshift-ingress-operator
-Projekt Ihres Clusters. Wenn Sie den IngressController erstellen, wird automatisch ein öffentlicher Ingress-Controller erstellt und imopenshift-ingress
-Projekt basierend auf den IngressController-Einstellungen bereitgestellt. Außerdem wird ein Ingress-Controllerservice erstellt, um den Ingress-Controller zugänglich zu machen.oc create -f public-ingress-controller.yaml -n openshift-ingress-operator
-
Führen Sie den Befehl
oc get
aus und suchen Sie den VPC-Hostnamen im Feld EXTERNAL IP desrouter-public-ingress-controller
-Service. In VPC-Clustern sind die externen IP-Adressen von Services variabel und werden hinter einem von der VPC zugeordneten Hostnamen verborgen.oc get svc router-public-ingress-controller -n openshift-ingress
Beispielausgabe
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-public-ingress-controller LoadBalancer 172.21.57.132 1234abcd-us-south.lb.appdomain.cloud 80/TCP,443/TCP,1940/TCP 3m
-
Registrieren Sie den VPC-Hostnamen des Service in der Domäne, die Sie zuvor ausgewählt haben.
- Angepasste Domäne: Stimmen Sie mit Ihrem DNS-Provider das Hinzufügen des VPC-Hostnamens für den Service
router-public-ingress-controller
als CNAME ab, der Ihrer angepassten Domäne zugeordnet wird. - Von IBM bereitgestellte Domäne: Erstellen Sie einen DNS-Eintrag für den VPC-Hostnamen des Service
router-public-ingress-controller
. Wenn Sie den folgenden Befehl ausführen, wird die Unterdomäne, die Sie in der Dateipublic-ingress-controller.yaml
angegeben haben, automatisch generiert und beim Servicerouter-public-ingress-controller
registriert. Ein geheimer TLS-Schlüssel für die Domäne wird automatisch in dem von Ihnen angegebenen Projekt generiert, in dem Ihre App ausgeführt wird. Der Name des geheimen Schlüssels ist eine gekürzte Form der Unterdomäne, z. B.mycluster-a1b2cdef345678g9hi012j3kl4567890-0003
.ibmcloud oc nlb-dns create vpc-gen2 --cluster <cluster_name_or_ID> --lb-host <VPC_hostname> --secret-namespace <project>
- Angepasste Domäne: Stimmen Sie mit Ihrem DNS-Provider das Hinzufügen des VPC-Hostnamens für den Service
Schritt 4: Ingress-Ressource erstellen
Ingress-Ressourcen definieren die Routing-Regeln, mit denen der Ingress-Controller Datenverkehr an Ihren App-Service weiterleitet.
-
Definieren Sie eine Konfigurationsdatei für die Ingress-Ressource, die die von IBM bereitgestellte Domäne oder Ihre angepasste Domäne für das Weiterleiten von eingehendem Netzverkehr an die zuvor erstellten Services verwendet.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: myingressresource spec: tls: - hosts: - <subdomain> secretName: <custom_secret_name> rules: - host: <subdomain> http: paths: - path: /<app1_path> pathType: Prefix backend: service: name: <app1_service> port: number: 80 - path: /<app2_path> backend: service: name: <app2_service> port: number: 80
tls
-
- Wenn Sie TLS verwenden wollen, schließen Sie diesen TLS-Abschnitt in Ihre Ressource ein.
- Ersetzen Sie
<domain>
durch Ihre Unterdomäne. Verwenden Sie nicht * für Ihren Host oder lassen Sie die Hosteigenschaft leer, um Fehler während der Ingress-Erstellung zu verhindern. - Ersetzen Sie
<tls_secret_name>
durch den geheimen Schlüssel, den Sie zuvor erstellt haben und der Ihr TLS-Zertifikat und Ihren Schlüssel für eine angepasste Domäne enthält, oder durch den geheimen TLS-Schlüssel, der automatisch für eine von IBM bereitgestellte Unterdomäne generiert wurde.
host
- Ersetzen Sie
<domain>
durch Ihre Unterdomäne. If your cluster has multiple projects where apps are exposed, one Ingress resource is required per project. Sie können in jeder Ressource dieselbe Unterdomäne oder unterschiedliche Unterdomänen verwenden. Wenn Sie beispielsweise eine Platzhalterdomäne verwenden, können Sie diese an den Anfang der Domäne setzen, wie z. B.subdomain1.custom_domain.net
. Verwenden Sie nicht * für Ihren Host oder lassen Sie die Hosteigenschaft leer, um Fehler während der Ingress-Erstellung zu verhindern. path
- Ersetzen Sie "
<app_path>
durch den Pfad, den Ihre Anwendung abfragt. Der Pfad wird an die von IBM bereitstellte Domäne oder Ihre angepasste Domäne angehängt, um eine eindeutige Route zu Ihrer App zu erstellen. Wenn Sie diese Route in einen Web-Browser eingeben, wird der Netzverkehr an den Ingress-Controller weitergeleitet. Der Ingress-Controller sucht den zugehörigen Service und sendet Netzverkehr an den Service. Daraufhin leitet der Service den Datenverkehr an die Pods weiter, in denen die App ausgeführt wird. Viele Apps überwachen einen bestimmten Pfad nicht, verwenden jedoch den Stammverzeichnispfad und einen bestimmten Port. In diesem Fall definieren Sie den Stammverzeichnispfad als/
und geben keinen individuellen Pfad für Ihre App an. Um zum Beispielhttp://domain/
zu verwenden, geben Sie/
als Pfad ein. Geben Sie fürhttp://domain/app1_path
als Pfad/app1_path
ein. pathType
- Die Methode zum Abgleich des URL-Pfads. Unterstützte Werte sind
ImplementationSpecific
,Exact
oderPrefix
. Weitere Informationen und Beispiele zu den einzelnen Pfadarten finden Sie in der Kubernetes. name
- Ersetzen Sie
<app1_service>
,<app2_service>
usw. durch den Namen der Services, die Sie erstellt haben, um Ihre Apps zugänglich zu machen. Wenn die Apps von Services im Cluster in unterschiedlichen Projekten zugänglich gemacht werden, schließen Sie nur App-Services ein, die sich im selben Projekt befinden. Sie müssen für jedes Projekt, in dem Apps zugänglich gemacht werden sollen, eine Ingress-Ressource erstellen. port
- Der Port, den Ihr Service überwacht. Verwenden Sie denselben Port, die Sie beim Erstellen der Kubernetes Service-Instanz für Ihre App definiert haben.
-
Erstellen Sie die Ingress-Ressource für Ihren Cluster. Stellen Sie sicher, dass die Ressource im selben Projekt wie die App-Services bereitgestellt wird, die in der Ressource angegeben wurden.
oc apply -f myingressresource.yaml -n <project>
-
Überprüfen Sie, dass die Ingress-Ressource erfolgreich erstellt wurde. Wenn die Meldungen in den Ereignissen einen Fehler in Ihrer Ressourcenkonfiguration beschreiben, korrigieren Sie die Werte in Ihrer Ressourcendatei und wenden Sie die Datei für die Ressource erneut an.
oc describe ingress myingressresource
Ihre Ingress-Ressource wird im selben Projekt wie die App-Services erstellt und Ihre Apps werden beim Ingress-Controller registriert.
Schritt 5: Über das Internet auf die App zugreifen
Geben Sie in einem Web-Browser die URL des App-Service an, auf den zugegriffen werden soll.
https://<domain>/<app1_path>
Wenn Sie mehrere Apps zugänglich gemacht haben, greifen Sie auf diese Apps zu, indem Sie den an die URL angehängten Pfad ändern.
https://<domain>/<app2_path>
Wenn Sie eine Platzhalterdomäne verwenden, greifen Sie auf beide Apps über deren eigene Unterdomänen zu.
http://<subdomain1>.<domain>/<app1_path>
http://<subdomain2>.<domain>/<app1_path>
Kann keine Verbindung zu Ihrer App über Ingress hergestellt werden? Versuchen Sie, die Fehlerbehebung bei Ingress durchzuführen.
Apps, die sich außerhalb Ihres Clusters befinden, öffentlich zugänglich machen
Machen Sie Apps außerhalb Ihres Clusters öffentlich zugänglich, indem Sie sie in den öffentlichen Ingress-Lastausgleich einschließen. Eingehende öffentliche Anforderungen an die von IBM bereitgestellte oder Ihre angepasste Domäne werden automatisch an die externe App weitergeleitet.
Bevor Sie beginnen, stellen Sie sicher, dass die externe Anwendung, die Sie in den Cluster-Lastausgleich einbeziehen möchten, über eine öffentliche IP-Adresse erreichbar ist.
Um Anwendungen, die sich außerhalb Ihres Clusters befinden, der Öffentlichkeit zugänglich zu machen, gehen Sie folgendermaßen vor.
-
Definieren Sie eine Kubernetes für die Anwendung, die der Ingress-Controller bereitstellt. Dieser Service leitet eingehende Anforderungen an einen externen Endpunkt weiter, den Sie in nachfolgenden Schritten erstellen.
apiVersion: v1 kind: Service metadata: name: myexternalservice spec: ports: - protocol: TCP port: <app_port>
-
Erstellen Sie den Service in Ihrem Cluster.
oc apply -f myexternalservice.yaml
-
Definieren Sie eine Konfigurationsdatei für den externen Endpunkt. Schließen Sie alle öffentlichen IP-Adressen und Ports ein, über die Sie auf Ihre externe App zugreifen können. Beachten Sie, dass der Name des Endpunkts derselbe sein muss wie der Name des Dienstes, den Sie im vorherigen Schritt erstellt haben, z. B. "
myexternalservice
.kind: Endpoints apiVersion: v1 metadata: name: myexternalservice subsets: - addresses: - ip: <external_IP1> - ip: <external_IP2> ports: - port: <external_port>
name
- Ersetzen Sie
<myexternalendpoint>
durch den Namen des Kubernetes-Service, den Sie zuvor erstellt haben. ip
- Ersetzen Sie
<external_IP>
durch die öffentlichen IP-Adressen, um eine Verbindung zu Ihrer externen App herzustellen. port
- Ersetzen Sie
<external_port>
durch den Port, an dem Ihre externe App empfangsbereit ist.
-
Erstellen Sie den Endpunkt in Ihrem Cluster.
oc apply -f myexternalendpoint.yaml
-
Fahren Sie mit dem zweiten Schritt fort unter Apps in VPC-Clustern nur mit einem privaten Cloud-Serviceendpunkt öffentlich zugänglich machen oder Apps in Clustern mit einem öffentlichen Cloud-Serviceendpunkt öffentlich zugänglich machen.