inlets / inlets-operator

Get public TCP LoadBalancers for local Kubernetes clusters
https://docs.inlets.dev/reference/inlets-operator
MIT License
1.34k stars 98 forks source link

Provisioning to Hetzner Cloud + some questions #44

Closed vitobotta closed 3 years ago

vitobotta commented 4 years ago

Hi! This project looks really cool! A few questions if you don't mind:

Thanks a lot in advance!

utsavanand2 commented 4 years ago

Hi @vitobotta! It's really cool that you found our project interesting! Personally I'm a big fan of inlets-operator too!

-> inlets-operator works great for development and production environments alike. inlets also has an offering for inlets-pro which allows exposing L4 protocols like TCP and UDP. Well the exit node/instance provisioned by the cloud provider is definitely a single point of failure and hence is dependent upon how well the cloud-provider manages a zonal or regional downtime, providers like Google Cloud offer live migration of instances.

-> Yes you can add support for any cloud platform as long as it offers some kind of API for provisioning instances with metadata like startup-scripts and ports to open (which partly answers your 3rd question)

-> Yes you can have firewall-rules in place as long as you're not blocking 80 and 443 itself

-> Surely you can! As with any kubernetes deployment you'll expose your service first with DigitalOcean as kubectl expose <deployment> --name lb1 --port 80 --type LoadBalancer

Then, update your inlets-operator deployment to use Hetzner Cloud and expose your existing exposed deployment with a new service with a different name kubectl expose <deployment> --name lb2 --port 80 --type LoadBalancer

@alexellis is the creator of inlets and I'm sure he would correct me if I'm wrong somewhere. 😄

vitobotta commented 4 years ago

Just tried with DigitalOcean with the fra1 region (my servers are in Nuremberg) for nginx ingress, it works!

Another few questions:

Thanks!

vitobotta commented 4 years ago

Hi @utsavanand2 ! Thanks for your reply :) Hetzner Cloud has a very nice API, so it shouldn't be difficult but I am not sure of how to tackle this since I am still relatively new to K8s. I wish I could help with this already :(

I wouldn't want to have to SSH into the lb and configure a firewall etc myself. I am mostly wondering about SSH since these days there's a lot of attempts by script kiddies, bots etc. Is password auth disabled at least? Generally speaking, how is the LB VM configured from a security standpoint?

Thanks!

vitobotta commented 4 years ago

Just tried, the password auth is enabled and works withe password that DO has emailed me

vitobotta commented 4 years ago

Yet another question :D My app uses websockets. Will it work with this LB? I've read that the connection between the cluster and the LB is done via websockets? So will my app work? Thanks @alexellis

vitobotta commented 4 years ago

I can answer myself the last question, it seems to work with a demo app! 💯

alexellis commented 4 years ago

@vitobotta do you still have time to work on the Hetzner provisioner? The code would start here -> https://github.com/inlets/inletsctl/tree/master/pkg/provision

vitobotta commented 4 years ago

Hi @alexellis, I switched to DigitalOcean a month ago so I am using their load balancers. BTW Hetzner Cloud also has load balancers now.

AdamWorley commented 3 years ago

Hi @alexellis I'm just trying to add hetzner to the inlets-operator Arkade project and make it an available provider in this project, would it best to link back to this issue for both in the pull requests?

alexellis commented 3 years ago

Who can add Hetzner to the operator? We have the provisioning package ready now. Adding it to the controller should be a case of:

1) Find all references of "EC2" or "DigitalOcean" 2) Copy/paste 3) Test end to end with exposing a service, accessing it and then deleting the service to check the VM is removed.

Pinging a few people: @AdamWorley @vitobotta @utsavanand2 @Waterdrips

Alex

alexellis commented 3 years ago

Closing as duplicate of the newer issue #115 - this also went a little off topic.

alexellis commented 3 years ago

/lock

alexellis commented 3 years ago

Please participate in the feature request in #115