You need the aws-load-balancer-controller installed in your cluster to configure Ingress resources on EKS.
After installing, check that your cluster is running the aws-load-balancer-controller:
kubectl get deployments.apps -n kube-system aws-load-balancer-controller
You need application-gateway-kubernetes-ingress installed in your cluster to configure Ingress resources on AKS.
After installing, check that your cluster is running the ingress-appgw-deployment:
kubectl get deployments.apps -n kube-system ingress-appgw-deployment
Clusters running GKE versions 1.18 and later automatically provision load balancers in response to Ingress resources being created.
GKE requires a BackendConfig resource to be created for Kong deployments to be marked as healthy.
-
Create a BackendConfig resource to configure health checks:
echo "apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: kong-hc
namespace: kong
spec:
healthCheck:
checkIntervalSec: 15
port: 8100
type: HTTP
requestPath: /status" | kubectl apply -f -
-
This BackendConfig is attached to the admin service using the annotations key in values-cp.yaml.
GKE provisions one load balancer per Ingress definition. Following this guide will result in multiple load balancers being created.
Set ingressController.enabled to true in your values-cp.yaml file to enable Kong Ingress Controller. When enabling the ingress controller, set env.publish_service to ensure that Kong Ingress Controller populates the address field in the managed Ingress resources.
You must also set ingressController.env.kong_admin_token to the value stored in env.password to enable communication between Kong Ingress Controller and the Kong Gateway Admin API:
ingressController:
enabled: true
env:
publish_service: kong/kong-dp-kong-proxy
kong_admin_token: kong_admin_password