Topik ini menjelaskan cara mengaktifkan klien non-SNI, klien HTTP, dan kombinasi keduanya untuk digunakan dengan Apigee hybrid.
Cara mengonfigurasi klien non-SNI
Bagian ini menjelaskan cara mengaktifkan dukungan untuk klien non-SNI (Server Name Indication) di Apigee hybrid. Klien non-SNI menggunakan port 443 dan diperlukan jika Anda ingin mengintegrasikan instance runtime campuran dengan Cloud Load Balancing Google atau untuk klien yang tidak mendukung SNI.- Buat definisi resource kustom (CRD) ApigeeRoute. Pastikan
enableNonSniClient
ditetapkan ketrue
: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
Dengan keterangan:
- route_name adalah nama yang Anda berikan ke resource kustom (CR).
- credential_name adalah nama Secret Kubernetes yang di-deploy ke cluster yang berisi kredensial TLS untuk virtualhost Anda. Anda dapat menemukan nama kredensial dengan
Perintah
kubectl
berikut:kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
hostnames
harus ditetapkan ke karakter pengganti "*".
- Buka file penggantian dan buat perubahan yang dijelaskan di langkah berikutnya.
- Untuk setiap grup lingkungan, tambahkan nama ApigeeRoute ke properti
additionalGateways
. Contoh:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Simpan file CRD. Contoh:
ApigeeRoute.yaml
- Terapkan CRD ke cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Terapkan perubahan ke
virtualhosts
. Jika telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut:helm upgrade $ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=$ENV_GROUP \ -f OVERRIDES_FILE.yaml
Catatan penggunaan
- Apa yang terjadi jika cluster memiliki lebih dari satu organisasi?
Karena ingress berada di tingkat cluster untuk port tertentu (443), dan hanya boleh ada satu pasangan kunci/sertifikat untuk CRD ApigeeRoute, semua organisasi harus memiliki pasangan kunci/sertifikat yang sama.
- Apa yang terjadi jika cluster memiliki lebih dari satu grup lingkungan? Apakah akan berfungsi
jika host virtual memiliki pasangan kunci/sertifikat yang sama?
Semua nama host di semua grup lingkungan harus menggunakan pasangan kunci/sertifikat yang sama.
- Mengapa kita membuat ApigeeRoute, bukan Gateway?
ApigeeRoutes dapat divalidasi oleh Apigee; tetapi, Gateway (CRD Istio) tidak dapat. Secara teknis, bahkan Gateway dapat berfungsi, tetapi kita dapat mencegah potensi kesalahan konfigurasi (melalui webhook validasi).
- Bagaimana cara mengonfigurasi klien non-SNI untuk Apigee?
Jika instance Apigee Anda diekspos melalui Load Balancer Google, Load Balancer akan mendukung klien non-SNI seperti yang dijelaskan dalam dokumentasi Load Balancing. Jika tidak, jika Anda telah mengekspos instance Apigee melalui VPC atau endpoint PSC internal, secara default instance Apigee mendukung klien non-SNI.
Mengaktifkan klien HTTP
Bagian ini menjelaskan dukungan untuk klien HTTP yang akan digunakan dengan Apigee hybrid.
- Buat definisi resource kustom (CRD) ApigeeRoute. Contoh:
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
Dengan keterangan:
- route_name adalah nama yang Anda berikan ke CRD.
hostnames
harus ditetapkan ke karakter pengganti "*".
- Buka file penggantian dan buat perubahan yang dijelaskan di langkah berikutnya.
- Untuk setiap grup lingkungan, tambahkan nama ApigeeRoute ke properti
additionalGateways
. Contoh:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Simpan file CRD. Contoh:
ApigeeRoute.yaml
- Terapkan CRD ke cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Terapkan perubahan ke
virtualhosts
:helm upgrade $ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=$ENV_GROUP \ -f OVERRIDES_FILE.yaml
Mengaktifkan dukungan untuk klien non-SNI dan HTTP
Bagian ini menjelaskan cara mengaktifkan klien non-SNI (port 443) dan HTTP (port 80) keduanya untuk digunakan dengan Apigee hybrid.
- Buat definisi resource kustom (CRD) ApigeeRoute. Contoh:
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
Dengan keterangan:
- route_name adalah nama yang Anda berikan ke CRD.
hostname
harus ditetapkan ke karakter pengganti "*".- credential_name adalah nama Secret Kubernetes yang di-deploy ke cluster yang berisi kredensial TLS untuk virtualhost Anda. Anda dapat menemukan nama kredensial dengan
Perintah
kubectl
berikut:kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
- Buka file penggantian dan buat perubahan yang dijelaskan di langkah berikutnya.
- Untuk setiap grup lingkungan, tambahkan nama ApigeeRoute ke properti
additionalGateways
. Contoh:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Simpan file CRD. Contoh:
ApigeeRoute.yaml
- Terapkan CRD ke cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Terapkan perubahan ke
virtualhosts
:helm upgrade $ENV_GROUP apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=$ENV_GROUP \ -f OVERRIDES_FILE.yaml