Apps mit Ingress privat veröffentlichen
Stellen Sie mehrere Apps in Ihrem „ Red Hat® OpenShift® on IBM Cloud® “-Cluster privat bereit, 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:
- Zugriffsrolle „ Administrator-Plattform“ für den Cluster unter IBM Cloud Kubernetes Service.
- Rolle „Manager“ für den Servicezugriff in allen „ IBM Cloud Kubernetes Service “-Namespaces ( Red 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: Lassen Sie Datenverkehrsanfragen zu, die von Ingress an die Knotenports Ihrer Worker-Knoten weitergeleitet werden. Weitere Informationen finden Sie unter Verstehen von standardmäßig sicheren Cluster-VPC-Netzwerken und Erstellen und Verwalten von VPC-Sicherheitsgruppen.
- VPC-Cluster mit mehreren Zonen: Wenn Sie einen Cluster über die 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 bereitstellt, aktualisieren, damit er die Subnetze aller Zonen in Ihrem Cluster umfasst. - Klassische Cluster: Aktivieren Sie eine VRF-Funktion (Virtual Router Function) für Ihr IBM Cloud-Infrastrukturkonto. Mit dem Befehl
ibmcloud account showkönnen Sie überprüfen, ob VRF bereits aktiviert ist. Wenn Sie VRF nicht aktivieren können oder wollen, aktivieren Sie VLAN-Spanning. Wenn VRF oder VLAN Spanning aktiviert ist, kann der Ingress-Controller Pakete an verschiedene Teilnetze im Konto weiterleiten.
Private Bereitstellung von Apps mit einem Public-Cloud-Serviceendpunkt
Klassische Cluster Virtuelle 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 Clustererstellung den Endpunkt für den Public-Cloud-Dienst aktiviert haben, wird Ihr Cluster standardmäßig nur mit einem öffentlichen Ingress-Controller erstellt. Wenn Sie Ihre Apps privat zugänglich machen möchten, müssen Sie zunächst einen privaten 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: Richten Sie die „ TLS “-Terminierung mit den Zertifikaten unter TLS und den Geheimnissen unter Kubernetes ein
Ihr „ TLS “-Zertifikat muss in jedem Namespace, in dem sich Ihre Apps befinden, als „ Kubernetes “-Geheimnis gespeichert werden.
TLS Geheimnisse rund um benutzerdefinierte Domains
Um „ TLS “-Geheimnisse für eine von Ihnen selbst erstellte Domain einzurichten, beispielsweise eine bei einem externen Anbieter registrierte Domain, lesen Sie den Abschnitt „ TLS-Geheimnisse für benutzerdefinierte Subdomains einrichten “. Diese Schritte gelten sowohl für klassische Cluster als auch für VPC-Cluster.
TLS Geheimnisse für die von „ IBM “ verwaltete Domain
-
Klassische Cluster Um die von „ IBM “ verwaltete Ingress-Domain in einem klassischen Cluster zu verwenden, lesen Sie den Abschnitt „Einrichten von TLS-Geheimnissen für die von IBM bereitgestellte Ingress-Subdomain “.
-
VPC-Cluster Gehen Sie wie folgt vor, um die von IBMverwaltete Ingress-Domäne in einem VPC-Cluster zu verwenden.
- 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_IDmycluster-a1b2cdef345678g9hi012j3kl4567890-0002.us-south.containers.appdomain.cloudden 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.cloudwird inmycluster-a1b2cdef345678g9hi012j3kl4567890-0003.us-south.containers.appdomain.cloudgeändert.n+1gibt die nächste aufeinanderfolgende Unterdomäne an, die Sie in diesem Cluster erstellen. Diese Unterdomäne werden Sie in späteren Schritten registrieren. Bei der Registrierung der Domain wird automatisch ein „ TLS “-Schlüssel für die Domain generiert. Der Name des geheimen Schlüssels ist eine gekürzte Form der Unterdomäne, z. B.mycluster-a1b2cdef345678g9hi012j3kl4567890-0003.
Schritt 3: Privaten Ingress-Controller erstellen und konfigurieren
Nachdem Sie Ihre Domäne und Ihr TLS-Zertifikat vorbereitet haben, müssen Sie einen privaten Ingress-Controller erstellen und den Controller mit Ihrer Domäne konfigurieren.
- Erstellen Sie eine Konfigurationsdatei für einen privaten Ingress-Controller.
apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: private-ingress-controller namespace: openshift-ingress-operator spec: #defaultCertificate: If you are using a custom domain, specify the domain certificate #name: custom-certs-default replicas: 2 domain: <domain> endpointPublishingStrategy: loadBalancer: scope: Internal type: LoadBalancerService - Erstellen Sie die IngressController-Ressource im
openshift-ingress-operator-Projekt Ihres Clusters. Wenn Sie den IngressController, erstellen, wird automatisch ein privater Ingress-Controller erstellt und imopenshift-ingress-Projekt auf der Grundlage der IngressController-Einstellungen bereitgestellt, die Sie im vorherigen Schritt festgelegt haben. Zudem wird ein Ingress-Controller-Dienst erstellt, um den Ingress-Controller über eine IP-Adresse (klassische Cluster) oder einen VPC-Hostnamen (VPC-Cluster) zugänglich zu machen.oc create -f private-ingress-controller.yaml -n openshift-ingress-operator - Führen Sie den Befehl
oc getaus und suchen Sie die IP-Adresse oder den VPC-Hostnamen im Feld EXTERNAL IP desrouter-private-ingress-controller-Service.
Beispielausgabe für klassische Cluster.oc get svc router-private-ingress-controller -n openshift-ingress
Beispielausgabe für VPC-Cluster:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-private-ingress-controller LoadBalancer 172.21.57.132 10.XX.XX.XX 80/TCP,443/TCP,1940/TCP 3mNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-private-ingress-controller LoadBalancer 172.21.57.132 1234abcd-us-south.lb.appdomain.cloud 80/TCP,443/TCP,1940/TCP 3m - Registrieren Sie die externe IP-Adresse oder 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 der externen IP-Adresse des Service
router-private-ingress-controllerals A-Datensatz (klassische Cluster) oder des VPC-Hostnamens als CNAME (VPC-Cluster) 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-private-ingress-controller. Wenn Sie den folgenden Befehl ausführen, wird die Unterdomäne, die Sie in der Dateiprivate-ingress-controller.yamlangegeben haben, automatisch generiert und beim Servicerouter-private-ingress-controllerregistriert. 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 der externen IP-Adresse des 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> backend: service: name: <app1_service> port: number: 80 - path: /<app2_path> backend: serivce: name: <app2_service> port: number: 80tls-
- 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.
- Wenn Sie TLS verwenden wollen, schließen Sie diesen TLS-Abschnitt in Ihre Ressource ein. Ersetzen Sie
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 Fehlschläge während der Ingress-Erstellung zu verhindern.
- Ersetzen Sie
path-
- Ersetzen Sie „
<app_path>“ durch den Pfad, auf dem Ihre App auf Verbindungen wartet. 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. - Geben Sie beispielsweise
/als Pfad ein, umhttp://domain/zu verwenden. Geben Sie fürhttp://domain/app1_pathals Pfad/app1_pathein.
- Ersetzen Sie „
serviceName- 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, das Apps enthält, die Sie öffentlich zugänglich machen möchten, eine Ingress-Ressource erstellen. servicePort- 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 auf einen Fehler in Ihrer Ressourcenkonfiguration hinweisen, korrigieren Sie die Werte in Ihrer Ressourcendatei und wenden Sie die Datei erneut auf die Ressource 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 private Netz auf die App zugreifen
-
Klassische Cluster: Bevor Sie auf Ihre App zugreifen, stellen Sie sicher, dass Sie auf einen DNS-Service zugreifen können. Um den standardmäßigen externen DNS-Anbieter zu verwenden, müssen Sie die Einträge Edge-Knoten mit öffentlichem Zugriff konfigurieren und ein konfigurieren Virtual Router Appliance vornehmen.
-
Geben Sie von Ihrem privaten Netz aus die URL des App-Service in einem Web-Browser ein.
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 privat in VPC-Clustern zugänglich machen
Wenn Ihr Cluster auf einer VPC-Infrastruktur erstellt wurde und Sie bei der Erstellung des Clusters nur den Endpunkt für den Private-Cloud-Dienst aktiviert haben, können Sie den standardmäßigen privaten Ingress-Controller verwenden, um Anwendungen in Ihrem Cluster für Anfragen aus dem privaten Netzwerk zugänglich zu machen.
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: Richten Sie die „ TLS “-Terminierung mit den Zertifikaten unter TLS und den Geheimnissen unter Kubernetes ein
Ihr „ TLS “-Zertifikat muss in jedem Namespace, in dem sich Ihre Apps befinden, als „ Kubernetes “-Geheimnis gespeichert werden.
-
Informationen zur Verwendung der von „ IBM “ verwalteten Ingress-Domain finden Sie unter „ TLS-Secrets für die von „ IBM “ bereitgestellte Ingress-Subdomain einrichten “.
-
Um eine selbst erstellte Domain zu verwenden, beispielsweise eine bei einem externen Anbieter registrierte Domain, lesen Sie den Abschnitt „ TLS-Geheimnisse für benutzerdefinierte Subdomains 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: - <custom_domain> secretName: <custom_secret_name> rules: - host: <domain> http: paths: - path: /<app1_path> backend: service: name: <app1_service> port: number: 80 - path: /<app2_path> backend: service: name: <app2_service> port: number: 80tls-
- 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 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.netodersubdomain1.mycluster-<hash>-0000.us-south.containers.appdomain.cloud. 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
path-
- Ersetzen Sie „
<app_path>“ durch den Pfad, auf dem Ihre App auf Verbindungen wartet. 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. - Geben Sie beispielsweise
/als Pfad ein, umhttp://domain/zu verwenden. Geben Sie fürhttp://domain/app1_pathals Pfad/app1_pathein.
- Ersetzen Sie „
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 auf einen Fehler in Ihrer Ressourcenkonfiguration hinweisen, korrigieren Sie die Werte in Ihrer Ressourcendatei und wenden Sie die Datei erneut auf die Ressource 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: Rufen Sie Ihre App auf
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.