Comments (13)
In my testing you can still add more nodes, they just won't get static IPs. If you rely on all your nodes being whitelisted, then yes it won't work. +1 to label the nodes that receive the static IP. Being able to run mixed workloads on the same nodepool where only some require a static IP would be great!
I'd suggest adding a second label, which is the name of the IP itself. That way you could use nodeSelector to target a Pod to a specific IP which could serve other use-cases like exposing a service with HostPort.
from kubeip.
@pdecat @WilliamDenniss
After assigning an IP address to a node kubeip will also create a label for that node kubip_assigned
with the value of the IP address (.
are replaced with _
)
from kubeip.
@pdecat @WilliamDenniss just to be on the safe side, I'm now checking if there is a node with the ip tag and clear that tag
from kubeip.
Great, so it's just a matter of adding/removing labels, isn't it?
from kubeip.
@avivl - would be better to replace the dots with dashes as per K8s notion specified at https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods
from kubeip.
@avivl are the labels removed when a node fails and the IP was reassigned to another one?
from kubeip.
@pdecat If the node will get a new IP then the value of the label will be overwritten
from kubeip.
What if there are less reserved IP addresses than nodes?
from kubeip.
@pdecat nothing. If there are less IP address then nodes then nothing will happen to this nodes. Once an IP will be available it will be assigned to one e of the nodes
from kubeip.
It will still have a tag referencing an IP address that has been reassigned to another node, isn't it?
If so, pods can't rely on this label via nodeSelector or affinity constraints to be scheduled on those.
Note: perhaps that wasn't clear in my original description but that's what this issue is all about.
from kubeip.
@avivl are the labels removed when a node fails and the IP was reassigned to another one?
Ideally I think the kubeIP operator would validate that both labels are correct as part of the regular poll, and remove labels that are no longer correct. From a consistency standpoint this seems like the ideal behavior.
But I'm curious if this condition can actually happen today? I would think once assigned, it wouldn't be unassigned. Or are you suggesting that the user or some other process may re-assign it?
from kubeip.
Oh, I presumed kubeip would do it for failing or upgraded (cordon, drain, reboot) nodes but now that you mention it, I realize it watches only for new/removed nodes.
I guess as long as failing and upgraded nodes keep their reserved IP address, this is covered.
from kubeip.
Great, thanks!
from kubeip.
Related Issues (20)
- Limit RBAC rights HOT 1
- Release an update with more recent docker image HOT 1
- KUBEIP_NODEPOOL prefix/wildcard HOT 1
- KUBEIP_COPYLABELS not applying labels HOT 4
- KubeIP not able to assign an IP to a node in state NotReady
- Minor Fix for the sed command in README to be working for macOS users. HOT 1
- IPv6 / Dual-Stack Support HOT 1
- Implementation in on-premises/Bare metal clusters. HOT 1
- Tell Anthony to stop spamming company email addresses he harvests from LinkedIn
- instance tagging
- Unable to switch to using kubeip v2, returning region-related error HOT 2
- Support GCP Global Addresses HOT 1
- in gcp/gke region gets populated with zone HOT 2
- when scaling up cluster and 2 or more nodes are starting in the same time there is a race condition HOT 3
- if --filter is used --order-by cannot be used
- KubeIP sporadically fails to assign the address on GCP because of missing access config check during delete step HOT 13
- Kubeip using a lot of CPU HOT 1
- Support for internal IP HOT 1
- build.yaml Action is using soon-to-be-deprecated calls like "save-state" and "set-output" HOT 3
- Make kubeip compatible with Workload Identity HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kubeip.