Skip to content

fix: set proxyMode to nftables on rhel10#17920

Merged
k8s-ci-robot merged 1 commit intokubernetes:masterfrom
justinsb:set_proxymode_for_nftables
Feb 7, 2026
Merged

fix: set proxyMode to nftables on rhel10#17920
k8s-ci-robot merged 1 commit intokubernetes:masterfrom
justinsb:set_proxymode_for_nftables

Conversation

@justinsb
Copy link
Member

@justinsb justinsb commented Feb 2, 2026

We force the use of nftables on rhel10, but kube-proxy was defaulting to iptables
and failing to start on rhel10 because of a missing kernel module (nft_ct).

The module is available in the GCE images, but not the AWS images.

Issue #17915

@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 2, 2026
@k8s-ci-robot k8s-ci-robot added area/nodeup size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Feb 2, 2026
@justinsb
Copy link
Member Author

justinsb commented Feb 2, 2026

/test ?

@justinsb
Copy link
Member Author

justinsb commented Feb 2, 2026

/test pull-kops-gce-distro-rhel10

@rifelpet
Copy link
Member

rifelpet commented Feb 2, 2026

Unfortunately the presubmit jobs for different distros all use cilium including its kube-proxy replacement, so none of them run kube-proxy

https://github.com/kubernetes/test-infra/blob/feab1a5be3fa3c7ff1723ab0348fe1f00bcfea69/config/jobs/kubernetes/kops/build_jobs.py#L1423-L1426

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

Unfortunately the presubmit jobs for different distros all use cilium including its kube-proxy replacement, so none of them run kube-proxy

I'll propose adding some more optional presubmits! (Edit: doing so in kubernetes/test-infra#36368 )

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

/test ?

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

/test pull-kops-aws-kindnet-rhel10arm64

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

/test pull-kops-gce-ipalias-rhel10

Might as well

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

OK some progress here, AWS RHEL10 passes with this PR, fails without it. One complication is that the GCE RHEL10 test passes without this PR. Trying to figure out why here: #17922 (comment)

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

So it looks like GCE rhel10 has nft_ct loaded and AWS rhel10 does not have that module loaded: #17922 (comment)

So this PR is one way to handle it, but we could also try loading nft_ct. I feel like if we're using nftables telling kube-proxy to use nftables feels "right", but I do not have much knowledge here.

@rifelpet
Copy link
Member

rifelpet commented Feb 3, 2026

AWS is also in better shape with this PR: kubernetes/test-infra#36364

https://testgrid.k8s.io/kops-distro-rhel10#kops-grid-kindnet-rhel10arm64-k33

so i think we can be confident that --proxy-mode=nftables is the right approach here.

@justinsb
Copy link
Member Author

justinsb commented Feb 3, 2026

Awesome. Do you think we should ask users to set that manually, or do you think we should set it for them if we're installing nftables?

My 2c: we should set if for them because we're managing nftables installation, and if we make the user configure something based on whether we choose to install nftables that's going to be super confusing. But very open to different thoughts here!

We force the use of nftables on rhel10, but kube-proxy was defaulting to iptables
and failing to start on rhel10 because of a missing kernel module (nft_ct).

The module is available in the GCE images, but not the AWS images.
@justinsb justinsb force-pushed the set_proxymode_for_nftables branch from f97e21f to c40d993 Compare February 7, 2026 19:42
@justinsb justinsb changed the title WIP: set proxyMode for nftables fix: set proxyMode to nftables on rhel10 Feb 7, 2026
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 7, 2026
@justinsb
Copy link
Member Author

justinsb commented Feb 7, 2026

We discussed in office hours: the plan is to force kube-proxy to nftables only on rhel10, where we are also installing the nftables packages (and not the iptables packages).

We can tweak this for other distros in future, but right now these seem to be the only distros that are failing with this error. And we want to unblock the release!

/test pull-kops-gce-ipalias-rhel10

/test pull-kops-aws-kindnet-rhel10arm64

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 7, 2026
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hakman

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 7, 2026
@rifelpet
Copy link
Member

rifelpet commented Feb 7, 2026

/retest

@k8s-ci-robot k8s-ci-robot merged commit 3b75c3a into kubernetes:master Feb 7, 2026
28 checks passed
@k8s-ci-robot k8s-ci-robot added this to the v1.36 milestone Feb 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/nodeup cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants