Giter Club home page Giter Club logo

Comments (5)

codeagencybe avatar codeagencybe commented on August 16, 2024

I'm also in the same boat as you. Trying to figure out how the static/dynamic part can be managed in a clear way.
I have several applications that use different ingress (nginx, openlitespeed, apache) and I'm also trying to get it mixed together in a way that makes sense for my setup.

I think some parts are just not implemented yet in the HCLOUD controller, but I'm not sure. If I'm not mistaken, in one of the other issues somebody was asking for using labels on the LB and that part was also not available yet.
So maybe we need to give Hetzner some more time to come up with this feature set.

For the time being, I'm considering spinning up a HAproxy LB service and use that temporary.
Latest HAproxy 2.2 also supports now SSL dynamic storage.
In fact, Hetzner LB is nothing more than a high available managed HAproxy instances, so you could also spin up them yourself on 3x CPX11 (if you want HA) or just use 1 CPX11 if you don't bother about HA.
https://www.haproxy.com/blog/announcing-haproxy-2-2/

from hcloud-cloud-controller-manager.

icarus42 avatar icarus42 commented on August 16, 2024

Thanks for sharing your ideas.

I am currently working on a low-cost (very) small-scale deployment High availability is not what I seek.

For this very specific scenario I found an approach to assign a static IP which is easy to set up for a single worker node "cluster". My ingress service runs on the only worker node and is bound to an external IP using spec.externalIPs: [ < floating ip goes here > ] (see the kubernetes documentation for details). This IP is an Hetzner floating IP. Note that this requires

  1. on the one hand changes to the worker node's network interfaces settings (see Hetzner HCloud documentation on "Floating IP Persistent" for how to achieve this) and
  2. on the other hand the assignment of the floating IP to the worker node (e.g. manually via the web interface or automatically via the API).

However, I would still prefer a load balancer. Not for the load balancing but for the flexibility when adding more servers. With the above proposed approach, I think one could also handle multiple nodes, but one would need to pin the ingress service to the worker node the floating IP is assigned to. The load balancer could provide the benefit that the ingress service could be rescheduled, e.g. in case of a node failure, while being accessible through the same IP as before (the load balancer's IP).

from hcloud-cloud-controller-manager.

LKaemmerling avatar LKaemmerling commented on August 16, 2024

@icarus42 you could use the name annotation to set a specific load balancer (name) for a service.
LBName Name = "load-balancer.hetzner.cloud/name"

Please keep in mind, that this will only work with one service atm, as the Cloud Controller itself always "sync" the state between the k8s service it is attached to and the service(s) within the Cloud API. We have a similar setup where the LB is the only way in (before an Nginx ingress), so the LB "only" expose Port 80 & Port 443.

from hcloud-cloud-controller-manager.

LKaemmerling avatar LKaemmerling commented on August 16, 2024

I will close this issue because of the lack of activity. If you still encounter this problem, feel free to write again and reopen this issue.

from hcloud-cloud-controller-manager.

Ks89 avatar Ks89 commented on August 16, 2024

I'm having the same problem. How can I assign a static IP to my load balancer?
Which is the right answer to this question?

Every time I re-deploy my service of type LoadBalancer I get a new LoadBalancer on Hetzner gui with a different IP. However I need this public IP to be accessible from outside with a fixed ipv4, otherwise a cannot assign it as DNS to my domain.

from hcloud-cloud-controller-manager.

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.