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 ...
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, dan org. Label ini sudah ada di pod gateway ingress Apigee.
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 file overrides.yaml. Untuk
mengetahui informasi selengkapnya, lihat
ingressGateways dalam
referensi Properti konfigurasi.
ORG_NAME adalah nama organisasi Apigee. Nama ini harus cocok dengan nama
yang Anda berikan untuk org dalam file overrides.yaml. Untuk
mengetahui informasi selengkapnya, lihat
org 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_NAMESPACE -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.
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_NAMESPACESERVICE_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:
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 atau CNAME) 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.
Temukan IP eksternal layanan ingress Apigee default dengan perintah berikut:
kubectl get svc -n APIGEE_NAMESPACE -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.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-21 UTC."],[],[],null,["# Step 1: Expose Apigee ingress gateway\n\nThis step explains how to set up the Kubernetes service for your Apigee ingress gateway.\nThe Kubernetes service is needed for each ingress deployment to obtain an IP address that can be\nexposed. Client calls to proxies will invoke a hostname that will resolve to this IP address.\n\nOptions for Kubernetes services for your Apigee ingress gateway\n---------------------------------------------------------------\n\n\nThere are two options for providing a kubernetes service to assign the IP address ...\n\n- Create a [custom Kubernetes service](#customservice) for each Apigee ingress gateway (recommended).\n- Use the [default Kubernetes service](#defaultservice).\n\n### Create your own Kubernetes service\n\n\nFor production environments, Apigee recommends you create a custom Kubernetes service for each ingress\ngateway.\n\n- Apigee deletes default service, but does not delete the custom kubernetes service upon cleanup. Hence, the IP address won't be released upon reinstallation of Apigee hybrid.\n- For platforms not on Google Cloud, like EKS, AKS, and OpenShift, you need to customize the Kubernetes service to work with the cloud provider. Therefore it is better to create a custom Kubernetes service than to use the default service, because apigee does not support all customizations to the default Kubernetes service.\n\n\nUse the following steps to set up and route traffic to the new ingress gateway.\n\n1. Create a Kubernetes service with the required pod selector labels, `app`, `ingress_name`, and `org`. These labels are already present in Apigee ingress gateway pods.\n\n Create a service file\n using the following template: \n\n ```\n apiVersion: v1\n kind: Service\n metadata:\n name: SERVICE_NAME\n namespace: APIGEE_NAMESPACE\n spec:\n ports:\n - name: status-port\n port: 15021\n protocol: TCP\n targetPort: 15021\n - name: https\n port: 443\n protocol: TCP\n targetPort: 8443\n selector:\n app: apigee-ingressgateway #required\n ingress_name: INGRESS_NAME\n org: ORG_NAME\n type: LoadBalancer\n loadBalancerIP: LOAD_BALANCER_IP\n ```\n - \u003cvar translate=\"no\"\u003eSERVICE_NAME\u003c/var\u003e is a name used to identify this service. For example, `apigee-prod-1`. **Note:** To more easily identify your services, use the ingress name as part of the service name.\n - \u003cvar translate=\"no\"\u003eINGRESS_NAME\u003c/var\u003e is the name of this Apigee ingress gateway. It must match the name you provided for `ingressGateways.name` in your `overrides.yaml` file. For more information see [`ingressGateways` in the\n Configuration properties reference](/apigee/docs/hybrid/v1.15/config-prop-ref#ingressgateways).\n - \u003cvar translate=\"no\"\u003eORG_NAME\u003c/var\u003e is the name of the Apigee organization. It must match the name you provided for `org` in your `overrides.yaml` file. For more information see [`org` in the\n Configuration properties reference](/apigee/docs/hybrid/v1.15/config-prop-ref#org).\n - \u003cvar translate=\"no\"\u003eLOAD_BALANCER_IP\u003c/var\u003e is the IP address for the load balancer.\n\n\n If you have an IP address reserved for your load balancer, enter that.\n\n\n If you do not have an IP address already reserved, you can use the one returned by the\n default Apigee ingress service. Use the `EXTERNAL-IP` returned by the following\n command: \n\n ```\n kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway\n ```\n | **Caution:** Because of a [limitation](/load-balancing/docs/l7-internal#limitations) on Google Cloud internal Application Load Balancer, this Apigee routing option does not support HTTP 1.0 requests. Incoming client requests that specify the HTTP 1.0 protocol will fail. Later HTTP versions are supported.\n\n\n Apigee ingress gateway exposes the following ports:\n\n2. Create the service by applying the \u003cvar translate=\"no\"\u003eSERVICE_FILENAME\u003c/var\u003e`.yaml`: \n\n ```\n kubectl apply -f SERVICE_FILENAME.yaml\n ```\n3. Find the external IP of Apigee ingress gateway with the following command: \n\n ```\n kubectl get svc -n APIGEE_NAMESPACE SERVICE_NAME\n ```\n\n\n Your output should look something like: \n\n ```\n NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\n apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h\n ```\n4. Disable the loadbalancer for the default Apigee ingress gateway service:\n 1. Update the [`ingressGateways[].svcType`](/apigee/docs/hybrid/v1.15/config-prop-ref#ingressgateways-svctype) property to `ClusterIP` in your overrides file: \n\n ```\n ingressGateways:\n svcType: ClusterIP\n ```\n 2. Upgrade the `apigee-org` chart to apply the changes: \n\n ```\n helm upgrade ORG_NAME apigee-org/ \\\n --install \\\n --namespace apigee \\\n --atomic \\\n -f overrides.yaml\n ```\n\n See [Disable the loadbalancer for the default\n Apigee ingress gateway service](/apigee/docs/hybrid/v1.15/managing-ingress#disable-loadbalancer) for more information.\n5. Test the ingress gateway by making a healthcheck call.\n\n ```\n curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \\\n --resolve \"DOMAIN:443:INGRESS_IP_ADDRESS\"\n ```\n\n Where\n - \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e is the domain you provided as the hostname for the environment group you created in [Project and org setup - Step 3: Create an\n environment group](/apigee/docs/hybrid/v1.15/precog-add-environment).\n - \u003cvar translate=\"no\"\u003eINGRESS_IP_ADDRESS\u003c/var\u003e is the ingress IP address, for example `233.252.0.123`.\n\n\n On success the command returns: \n\n ```\n Apigee Ingress is healthy\n ```\n6. Use this IP address to update your DNS record (usually an `A` or `CNAME` record) at your registrar or DNS provider.\n\n### Use the default Kubernetes service\n\n\nFor non-production environments or to test initial traffic through the Apigee ingress gateway,\nApigee hybrid provides default Kubernetes service for each ingress deployment.\n\n\nYou can make limited configuration changes to the default service in your `overrides.yaml`\nfile. For the available configuration options, see [Managing\nApigee ingress gateway](/apigee/docs/hybrid/v1.15/managing-ingress). For example, you can add annotations.\n\n| **Note:** This service will be deleted when the ingress deployment is deleted (when the ingress gateway is removed from the overrides file).\n\n\nFor production environments, it is recommended you provide a Kubernetes service for ingress.\nFollow the steps in [Create your own Kubernetes service](#customservice).\n\n1. Find the external IP of the default Apigee ingress service with the following command: \n\n ```\n kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway\n ```\n\n\n Your output should look something like: \n\n ```\n NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\n apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h\n ```\n2. Test the ingress gateway by making a healthcheck call.\n\n ```\n curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \\\n --resolve \"DOMAIN:443:INGRESS_IP_ADDRESS\"\n ```\n\n Where\n - \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e is the domain you provided as the hostname for the environment group you created in [Project and org setup - Step 3: Create an\n environment group](/apigee/docs/hybrid/v1.15/precog-add-environment).\n - \u003cvar translate=\"no\"\u003eINGRESS_IP_ADDRESS\u003c/var\u003e is the ingress IP address, for example `233.252.0.123`.\n\n\n On success the command returns: \n\n ```\n Apigee Ingress is healthy\n ```\n3. Use this IP address to update your DNS record (usually an `A` or `CNAME` record) at your registrar or DNS provider.\n\n| **Congratulations!**\n|\n| You've successfully set up the Apigee ingress gateway. Now it's time to download a proxy and test\n| your ingress gateway.\n\nNext step\n---------\n\n\u003cbr /\u003e\n\n[1](/apigee/docs/hybrid/v1.15/install-expose-apigee-ingress) [(NEXT) Step 2: Deploy a proxy](/apigee/docs/hybrid/v1.15/install-deploy-proxy)\n\n\u003cbr /\u003e"]]