Skip to content

Custom DNS and Istio

Apply these settings through the existing Helm or GitOps owner of the installation.

For a domain other than cluster.local, configure the Agent and KEDA with the same suffix. This example uses my-cluster.com in the Agent chart’s values:

agent:
extraArgs:
cluster-local-domain: my-cluster.com
keda:
clusterDomain: my-cluster.com
operator:
extraArgs:
k8s-cluster-domain: my-cluster.com
metricsServer:
extraArgs:
metrics-service-address: keda-operator.%s.svc.my-cluster.com:9666

The Agent chart passes keda values to its dependent chart. For a separate KEDA release, apply the fields beneath keda at that chart’s root.

Sidecar injection in the KEDA installation namespace can leave external.metrics.k8s.io unavailable with FailedDiscoveryCheck. Disable injection and restart the affected deployments:

Terminal window
kubectl label namespace keda istio-injection=disabled --overwrite
kubectl get namespace keda --show-labels
kubectl get deployments -n keda
# Replace with a reviewed deployment that had an injected sidecar.
kubectl rollout restart deployment/DEPLOYMENT_NAME -n keda
Terminal window
kubectl get apiservice v1beta1.external.metrics.k8s.io

Confirm AVAILABLE is True. Continue with installation verification or workload troubleshooting. To route application traffic through Istio, use HTTP scaling with Istio VirtualServices.