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.- Benutzerdefinierte ApigeeRoute-Ressourcendefinition erstellen (CRD). Achten Sie darauf, dass
enableNonSniClient
auftrue
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.
- Öffnen Sie die Überschreibungsdatei und nehmen Sie die im nächsten Schritt beschriebene Änderung vor.
- 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"]
- Speichern Sie die CRD-Datei. Beispiel:
ApigeeRoute.yaml
- Wenden Sie die CRD auf den Cluster an:
kubectl apply -f ApigeeRoute.yaml -n apigee
- 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.
- 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.
- Öffnen Sie die Überschreibungsdatei und nehmen Sie die im nächsten Schritt beschriebene Änderung vor.
- 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"]
- Speichern Sie die CRD-Datei. Beispiel:
ApigeeRoute.yaml
- Wenden Sie die CRD auf den Cluster an:
kubectl apply -f ApigeeRoute.yaml -n apigee
- 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.
- 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
- Öffnen Sie die Überschreibungsdatei und nehmen Sie die im nächsten Schritt beschriebene Änderung vor.
- 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"]
- Speichern Sie die CRD-Datei. Beispiel:
ApigeeRoute.yaml
- Wenden Sie die CRD auf den Cluster an:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Wenden Sie die Änderung auf
virtualhosts
an:helm upgrade $ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=$ENV_GROUP \ -f OVERRIDES_FILE.yaml