Giter Site home page Giter Site logo

Comments (13)

WilliamDenniss avatar WilliamDenniss commented on May 23, 2024 2

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.

avivl avatar avivl commented on May 23, 2024 1

@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.

avivl avatar avivl commented on May 23, 2024 1

@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.

pdecat avatar pdecat commented on May 23, 2024

Great, so it's just a matter of adding/removing labels, isn't it?

from kubeip.

spark2ignite avatar spark2ignite commented on May 23, 2024

@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.

pdecat avatar pdecat commented on May 23, 2024

@avivl are the labels removed when a node fails and the IP was reassigned to another one?

from kubeip.

avivl avatar avivl commented on May 23, 2024

@pdecat If the node will get a new IP then the value of the label will be overwritten

from kubeip.

pdecat avatar pdecat commented on May 23, 2024

What if there are less reserved IP addresses than nodes?

from kubeip.

avivl avatar avivl commented on May 23, 2024

@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.

pdecat avatar pdecat commented on May 23, 2024

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.

WilliamDenniss avatar WilliamDenniss commented on May 23, 2024

@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.

pdecat avatar pdecat commented on May 23, 2024

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.

pdecat avatar pdecat commented on May 23, 2024

Great, thanks!

from kubeip.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.