Questo argomento spiega come attivare i client non SNI, i client HTTP e una combinazione di entrambi per l'utilizzo con Apigee Hybrid.
Come configurare un client non SNI
Questa sezione spiega come abilitare il supporto per sistemi non SNI (Indicazione nome server) 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.- Crea una definizione di risorsa personalizzata (CRD) ApigeeRoute. Assicurati che
enableNonSniClient
è 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: istio-ingressgateway enableNonSniClient: true
Dove:
- route_name è il nome che assegni alla risorsa CRD.
- 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.
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 a
additionalGateways
proprietà. 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
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT
Note sull'utilizzo
- Cosa succede se il cluster ha più di un'organizzazione?
Poiché il traffico in entrata è a livello di cluster per una determinata porta (443), essere una coppia chiave/certificata per il CRD ApigeeRoute, tutte le organizzazioni devono condividere la stessa coppia chiave/certificata.
- Cosa succede se il cluster ha più di un gruppo di ambienti. Funziona se gli host virtuali condividono la stessa coppia chiave/certificato?
Tutti i nomi host in tutti i gruppi di ambienti devono utilizzare la stessa coppia chiave/certificato.
- Perché stiamo creando un'ApigeeRoute anziché 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 dei client HTTP da utilizzare con Apigee Hybrid.
- Creare 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 risorsa 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 a
additionalGateways
proprietà. 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
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT
Attivare il supporto sia per i client non SNI che per quelli HTTP
Questa sezione spiega come abilitare entrambi i client non SNI (porta 443) e HTTP (porta 80) per l'uso con Apigee hybrid.
- Creare 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.
- Apri il file delle sostituzioni e apporta la modifica descritta nel passaggio successivo.
- Per ogni gruppo di ambienti, aggiungi il nome ApigeeRoute a
additionalGateways
proprietà. 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
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT