Comments (6)
@pierreozoux Hetzner Hybrid setups are indeed a interesting idea and because of our network setup there should be no latency issues.
I will look into this in #9, but it might take a while to clarify how the different integrations might work for hybrid cloud.
from hcloud-cloud-controller-manager.
Hi @xetys,
when adding nodes of a different provider to the cluster you have to remove the --cloud-provider=external
flag from the kubelets config so the cloud controller manager is not responsible for managing these nodes.
It might also be possible to run multiple cloud controller managers on the same cluster, but I had no time testing this yet.
from hcloud-cloud-controller-manager.
After I wrote this issue I took a look at this to my self. I see it's not that easy to solve, but it's possible.
The basic idea is still to do this stuff with labeling, and do this while InstanceExistsByProviderID is called. So if we find a server does not exists in hetzner, but never was stated as this, then return true.
The other question is, if this is a good practice. We state then, that instances exist, while they actually do not. That all that ensureNodeExistsByProviderIDorExternalID keep the node in the cluster.
I think I could PR my idea, if you are ok with that approach
from hcloud-cloud-controller-manager.
I think the hcloud-cloud-controller manager already works as expected.
When new kubelets with the --cloud-provider=external
flag register themselves into the cluster and no cloud controller manager can find the node, it is removed.
So you either need to run multiple cloud controller managers for each provider or don't specify the flag when there is no cloud controller manager running/configured for the node's provider.
Edit: see post below
from hcloud-cloud-controller-manager.
I did some testing and reading in the kubernetes documentation, this is what my state of this issue is:
- Nodes that cannot be found in the cloud provider are always deleted also when
--cloud-provider=external
is NOT set. - A multi provider kubernetes cluster is not supported
- To support a multi cloud/provider kubernetes deployment federation was created
A simple multi cloud kubernetes setup is cool, but right now this is not a use case kubernetes does support and considering the network latency issues, when the kubernetes cluster gets larger, I can see why.
If you really want to support this setup, your approach should work, but I would not merge it into this project.
from hcloud-cloud-controller-manager.
@thetechnick what about hybrid in the sense of Hetzner cloud VM and hetzner baremetal (this is my use case.)
Do you plan to support this kind of hybrid?
from hcloud-cloud-controller-manager.
Related Issues (20)
- docs: explain and recommend Robot Webservice Users HOT 1
- Taint uninitialized not getting removed HOT 1
- LoadBalancer / Service Enhancements
- Multiple LoadBalancer services not correct in LB services list HOT 2
- Controller does not properly add node metadata HOT 6
- Pod crashes when setting HCLOUD_NETWORK and network: false HOT 10
- docs(load-balancer): explain how to use managed & uploaded certificates HOT 1
- LB: load-balancer.hetzner.cloud/node-selector annotation not working HOT 3
- Node Addresses won't get updated when using Wireguard for Cluster Creation HOT 10
- Calico and HCC HOT 21
- Invalid characters in labele instance-type HOT 1
- CCM failed to get node address from cloud provider that matches IPv6 HOT 4
- Automatically label robot nodes HOT 2
- invalid_input when deleting loadbalancer manually.
- Inconsistency in the naming for load balancer annotation. HOT 2
- CCM with Hetzner network attempts to create IPv6 routes HOT 5
- fix: Too many requests to `GET /v1/servers/{id}`
- Hetzner Cloud Control manager not connecting with Hetzner HOT 5
- CCM installation with microk8s HOT 1
- Controller support for private networks HOT 2
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 hcloud-cloud-controller-manager.