Langkah ini menjelaskan cara menyiapkan layanan Kubernetes untuk gateway traffic masuk Apigee Anda. Layanan Kubernetes diperlukan untuk setiap deployment ingress guna mendapatkan alamat IP yang dapat diekspos. Panggilan klien ke proxy akan memanggil nama host yang akan di-resolve ke alamat IP ini.
Opsi untuk layanan Kubernetes untuk gateway ingress Apigee Anda
Ada dua opsi untuk menyediakan layanan kubernetes guna menetapkan alamat IP ...
- Buat layanan Kubernetes kustom untuk setiap gateway ingress Apigee (direkomendasikan).
- Gunakan layanan Kubernetes default.
Membuat layanan Kubernetes Anda sendiri
Untuk lingkungan produksi, Apigee merekomendasikan Anda membuat layanan Kubernetes kustom untuk setiap gateway masuk.
- Apigee menghapus layanan default, tetapi tidak menghapus layanan kubernetes kustom setelah pembersihan. Oleh karena itu, alamat IP tidak akan dirilis setelah penginstalan ulang Apigee Hybrid.
- Untuk platform yang tidak ada di Google Cloud, seperti EKS, AKS, dan OpenShift, Anda perlu menyesuaikan layanan Kubernetes agar berfungsi dengan penyedia cloud. Oleh karena itu, sebaiknya buat layanan Kubernetes kustom daripada menggunakan layanan default, karena apigee tidak mendukung semua penyesuaian pada layanan Kubernetes default.
Gunakan langkah-langkah berikut untuk menyiapkan dan merutekan traffic ke gateway masuk baru.
- Buat layanan Kubernetes dengan label pemilih pod yang diperlukan,
app
,ingress_name
, danorg
. Label ini sudah ada di pod gateway ingress Apigee.Buat file layanan menggunakan template berikut:
apiVersion: v1 kind: Service metadata: name: SERVICE_NAME namespace: apigee spec: ports: - name: status-port port: 15021 protocol: TCP targetPort: 15021 - name: https port: 443 protocol: TCP targetPort: 8443 selector: app: apigee-ingressgateway #required ingress_name: INGRESS_NAME org: ORG_NAME type: LoadBalancer loadBalancerIP: LOAD_BALANCER_IP
- SERVICE_NAME adalah nama yang digunakan untuk mengidentifikasi layanan ini. Misalnya,
apigee-prod-1
. - INGRESS_NAME adalah nama gateway masuk Apigee ini. Nama ini harus cocok dengan nama
yang Anda berikan untuk
ingressGateways.name
dalam fileoverrides.yaml
. Untuk mengetahui informasi selengkapnya, lihatingressGateways
dalam referensi Properti konfigurasi. - ORG_NAME adalah nama organisasi Apigee. Nama ini harus cocok dengan nama
yang Anda berikan untuk
org
dalam fileoverrides.yaml
. Untuk informasi selengkapnya, lihatorg
dalam referensi Properti konfigurasi. - LOAD_BALANCER_IP adalah alamat IP untuk load balancer.
Jika Anda memiliki alamat IP yang dicadangkan untuk load balancer, masukkan alamat tersebut.
Jika tidak memiliki alamat IP yang sudah dicadangkan, Anda dapat menggunakan alamat yang ditampilkan oleh layanan masuk Apigee default. Gunakan
EXTERNAL-IP
yang ditampilkan oleh perintah berikut:kubectl get svc -n apigee -l app=apigee-ingressgateway
Gateway masuk Apigee mengekspos port berikut:
Port Deskripsi 443 Traffic runtime. 15021 Health check. status-port
mengekspos endpoint/healthz/ready
yang dapat digunakan dengan health check GKE Ingress. - SERVICE_NAME adalah nama yang digunakan untuk mengidentifikasi layanan ini. Misalnya,
- Buat layanan dengan menerapkan
SERVICE_FILENAME.yaml
:kubectl apply -f SERVICE_FILENAME.yaml
- Temukan IP eksternal gateway ingress Apigee dengan perintah berikut:
kubectl get svc -n apigee SERVICE_NAME
Output Anda akan terlihat seperti ini:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
-
Nonaktifkan load balancer untuk layanan gateway ingress Apigee default:
- Perbarui properti
ingressGateways[].svcType
keClusterIP
di file penggantian Anda:ingressGateways: svcType: ClusterIP
-
Upgrade diagram
apigee-org
untuk menerapkan perubahan:helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Lihat Menonaktifkan load balancer untuk layanan gateway masuk Apigee default untuk mengetahui informasi selengkapnya.
- Perbarui properti
Uji gateway masuk dengan melakukan panggilan healthcheck.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Dari mana
- DOMAIN adalah domain yang Anda berikan sebagai nama host untuk grup lingkungan yang Anda buat di Penyiapan project dan organisasi - Langkah 3: Membuat grup lingkungan.
- INGRESS_IP_ADDRESS adalah alamat IP ingress, misalnya
233.252.0.123
.
Jika berhasil, perintah akan menampilkan:
Apigee Ingress is healthy
- Gunakan alamat IP ini untuk memperbarui data DNS (biasanya data
A
atauCNAME
) di registrar atau penyedia DNS Anda.
Menggunakan layanan Kubernetes default
Untuk lingkungan non-produksi atau menguji traffic awal melalui gateway ingress Apigee, Apigee hybrid menyediakan layanan Kubernetes default untuk setiap deployment ingress.
Anda dapat membuat perubahan konfigurasi terbatas pada layanan default di file overrides.yaml
. Untuk opsi konfigurasi yang tersedia, lihat Mengelola gateway masuk Apigee. Misalnya, Anda dapat menambahkan anotasi.
Untuk lingkungan produksi, sebaiknya Anda menyediakan layanan Kubernetes untuk ingress. Ikuti langkah-langkah di Membuat layanan Kubernetes Anda sendiri.
- Temukan IP eksternal layanan ingress Apigee default dengan perintah berikut:
kubectl get svc -n apigee -l app=apigee-ingressgateway
Output Anda akan terlihat seperti ini:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
Uji gateway masuk dengan melakukan panggilan healthcheck.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Dari mana
- DOMAIN adalah domain yang Anda berikan sebagai nama host untuk grup lingkungan yang Anda buat di Penyiapan project dan organisasi - Langkah 3: Membuat grup lingkungan.
- INGRESS_IP_ADDRESS adalah alamat IP ingress, misalnya
233.252.0.123
.
Jika berhasil, perintah akan menampilkan:
Apigee Ingress is healthy
- Gunakan alamat IP ini untuk memperbarui data DNS (biasanya data
A
atauCNAME
) di registrar atau penyedia DNS Anda.