Closed andrewsykim closed 4 years ago
cc @justincormack @lbernail
What kernels that anyone is using does this apply to? 3.18 was released in 2014...
CentOS / RHEL 7 is using a kernel based on 3.10
CentOS / RHEL 7 is using a kernel based on 3.10
Yeah and bugs being reported from Kubernetes users are usually users running on CentOS 7. More details in this issue https://github.com/kubernetes/kubernetes/issues/89520. I agree it's not ideal trying to support such old kernels but there seems to be a fairly large amount of users trying to run IPVS on CentOS 7.
@justincormack I agree it's not great but we still see a lot of users running CentOS / RHEL 7
We introduced the problem in kube-proxy when adding support for dual-stack which required updating libnetwork/ipvs to get moby/libnetwork#2416 and moby/libnetwork#2433
The current impact for Kubernetes users is that they can't run recent kube-proxy versions on this kernel (@andrewsykim disabling dual stack doesn't help with this right? We won't start the v6 proxier but address parsing for the v4 proxier will be wrong)
Signed-off-by: Andrew Sy Kim kim.andrewsy@gmail.com
In older Linux kernels (< 3.18), the IPVS_DEST_ATTR_ADDR_FAMILY attribute does not exist. We should assume the address family based on the destination address if the attribute doesn't exist.
Users running the Kubernetes IPVS proxy on older kernel versions are seeing issues because
parseIP
returns an error since the address family is not returned from the kernel, see https://github.com/kubernetes/kubernetes/issues/89520 for more details.