In diesem Schritt wird erläutert, wie Sie den Kubernetes-Dienst für Ihr Apigee-Ingress-Gateway einrichten. Der Kubernetes-Dienst wird für jede Ingress-Bereitstellung benötigt, um eine IP-Adresse zu erhalten, die freigegeben werden kann. Clientaufrufe an Proxys rufen einen Hostnamen auf, der in diese IP-Adresse aufgelöst wird.
Optionen für Kubernetes-Dienste für Ihr Apigee-Ingress-Gateway
Es gibt zwei Möglichkeiten, einen Kubernetes-Dienst bereitzustellen, um die IP-Adresse zuzuweisen:
- Erstellen Sie einen benutzerdefinierten Kubernetes-Dienst für jedes Apigee Ingress-Gateway (empfohlen).
- Verwenden Sie den Kubernetes-Standarddienst.
Eigenen Kubernetes-Dienst erstellen
In Produktionsumgebungen empfiehlt Apigee, dass Sie für jedes Ingress-Gateway einen benutzerdefinierten Kubernetes-Dienst erstellen.
- Apigee löscht den Standarddienst, aber nicht den benutzerdefinierten Kubernetes-Dienst bei der Bereinigung. Daher wird die IP-Adresse bei der Neuinstallation von Apigee Hybrid nicht freigegeben.
- Für Plattformen außerhalb von Google Cloud, z. B. EKS, AKS und OpenShift, müssen Sie den Kubernetes-Dienst für die Zusammenarbeit mit dem Cloud-Anbieter anpassen. Daher ist es besser, einen benutzerdefinierten Kubernetes-Dienst zu erstellen, als den Standarddienst zu verwenden, da Apigee nicht alle Anpassungen des Kubernetes-Standarddienstes unterstützt.
Führen Sie die folgenden Schritte aus, um Traffic einzurichten und an das neue Ingress-Gateway weiterzuleiten.
- Erstellen Sie einen Kubernetes-Dienst mit den erforderlichen Pod-Selektorlabels:
app
,ingress_name
undorg
. Diese Labels sind bereits in Apigee-Ingress-Gateway-Pods vorhanden.Erstellen Sie eine Dienstdatei mit folgender Vorlage:
apiVersion: v1 kind: Service metadata: name: SERVICE_NAME namespace: apigee spec: ports: - name: status-port port: 15021 protocol: TCP targetPort: 15021 - name: https port: 443 protocol: TCP targetPort: 8443 selector: app: apigee-ingressgateway #required ingress_name: INGRESS_NAME org: ORG_NAME type: LoadBalancer loadBalancerIP: LOAD_BALANCER_IP
- SERVICE_NAME ist der Name zur Identifizierung dieses Dienstes. Beispiel:
apigee-prod-1
. - INGRESS_NAME ist der Name dieses Apigee Ingress-Gateways. Er muss mit dem Namen übereinstimmen, den Sie in
ingressGateways.name
in Ihrer Dateioverrides.yaml
angegeben haben. Weitere Informationen finden Sie in der Referenz zu Konfigurationsattributen unteringressGateways
. - ORG_NAME ist der Name der Apigee-Organisation. Er muss mit dem Namen übereinstimmen, den Sie in
org
in Ihrer Dateioverrides.yaml
angegeben haben. Weitere Informationen finden Sie in der Referenz zu Konfigurationsattributen unterorg
. - LOAD_BALANCER_IP ist die IP-Adresse für den Load-Balancer:
Wenn Sie eine IP-Adresse für den Load-Balancer reserviert haben, geben Sie diese ein.
Wenn Sie noch keine IP-Adresse reserviert haben, können Sie die vom standardmäßigen Apigee-Dienst für eingehenden Traffic verwendete IP-Adresse verwenden. Verwenden Sie die
EXTERNAL-IP
, die vom folgenden Befehl zurückgegeben wird:kubectl get svc -n apigee -l app=apigee-ingressgateway
Das Apigee Ingress-Gateway stellt die folgenden Ports zur Verfügung:
Port Beschreibung 443 Laufzeittraffic. 15021 Systemdiagnose. status-port
stellt einen/healthz/ready
-Endpunkt bereit, der mit GKE-Systemdiagnosen für eingehenden Traffic verwendet werden kann. - SERVICE_NAME ist der Name zur Identifizierung dieses Dienstes. Beispiel:
- Erstellen Sie den Dienst, indem Sie
SERVICE_FILENAME.yaml
anwenden:kubectl apply -f SERVICE_FILENAME.yaml
- Suchen Sie mit dem folgenden Befehl die externe IP-Adresse des Apigee Ingress-Gateways:
kubectl get svc -n apigee SERVICE_NAME
Die Ausgabe sollte in etwa so aussehen:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
-
Deaktivieren Sie den Load-Balancer für den Standard-Apigee-Ingress-Gateway-Dienst:
- Aktualisieren Sie in der Überschreibungsdatei das Attribut
ingressGateways[].svcType
aufClusterIP
:ingressGateways: svcType: ClusterIP
-
Wenden Sie die Änderungen mit
apigeectl apply --org
an:${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/overrides.yaml
Weitere Informationen zu Load-Balancer für den standardmäßigen Apigee-Ingress-Gateway-Dienst deaktivieren.
- Aktualisieren Sie in der Überschreibungsdatei das Attribut
Testen Sie das Ingress-Gateway mit einem Systemdiagnoseaufruf.
curl -H 'User-Agent: GoogleHC/' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Dabei gilt:
- DOMAIN ist die Domain, die Sie als Hostname für die Umgebungsgruppe angegeben haben, die Sie in Projekt- und Organisationseinrichtung – Schritt 3: Umgebungsgruppe erstellen erstellt haben.
- INGRESS_IP_ADDRESS ist die IP-Adresse für eingehenden Traffic, z. B.
233.252.0.123
.
Bei Erfolg gibt der Befehl Folgendes zurück:
Apigee Ingress is healthy
- Verwenden Sie diese IP-Adresse, um den DNS-Eintrag (normalerweise ein
A
- oderCNAME
-Eintrag) bei Ihrem Registrator oder DNS-Anbieter zu aktualisieren.
Kubernetes-Standarddienst verwenden
Für Nicht-Produktionsumgebungen oder zum Testen des anfänglichen Traffics über das Apigee-Ingress-Gateway bietet Apigee Hybrid einen standardmäßigen Kubernetes-Ingress-Dienst für jede Ingress-Bereitstellung.
Sie können eingeschränkte Konfigurationsänderungen am Standarddienst in der Datei overrides.yaml
vornehmen. Informationen zu den verfügbaren Konfigurationsoptionen finden Sie unter Apigee-Ingress-Gateway verwalten. Sie können beispielsweise Annotationen hinzufügen.
Für Produktionsumgebungen wird empfohlen, einen Kubernetes-Dienst für eingehenden Traffic bereitzustellen. Führen Sie die Schritte unter Eigenen Kubernetes-Dienst erstellen aus.
- Suchen Sie mit dem folgenden Befehl die externe IP-Adresse des Ingress-Standarddienstes von Apigee:
kubectl get svc -n apigee -l app=apigee-ingressgateway
Die Ausgabe sollte in etwa so aussehen:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
Testen Sie das Ingress-Gateway mit einem Systemdiagnoseaufruf.
curl -H 'User-Agent: GoogleHC/' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Dabei gilt:
- DOMAIN ist die Domain, die Sie als Hostname für die Umgebungsgruppe angegeben haben, die Sie in Projekt- und Organisationseinrichtung – Schritt 3: Umgebungsgruppe erstellen erstellt haben.
- INGRESS_IP_ADDRESS ist die IP-Adresse für eingehenden Traffic, z. B.
233.252.0.123
.
Bei Erfolg gibt der Befehl Folgendes zurück:
Apigee Ingress is healthy
- Verwenden Sie diese IP-Adresse, um den DNS-Eintrag (normalerweise ein
A
- oderCNAME
-Eintrag) bei Ihrem Registrator oder DNS-Anbieter zu aktualisieren.