microsoft / microsoft/WSL

Add `xt_recent` kernel module so that Kubernetes Services with Session Affinity work in WSL

Open
#11,159 3 comments 7 reactions 0 assignees View on GitHub
feature
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

**Is your feature request related to a problem? Please describe.**

The lack of this kernel module's presence makes Kubernetes Service with Session Affinity unusable and breaks a lot of things inside k8s clusters that could be running either inside the WSL VM directly or through containers inside the VM.

**Describe the solution you'd like**

I would like the `xt_recent` to be present by default so that I don't need to recompile the kernel myself to get Kubernetes Services to work with their basic feature set.

**Describe alternatives you've considered**

I tried recompiling the kernel myself, obviously. It's time consuming and annoying that I have to figure out what's broken, what I need to do, then finally do it. The investigation is not easy at all.

I can't patch literally all the services out there in k8s manifests, Helm charts, operators and so on to avoid using the client session affinity option.

**Additional context**

This is a revival of https://github.com/microsoft/WSL/issues/7124, but as a feature request instead of a bug.

Would also love to see `CONFIG_NETFILTER_XT_TARGET_CT=y` and `CONFIG_NETFILTER_XT_TARGET_TPROXY=y` present so that things like Cilium could work inside WSL.

We already had open PRs to fix this issue, but they were not accepted without a good and clear explanation on why, as I noted on https://github.com/microsoft/WSL/issues/7124#issuecomment-1329505719.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the WSL kernel configuration and the earlier issue #7124, including the referenced comment and prior pull requests. Check how enabling xt_recent, CONFIG_NETFILTER_XT_TARGET_CT, and CONFIG_NETFILTER_XT_TARGET_TPROXY would affect the requested Kubernetes use cases; done means the requested modules or options are present by default and the existing concerns are resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes, linux
Domain
devops, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.