You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The annotation kubernetes.azure.com/set-kube-service-host-fqdn can now be added to pods to set the KUBERNETES_SERVICE_HOST variable to the domain name of the API server instead of the in-cluster service IP. This is useful in cases where the cluster egress is via a layer 7 firewall, like Azure Firewall with Application Rules.
While running in a Pod, the Kubernetes apiserver is accessible via a Service named kubernetes in the default namespace. Therefore, Pods can use the kubernetes.default.svc hostname to query the API server. Official client libraries do this automatically.
While client-go currently maintains support for the legacy environment-based configuration, other clients do not, rendering them unable to work properly in clusters that use egress firewalls.
Ideally, AKS should support the documented client discovery rules instead of forcing clients to support the (now undocumented) legacy discovery behavior. Alternatively, the Kubernetes docs should be updated to describe the heuristics whereby the KUBERNETES_SERVICE_HOST env var should be honored.
AKS 2022-07-17 includes the following release notes:
This feature is at odds with the documented Kubernetes client discovery behavior:
While client-go currently maintains support for the legacy environment-based configuration, other clients do not, rendering them unable to work properly in clusters that use egress firewalls.
Ideally, AKS should support the documented client discovery rules instead of forcing clients to support the (now undocumented) legacy discovery behavior. Alternatively, the Kubernetes docs should be updated to describe the heuristics whereby the
KUBERNETES_SERVICE_HOST
env var should be honored.See also linkerd/linkerd2#9339
The text was updated successfully, but these errors were encountered: