Schritt 1: Apigee-Ingress-Gateway freigeben

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:

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.

  1. Erstellen Sie einen Kubernetes-Dienst mit den erforderlichen Pod-Selektorlabels: app, ingress_name und org. 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_NAMESPACE
    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 Datei overrides.yaml angegeben haben. Weitere Informationen finden Sie in der Referenz zu Konfigurationsattributen unter ingressGateways.
    • ORG_NAME ist der Name der Apigee-Organisation. Er muss mit dem Namen übereinstimmen, den Sie in org in Ihrer Datei overrides.yaml angegeben haben. Weitere Informationen finden Sie in der Referenz zu Konfigurationsattributen unter org.
    • 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_NAMESPACE -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.
  2. Erstellen Sie den Dienst, indem Sie SERVICE_FILENAME.yaml anwenden:
    kubectl apply -f SERVICE_FILENAME.yaml
  3. Suchen Sie mit dem folgenden Befehl die externe IP-Adresse des Apigee Ingress-Gateways:
    kubectl get svc -n APIGEE_NAMESPACE 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
  4. Deaktivieren Sie den Load-Balancer für den Standard-Apigee-Ingress-Gateway-Dienst:
    1. Aktualisieren Sie in der Überschreibungsdatei das Attribut ingressGateways[].svcType auf ClusterIP:
      ingressGateways:
        svcType: ClusterIP
    2. Aktualisieren Sie das apigee-org-Diagramm, um die Änderungen anzuwenden:
      helm upgrade ORG_NAME apigee-org/ \
        --install \
        --namespace apigee \
        --atomic \
        -f overrides.yaml
      

    Weitere Informationen zu Load-Balancer für den standardmäßigen Apigee-Ingress-Gateway-Dienst deaktivieren.

  5. 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:

    Bei Erfolg gibt der Befehl Folgendes zurück:

    Apigee Ingress is healthy
  6. Verwenden Sie diese IP-Adresse, um den DNS-Eintrag (normalerweise ein A- oder CNAME-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.

  1. Suchen Sie mit dem folgenden Befehl die externe IP-Adresse des Ingress-Standarddienstes von Apigee:
    kubectl get svc -n APIGEE_NAMESPACE -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
  2. 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:

    Bei Erfolg gibt der Befehl Folgendes zurück:

    Apigee Ingress is healthy
  3. Verwenden Sie diese IP-Adresse, um den DNS-Eintrag (normalerweise ein A- oder CNAME-Eintrag) bei Ihrem Registrator oder DNS-Anbieter zu aktualisieren.

Nächster Schritt

1 (WEITER) Schritt 2: Proxy bereitstellen