I've recently updated GKE cluster used in our project to version 1.18.16-gke.1200. One of the features we've been looking forward to were the startup probes. According to the overview of feature gates on Kubernetes' site, startup probes entered Beta stage in version 1.18 of Kubernetes and should be enabled by default, unless explicitly disabled in kubelet configuration. On the 1.18 cluster deployed with minikube the Deployment has its startup probes discovered properly:
On the GKE 1.18 cluster there is no mention of the probe:
Both Deployments have the API version apps/v1
and have the same probe configuration, but the startup probe one is ignored by GKE.
I've executed kubectl cluster-info dump
against the GKE cluster to determine the parameters of the --feature-gates
flag of kubelet, if the StartupProbe
wasn't disabled by Google for that version. However, the only feature gates information returned by the dump is the parameter of kube-proxy container, which looks as follows: --feature-gates=DynamicKubeletConfig=false,RotateKubeletServerCertificate=true
. There is no mention of startup probes in the dump at all, which means that the probes should be enabled.
GKE release notes does not seem to mention startup probes anywhere, even in the entry about introducing version 1.20 where the probes entered GA, although the graduation of some other feature (RuntimeClass) is mentioned. Could it be that Google is preventing introduction of startup probes in GKE for some reason? Is there any other way to enable startup probes for version 1.18 of GKE? I'm not using alpha cluster and the probes are not an alpha feature anyway anymore.
I have realized pretty obvious thing I should mention in my question: I'm using Helm to deploy my applications. Since Helm is merely generating Kubernetes YAMLs and applying them to the cluster, the startup probe configuration was ignored when applied to GKE 1.16 cluster.
The solution was very simple: redeploying all the Helm Charts, so that the generated templates including the startup probe information will be properly handled by the cluster.
Hope this helps somebody too.