Giter Site home page Giter Site logo

Comments (9)

avivl avatar avivl commented on May 25, 2024

@wbyoung this shouldn't be too hard to add. I don't have the bandwidth for it now.
You can take a look here and make the replacment based on any rules

from kubeip.

avivl avatar avivl commented on May 25, 2024

@wbyoung Can you please explain what exactly do you need? You can apply any labels to your cluster.
What the expected behavior from Kubeip?

from kubeip.

wbyoung avatar wbyoung commented on May 25, 2024

@avivl, I was thinking of the following use case for a single cluster:

  • Accept incoming mail
  • Accept incoming web traffic

In this case, it'd be useful to be able to have two pools of static IPs (with the appropriate DNS records) and to have the nodes run the corresponding services, right?

The labels would allow defining rules for which nodes the services would run on.

Is there another way one would handle this?

from kubeip.

wbyoung avatar wbyoung commented on May 25, 2024

I think #49 may be a different feature from the request here, but looks useful.

If #49 does solve the above use case, can you give an example of how to configure things to handle the previous comment (which is for a single node pool)?

from kubeip.

avivl avatar avivl commented on May 25, 2024

@eranchetz can you explain(You'll probably do a better job than me)

from kubeip.

eranchetz avatar eranchetz commented on May 25, 2024

Hey @wbyoung,

I'll give a simplified example, I hope it will make sense.
I have 2 node pools with 1 instance each:

  • pool-web
  • pool-mx

I reserve 2 static ips and label them:
kubeip-node-pool=pool-web
kubeip-node-pool=pool-web

The result will be that pool-web will only use the web static ip address
and pool-mx will only use the mx static ip.

now, all we have to do is use nodeSelector for the web/mx deployment
deployment-web will run on the pool-web

Let us know if this makes sense for you.

from kubeip.

wbyoung avatar wbyoung commented on May 25, 2024

@eranchetz and is there a way to get it working with a single node pool? That was part of my request & the above discussion.

from kubeip.

eranchetz avatar eranchetz commented on May 25, 2024

Not really, I also think this is not good practice, since a node-pool instance is ephemeral, tagging a specific node (especially in cloud environments) might create a situation in which your static ip is not attached to the correct service.
I think that having a logical group (in this case a node-pool) is the "cheapest" most reliable option.

from kubeip.

wbyoung avatar wbyoung commented on May 25, 2024

The point would be to allow the service (pod) to be assigned to the proper node based on the label. That responsibility applied to the developer and/or cluster admin, right?

If tags are assigned when the static IPs are assigned and nodes that have static IPs don't have them removed (I'm assuming this is how this project works), then I'm not sure how this would be unsafe.

The ephemeral nature of nodes doesn't really seem like it changes much here. Labels just allow rules for how to schedule pods regardless of the lifetime of a node. If a node dies or is removed, the freed static IP becomes available. Pods running on the node will be restarted (and may not be scheduable based on label based constraints). A new node may or may not be created to replace this node. The static IP that is now free will be assigned to a node if possible. The same tag that went with the node before will be assigned when the IP is assigned. It's possible that the scheduler will now be able to schedule pods that were previously unscheduable. There's nothing odd going on here that the ephemeral nature of nodes interferes with. Can you give a more complete example to the contrary?

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.