Shoot Istio Service Mesh and Cilium
When using Istio service mesh you need to have properly configured shoot cluster.
If you have kubeProxy enabled then Istio works out of the box.
This documentation describes how to check kubeProxy
and how to set Cilium when kubeProxy is disabled.
kubeProxy Configuration
Follow these steps to check if kubeProxy is enabled:
-
Validate your shoot manifest on keyPath
.spec.kubernetes.kubeProxy.enabledby opening in any editor of your choice.Or if you have
yqinstalled you can use:output will be
trueifkubeProxyis enabled orfalseifkubeProxyis disabled.If you already have a cluster deployed, you can check this setting by checking YAML directly on the Garden cluster using kubectl:
or if you want to see just the value you can use
jsonpathinstead like this:output will be same as from
yqcommand mentioned above. -
If result of a first step is
false, please continue withCilium Configurationsection. -
If you want to use
kubeProxythen you can turn it on by either manually updating shoot manifest before deploying or editing existing shoot cluster by using:or by using
kubectl patchas follows:NoteKubectl patch command can output following warnings:
- Warning: you should consider disabling the static token kubeconfig, see https://github.com/gardener/gardener/blob/master/docs/usage/shoot_access.md
- Warning: you should consider migrating to PodSecurity, see https://github.com/gardener/gardener/blob/master/docs/usage/pod-security.md#migrating-from-podsecuritypolicys-to-podsecurity-admission-controller
You can safely ignore these warnings.
Cilium Configuration
With kubeProxy Configuration completed successfully
we can now add providerConfig to shoot cilium network plugin by either manually
updating shoot manifest before deployment or by kubectl patch command.
You can check cilium official documentation.
Please check both options below:
1. Manually updating shoot manifest
cilium.networking.extensions.gardener.cloud configuration example:
by adding cilium.networking.extensions.gardener.cloud configuration example
on .spec.networking as in example below:
with result as:
2. By kubectl patch command
Here's a breakdown of the command:
• --type=json specifies the content type as JSON for the patch operation.
• -p indicates that you're providing a patch.
then validate using:
with output: