Topik ini menjelaskan cara mengaktifkan klien non-SNI, klien HTTP, dan kombinasi keduanya untuk digunakan dengan Apigee Hybrid.
Konfigurasi ini berfungsi untuk gateway masuk Apigee dan Anthos Service Mesh.
Cara mengonfigurasi klien non-SNI
Bagian ini menjelaskan cara mengaktifkan dukungan untuk aplikasi non-SNI (Indikasi Nama Server) di Apigee Hybrid. Klien non-SNI menggunakan port 443 dan diperlukan jika Anda ingin mengintegrasikan instance runtime hybrid dengan Google Cloud Load Balancing atau untuk klien yang tidak mendukung SNI.- Buat definisi resource kustom (CRD) ApigeeRoute. Pastikan bahwa
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: APP_NAME enableNonSniClient: true
Dengan keterangan:
- ROUTE_NAME adalah nama yang Anda berikan ke CRD.
- CREDENTIAL_NAME adalah nama Secret Kubernetes yang di-deploy ke cluster
yang berisi kredensial
TLS untuk {i>virtualhost<i} Anda. Anda dapat menemukan
nama kredensial dengan
Perintah
kubectl
berikut:kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
- APP_NAME Mengidentifikasi jenis gateway masuk:
apigee-ingressgateway
untuk gateway masuk Apigee.istio-ingressgateway
untuk Anthos Service Mesh.
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
additionalGateways
saat ini. Contoh:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Simpan file CRD tersebut. Contoh:
ApigeeRoute.yaml
- Terapkan CRD ke cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Terapkan perubahan ke
virtualhosts
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT
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 kami membuat ApigeeRoute, bukan Gateway?
ApigeeRoutes dapat divalidasi oleh Apigee; namun, Gateway (Istio CRD) tidak boleh. Secara teknis, Gateway bahkan dapat berfungsi, tetapi kita dapat mencegah potensi kesalahan konfigurasi (melalui webhook validasi).
Mengaktifkan klien HTTP
Bagian ini menjelaskan dukungan untuk klien HTTP 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: 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 lakukan perubahan yang dijelaskan pada langkah berikutnya.
- Untuk setiap grup lingkungan, tambahkan nama ApigeeRoute ke
additionalGateways
saat ini. Contoh:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Simpan file CRD tersebut. Contoh:
ApigeeRoute.yaml
- Terapkan CRD ke cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Terapkan perubahan ke
virtualhosts
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT
Mengaktifkan dukungan untuk klien non-SNI dan HTTP
Bagian ini menjelaskan cara mengaktifkan kedua klien non-SNI (port 443) dan HTTP (port 80) 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 {i>virtualhost<i} 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
additionalGateways
saat ini. Contoh:virtualhosts: - name: default sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem additionalGateways: ["route_name"]
- Simpan file CRD tersebut. Contoh:
ApigeeRoute.yaml
- Terapkan CRD ke cluster:
kubectl apply -f ApigeeRoute.yaml -n apigee
- Terapkan perubahan ke
virtualhosts
:$APIGEECTL_HOME/apigeectl apply -f overrides.yaml --settings virtualhosts --env $ENVIRONMENT