inlets / inlets-operator

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

Support request for network timeout with DigitalOcean API #69

Closed stevef1uk closed 4 years ago

stevef1uk commented 4 years ago

I have followed the tutorial and it works correctly and reliably on my Mac, but on my k3s RPi cluster I am getting the error:

error syncing 'default/nginx-1-tunnel': Post https://api.digitalocean.com/v2/droplets: dial tcp: i/o timeout, requeuing

Expected Behaviour

The droplet should be created

Current Behaviour

No droplet created

Steps

  1. GIt clone this repo
  2. Install arkade 2.a Copy my DigitalOcean API key into the file /home/pi/faas-netes/do/key
  3. arkade install inlets-operator --provider digitalocean --region lon1 --token-file /home/pi/faas-netes/do.key
  4. kubectl run nginx-1 --image=arm32v7/nginx --port=80 --restart=Always
  5. kubectl expose deployment nginx-1 --port=80 --type=LoadBalancer

Other

The inlets-access-key value didn't look right (even after base64 decoding) so I manually created a secret for inlets-access-key with the value of my API Key from Digital Ocean & deleted the operator pod. Sadly, same error.

utsavanand2 commented 4 years ago

I'll try to reproduce this error on my Raspberry Pi. Do you have tried it out with any other providers to see if it's something with DigitalOcean or its bad for every cloud?

alexellis commented 4 years ago

Thanks for using inlets, I'm going to close this issue given that it's a networking problem with your local setup and is working as expected. I would encourage you to look into your local networking and perhaps consider how you've set up Kubernetes / local DNS.

Btw, you do not need to run this, you can simply use the given instructions in the README which are multi-arch.

kubectl run nginx-1 --image=arm32v7/nginx --port=80 --restart=Always
alexellis commented 4 years ago

/set title: Support request for network timeout with DigitalOcean API

alexellis commented 4 years ago

I would also suggest looking at the DigitalOcean status page to see if they have any known issues at this time. https://status.digitalocean.com

stevef1uk commented 4 years ago

No, I have only tried it with Digital Ocean as basically it is very very cheap to use them for this. I also noticed the VM being provisioned can now be doubled in size for the same cost of $5 a month. Is there an easy way to turn debug logging on so I can compare the two rest requests being sent from my Mac where it works and the RPi?

alexellis commented 4 years ago

How did you install Kubernetes on your RPi? How did you configure the OS for the RPi?

stevef1uk commented 4 years ago

Thanks for using inlets, I'm going to close this issue given that it's a networking problem with your local setup and is working as expected. I would encourage you to look into your local networking and perhaps consider how you've set up Kubernetes / local DNS.

Btw, you do not need to run this, you can simply use the given instructions in the README which are multi-arch.

kubectl run nginx-1 --image=arm32v7/nginx --port=80 --restart=Always

The reason I tried inlets is that I was working on crc (OpenShift v4.3) on my iMac and was trying out their Serverless Operator (KNative) and this wasn't working because I didn't have any external IP addresses for the services. Using the inlets operator made it work I believe. Interestingly, even on the RPi cluster nginix is being given an external IP address, which is the LAN network address of the RPI it is running on.

I tried open-fass on the RPI cluster as there is no way I can run Istio, Elastic Search, Jaegaer, Kiali, KNative on the Rpi cluster ;-)

Sadly, open-faas didn't work on my RPI cluster as I have lots of errors which do indeed seem to indicate a DNS / networking issue with the cluster. However, as this is vanilla k3s install (albeit I have joined 3 nodes to the master) it will be tricky for me to solve, however, I have plenty of time on my hands right now ;-)

stevef1uk commented 4 years ago

How did you install Kubernetes on your RPi? How did you configure the OS for the RPi?

The OS is vanilla NOOBs with latest updates on all RPIs, I have one model 3B as the Master & 3 RPi4s (2GB models) as nodes. Wrote all image to SD cards on my Mac using dd.

K3s is from Rancher: https://github.com/rancher/k3s

Install on master: curl -sfL https://get.k3s.io | sh -

Install on nodes: curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -

stevef1uk commented 4 years ago

Guys you nailed my issue! For some reason the CoreDNS pod was not happy so I deleted it and it was fine when recreated, thus inlet now working correctly on the RPI cluster.

utsavanand2 commented 4 years ago

Awesome !!!

On Mon, Mar 23, 2020, 3:41 PM stevef1uk notifications@github.com wrote:

Guys you nailed my issue! For some reason the CoreDNS pod was not happy so I deleted it and it was fine when recreated, thus inlet now working correctly on the RPI cluster.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/inlets/inlets-operator/issues/69#issuecomment-602501147, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGAYDRLMZS36ARRHRAQ4RCTRI4YWFANCNFSM4LRVYYNQ .