New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Always update pod IP in case of hostNetworking #93898
Conversation
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
I signed it |
/release-note-none |
/milestone v1.19 |
@pupapaik: You must be a member of the kubernetes/milestone-maintainers GitHub team to set the milestone. If you believe you should be able to issue the /milestone command, please contact your and have them propose you as an additional delegate for this responsibility. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/assign @dchen1107 |
@mtaufen and @Random-Liu can you please review? |
/test pull-kubernetes-e2e-kind |
/lgtm |
@danwinship PodIPs are mutable. Here is why: Assume PodX assigned to nodeN. PodX starts on NodeN we get PodIPs and all well. Node restarts. Node needs to start every assigned pod from scratch (i.e., the entire sandbox creation dance). The entire representation of PodX on NodeN (i.e, sandbox Id, PodIPs, etc) changed but the pod object didn't change (recreated). Hence the mutability. Same scenario if pod was forcibly delete on the node via let us say containerd or We should be able to merge this once it passes tests and gets reviewed. |
We never fully specified the behavior of CNI plugins - whether they had to guarantee the pod IP remains the same when various bits of state were lost. @knobunc tested this and we confirmed a number of plugins in the ecosystem do not preserve pod IP after reset of the node and loss of the container cache. At this point, while preservation of IP is very desirable for consumers, without a strong statement in the early days (which we didn’t make or test) the current state is “podIP can change”. At a minimum, other clients should be aware that any podIP can change at any time and we should test this. We may wish to offer guidance and tests for CNI plugins to encourage certain behaviors. But we can’t assume they are immutable in practice nor enforce that without breaking existing plugins. |
(note i’m making a general statement about podIP changing, pod IP on host network pods is one of the most likely to change, but any pods IP can change over its lifetime) |
Main concerns is because it changes the current behavior, and since is not easy to predict all the consequences of this change, we can hide it behind a FeatureGate, so we can have an easy roll back if the result is not the expected. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: pupapaik The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@pupapaik: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
@pupapaik: PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close |
@k8s-triage-robot: Closed this PR. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/kind bug
What type of PR is this?
It is bug fix.
What this PR does / why we need it:
It is need to fix bug described bellow.
Which issue(s) this PR fixes:
Fixes #93897
Special notes for your reviewer:
I tested this on my setup where I was changing IP via DHCP server leases. It works fine now without any issues.
Does this PR introduce a user-facing change?:
NONE