Comments (9)
@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.
@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.
@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.
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.
@eranchetz can you explain(You'll probably do a better job than me)
from kubeip.
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.
@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.
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.
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)
- 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
- Exposing metrics
- Exposing liveness and readiness k8s probes HOT 2
- Running as non-root HOT 3
- Introduce a drift-check loop
- getting node: failed to get node pool
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.