Questo argomento spiega come abilitare i client non SNI, i client HTTP e una combinazione di entrambi per l'uso con Apigee hybrid.
Come configurare un client non SNI
Questa sezione spiega come attivare il supporto per i client non SNI (Server Name Indication) in Apigee Hybrid. Un client non SNI utilizza la porta 443 ed è necessario se vuoi integrare le istanze di runtime ibride con Cloud Load Balancing di Google o per i client che non supportano SNI.- Creare una definizione di risorsa personalizzata (CRD) ApigeeRoute. Assicurati che
enableNonSniClient
sia impostato sutrue
: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
Dove:
- route_name è il nome che assegni alla risorsa personalizzata (RP).
- credential_name è il nome di un secret Kubernetes di cui è stato eseguito il deployment nel cluster
che contiene le credenziali TLS per il tuo virtualhost. Puoi trovare il nome delle credenziali con
il seguente comando
kubectl
:kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
hostnames
deve essere impostato sul carattere jolly "*".
- Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
- Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute alla proprietà
additionalGateways
. Ad esempio:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Salva il file CRD. Ad esempio:
ApigeeRoute.yaml
- Applica il CRD al cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Applica la modifica a
virtualhosts
:Helm
helm upgrade ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --settings virtualhosts --env $ENVIRONMENT
Note sull'utilizzo
- Cosa succede se il cluster ha più di un'organizzazione?
Poiché l'ingresso è a livello di cluster per una determinata porta (443) e può esserci solo una coppia di chiavi/certificati per il CRD ApigeeRoute, tutte le organizzazioni devono condividere la stessa coppia di chiavi/certificati.
- Cosa succede se il cluster ha più di un gruppo di ambienti? Funziona se gli host virtuali condividono la stessa coppia chiave/certificato?
Tutti gli host name di tutti i gruppi di ambienti devono utilizzare la stessa coppia chiave/certificato.
- Perché stiamo creando un ApigeeRoute invece di un gateway?
ApigeeRoutes può essere convalidato da Apigee, ma non lo è Gateway (il CRD Istio). Tecnicamente, anche Gateway può funzionare, ma possiamo evitare potenziali errori di configurazione (tramite un webhook di convalida).
Abilita client HTTP
Questa sezione spiega il supporto per i client HTTP da utilizzare con Apigee hybrid.
- Crea una definizione di risorsa personalizzata (CRD) ApigeeRoute. Ad esempio:
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
Dove:
- route_name è il nome che assegni alla CRD.
hostnames
deve essere impostato sul carattere jolly "*".
- Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
- Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute alla proprietà
additionalGateways
. Ad esempio:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Salva il file CRD. Ad esempio:
ApigeeRoute.yaml
- Applica il CRD al cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Applica la modifica a
virtualhosts
:Helm
helm upgrade ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --settings virtualhosts --env $ENVIRONMENT
Abilita il supporto sia per client non SNI che per client HTTP
Questa sezione spiega come abilitare entrambi i client non SNI (porta 443) e HTTP (porta 80) per l'uso con Apigee hybrid.
- Crea una definizione di risorsa personalizzata (CRD) ApigeeRoute. Ad esempio:
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
Dove:
- route_name è il nome che assegni alla risorsa CRD.
hostname
deve essere impostato sul carattere jolly "*".- credential_name è il nome di un secret Kubernetes di cui è stato eseguito il deployment nel cluster
che contiene le credenziali TLS per il tuo virtualhost. Puoi trovare il nome delle credenziali con
il seguente comando
kubectl
:kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
- Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
- Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute alla proprietà
additionalGateways
. Ad esempio:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Salva il file CRD. Ad esempio:
ApigeeRoute.yaml
- Applica il CRD al cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Applica la modifica a
virtualhosts
:Helm
helm upgrade ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --settings virtualhosts --env $ENVIRONMENT