Nicht-SNI- und HTTP-Clients aktivieren

In diesem Thema wird erläutert, wie Nicht-SNI-Clients, HTTP-Clients und eine Kombination aus beiden zusammen zur Verwendung mit Apigee Hybrid aktiviert werden.

So konfigurieren Sie einen Nicht-SNI-Client

In diesem Abschnitt wird erläutert, wie Sie die Unterstützung für Nicht-SNI-Clients (Server Name Indication) in Apigee Hybrid aktivieren. Ein Nicht-SNI-Client verwendet Port 443 und ist erforderlich, wenn Sie Hybridlaufzeitinstanzen in Google Cloud Load Balancing einbinden möchten oder für Clients, die SNI nicht unterstützen.
  1. Benutzerdefinierte ApigeeRoute-Ressourcendefinition erstellen (CRD). Achten Sie darauf, dass enableNonSniClient auf true gesetzt ist:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      selector:
        app: apigee-ingressgateway
      enableNonSniClient: true

    Dabei gilt:

    • route_name ist der Name, den Sie der benutzerdefinierten Ressource zuweisen.
    • credential_name ist der Name eines Kubernetes-Secrets, das auf dem Cluster bereitgestellt wird und TLS-Anmeldedaten für Ihren virtuellen Host enthält. Sie finden den Namen der Anmeldedaten mit dem folgenden kubectl-Befehl:
      kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
    • hostnames muss auf den Platzhalter „*” gesetzt werden.
  2. Öffnen Sie die Überschreibungsdatei und nehmen Sie die im nächsten Schritt beschriebene Änderung vor.
  3. Fügen Sie für jede Umgebungsgruppe den Namen ApigeeRoute in das Attribut additionalGateways ein. Beispiel:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Speichern Sie die CRD-Datei. Beispiel: ApigeeRoute.yaml.
  5. Wenden Sie die CRD auf den Cluster an:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Wenden Sie die Änderung auf virtualhosts an. Wenn Sie die Umgebungsvariable $ENV_GROUP in Ihrer Shell festgelegt haben, können Sie sie in den folgenden Befehlen verwenden:
    helm upgrade $ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=$ENV_GROUP \
      -f OVERRIDES_FILE.yaml
    

Verwendungshinweise

  • Was passiert, wenn der Cluster mehr als eine Organisation hat?

    Da sich das Ingress auf der Clusterebene für einen bestimmten Port (443) befindet und es nur ein Schlüssel-/Zertifikat-Paar für die CRRoute-CRD von Apigee gibt, müssen alle Organisationen dasselbe Schlüsselpaar haben.

  • Was geschieht, wenn der Cluster mehr als eine Umgebungsgruppe hat? Funktioniert die VM, wenn die virtuellen Hosts dasselbe Schlüssel-/Zertifikatpaar verwenden?

    Alle Hostnamen in allen Umgebungsgruppen müssen dasselbe Schlüssel-/Zertifikatpaar verwenden.

  • Warum erstellen wir statt eines Gateways eine ApigeeRoute?

    ApigeeRoutes können von Apigee validiert werden; das Gateway (die Istio-CRD) jedoch nicht. Technisch funktioniert sogar ein Gateway, aber mögliche Konfigurationsfehler können (durch einen Validierungs-Webhook) vermieden werden.

HTTP-Clients aktivieren

In diesem Abschnitt wird die Unterstützung für HTTP-Clients für die Verwendung mit Apigee Hybrid erläutert.

  1. Benutzerdefinierte ApigeeRoute-Ressourcendefinition erstellen (CRD). Beispiel:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 80
        protocol: HTTP
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Dabei gilt:

    • route_name ist der Name, den Sie der CRD zuweisen.
    • hostnames muss auf den Platzhalter „*” gesetzt werden.
  2. Öffnen Sie die Überschreibungsdatei und nehmen Sie die im nächsten Schritt beschriebene Änderung vor.
  3. Fügen Sie für jede Umgebungsgruppe den Namen ApigeeRoute in das Attribut additionalGateways ein. Beispiel:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Speichern Sie die CRD-Datei. Beispiel: ApigeeRoute.yaml.
  5. Wenden Sie die CRD auf den Cluster an:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Wenden Sie die Änderung auf virtualhosts an:
    helm upgrade $ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=$ENV_GROUP \
      -f OVERRIDES_FILE.yaml
    

Unterstützung für Nicht-SNI- und HTTP-Clients aktivieren

In diesem Abschnitt wird erläutert, wie Sie sowohl Nicht-SNI-Clients (Port 443) als auch HTTP-Clients (Port 80) für die Verwendung mit Apigee Hybrid aktivieren.

  1. Benutzerdefinierte ApigeeRoute-Ressourcendefinition erstellen (CRD). Beispiel:
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      - number: 80
        protocol: HTTP
      selector:
        app: istio-ingressgateway
      enableNonSniClient: true

    Dabei gilt:

    • route_name ist der Name, den Sie der CRD zuweisen.
    • hostname muss auf den Platzhalter „*” gesetzt werden.
    • credential_name ist der Name eines Kubernetes-Secrets, das auf dem Cluster bereitgestellt wird und TLS-Anmeldedaten für Ihren virtuellen Host enthält. Sie finden den Namen der Anmeldedaten mit dem folgenden kubectl-Befehl:
      kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
  2. Öffnen Sie die Überschreibungsdatei und nehmen Sie die im nächsten Schritt beschriebene Änderung vor.
  3. Fügen Sie für jede Umgebungsgruppe den Namen ApigeeRoute in das Attribut additionalGateways ein. Beispiel:
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. Speichern Sie die CRD-Datei. Beispiel: ApigeeRoute.yaml.
  5. Wenden Sie die CRD auf den Cluster an:
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. Wenden Sie die Änderung auf virtualhosts an:
    helm upgrade $ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=$ENV_GROUP \
      -f OVERRIDES_FILE.yaml