Closed acuteaura closed 1 year ago
Hi! In order to run cilium with kube-proxy replacement on a kind cluster, you need to enable cgroups v2. See this note in the guide - https://docs.cilium.io/en/v1.13/installation/kind/#install-cilium. There are a set of commands that you can run to confirm this. Can you check if cgroups v2 is enabled?
cgroupsv2 is enabled, but I got the same ID anyway, despite having default-cgroupns-mode
set to private
.
I found two ways to fix this:
cgroup_no_v1=all
(despite being on a 6.x kernel). This will cause the docker daemon to crash until you mount cgroupfs2 at /sys/fs/cgroup
(instead of the default /sys/fs/cgroup/unified
)."exec-opts": ["native.cgroupdriver=cgroupfs"]
in daemon.json. This seems to be required for default-cgroupns-mode
to have an effect, but it is no longer the default (that's systemd
).My final "working" setup on WSL2 + 6.1 kernel branch + fedora is:
/etc/docker/daemon.json
{
"default-cgroupns-mode": "private",
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
%USERPROFILE%/.wslconfig
[wsl2]
kernel = c:\\users\\aurelia\\bzImage
kernelCommandLine = cgroup_no_v1=all systemd.unified_cgroup_hierarchy=1 kvm-intel.nested=1 kvm-intel.enable_shadow_vmcs=1 kvm-intel.enable_apicv=1 kvm-intel.ept=1
nestedVirtualization = true
And also my .config in case someone is brave enough to try this at home inside WSL2 😅
I can confirm that this fixes my host ports. Though another pass through the documentation might be warranted.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
This issue has not seen any activity since it was marked stale. Closing.
Is there an existing issue for this?
What happened?
When using Kind with Cilium with
kubeProxyReplacement=strict
, NodePort services do not work.Kind config:
Cilium Helm values:
Values for Contour (the service I can't reach):
The service I can't reach:
The service can't be reached via kind port forwards:
The port on the node itself also can't be reached:
Notably, other ports do not timeout, but get a reject.
And even more weirdly, the service is available at port 80 (on all nodes, not just the one with the kind extra ports):
Cilium Version
1.13.2
Kernel Version
Linux P14s 5.15.90.1-microsoft-standard-WSL2+ #2 SMP Fri May 12 12:26:01 CEST 2023 x86_64 x86_64 x86_64 GNU/Linux
(compiled according to https://wsl.dev/wslcilium/)
Kubernetes Version
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.3", GitCommit:"9e644106593f3f4aa98f8a84b23db5fa378900bd", GitTreeState:"clean", BuildDate:"2023-03-30T06:34:50Z", GoVersion:"go1.19.7", Compiler:"gc", Platform:"linux/amd64"}
Sysdump
cilium-sysdump-20230516-061145.zip
Relevant log output
cilium service list
Anything else?
No response
Code of Conduct