kubero icon indicating copy to clipboard operation
kubero copied to clipboard

[OTHER]: what is the ip that dns is supposed to point to?

Open Akshath-Nagulapally opened this issue 1 year ago • 9 comments

What would you like to share?

Hi, I am getting an issue while deploying kubero to gke(standard cluster not auto):

it says the address here is localhost:

anagulapally@cloudshell:~ (kubernetes-428710)$ kubectl get ingress -n kubero -o wide NAME CLASS HOSTS ADDRESS PORTS AGE cm-acme-http-solver-jvrzg akkiai.com localhost 80 6m30s kubero nginx akkiai.com localhost 80, 443 6m34s

when I need it to be the public ip I am assuming. What would you recommend I do in this situation.

Could use some help with this one

Additional information

No response

Akshath-Nagulapally avatar Jul 11 '24 08:07 Akshath-Nagulapally

You don't need to expose your IP. Just use "kubero.localhost" for the kubero ingress and "myapp.localhost" for your apps.

But keep in mind, your Github hooks won't come true. In case you want to build images you'll also need a registry with a valid SSL Cert (issued by Letsencrypt for example)

There is an easy tunneling service built in to kubero CLI ... just run ```kubero tunnel -p 80 -s kubero-registry-CHANGEME``?

mms-gianni avatar Jul 11 '24 14:07 mms-gianni

right, but what if I wanted to use the domain akkiai.com? How would one go about doing that? I followed the kubero install cli and it got me to the point i showed above. This is important as I want the webhooks to work as well for github.

Akshath-Nagulapally avatar Jul 11 '24 17:07 Akshath-Nagulapally

OK... got it. So if your Kubernetes cluster has a public IP, just point your domain DNS A record to your clusters IP.

If you have a NATted network, like your laptop on your Homenetwork, you'll need a tunnel. These tunnels provide a publicly accessible FQDN to your local IP. On a laptop you might look into ngrok, localtunnel or "kubero tunnel". Once you have this tunnel, just point your domain with a CNAME to this tunnel domain.

If you are running a server in a non publicly accessible network, you might want to look into "cloudflare tunnels". This requires a cloudflare account and is a bit more complicated. The benefit is: It runs within your cluster. Kubero has a built in Addon to do that. But this addon applies only to the apps, not Kubero-UI it self.

mms-gianni avatar Jul 11 '24 19:07 mms-gianni

it works great! thank you so much @mms-gianni

There seems to be one additional problem however... essentially, i pointed the dns to the ingress controller since that was the only svc that had a public ip.

Once I did this the UI started working, however, when I try to deploy an app like trying to specify domain.akkiai.com, it gives me a 503 nginx error whenever I try going to the website(in this case it was domain.akkiai.com).

To be specific my dns record points to the ip through an A record with @, as well as an A record with *.

Akshath-Nagulapally avatar Jul 15 '24 21:07 Akshath-Nagulapally

Hi, I have the same issue. I just wanted to test kubero, I have a reverse proxy for managing my services and a local DNS.

What IP i need to put on my DNS? Here is the ingress output:

odroid@server1:~$ kubectl get ingress -n kubero
NAME                        CLASS    HOSTS                  ADDRESS     PORTS     AGE
cm-acme-http-solver-hf5kw   <none>   kubero.gferreiro.com   localhost   80        8h
kubero                      <none>   kubero.gferreiro.com   localhost   80, 443   8h

My cluster is 3 arm servers in ha configuration. And searching for the IP address of the ingress does result in the ip of local kubernetes.

odroid@server1:~$ kubectl get pod --all-namespaces -o custom-columns=NAME:metadata.name,IP:status.podIP
NAME                                                              IP
ingress-nginx-admission-create-zbgjx                              10.42.2.5
ingress-nginx-admission-patch-h5g6l                               10.42.0.5
ingress-nginx-controller-559cb6d966-n74zj                         10.42.1.8
coredns-7b98449c4-k65kg                                           10.42.0.2
local-path-provisioner-6795b5f9d8-vnvhl                           10.42.0.3
metrics-server-cdcc87586-phtf7                                    10.42.0.4
cm-acme-http-solver-rjxb2                                         10.42.2.9
kubero-68467bcccb-rpjrh                                           10.42.1.9
kubero-prometheus-server-6d774cf59-7lr58                          10.42.0.8
8385751fa5795c579a45258ed1d9827753e07ae51c4bb8b8207776e5d77lx2n   10.42.2.4
catalog-operator-78857dfb48-hz5ht                                 10.42.1.2
f0adee1e5beb4053903403b8e7c90b355ad858acf0658ccd78e74b0bfflhfmz   10.42.2.6
olm-operator-6bf4f9c984-8nrtn                                     10.42.2.2
operatorhubio-catalog-fpvsv                                       10.42.1.14
packageserver-5c95989d76-67xk6                                    10.42.1.4
packageserver-5c95989d76-6pd97                                    10.42.2.3
cert-manager-6df64c59bc-29g6t                                     10.42.2.7
cert-manager-cainjector-6bf444688d-zqmpg                          10.42.0.6
cert-manager-webhook-86d586559-5d4jk                              10.42.2.8
kubero-operator-controller-manager-6547b9c95f-dwtwm               10.42.1.6

GFerreiroS avatar Sep 24 '24 07:09 GFerreiroS

How can I get an ip? So I can use the UI?

GFerreiroS avatar Sep 26 '24 09:09 GFerreiroS

@GFerreiroS sorry for the late reply. Those IP's you've listed are cluster internal IP's.

It highly depends on how your cluster is set up. My running local kind cluster has an ingress hostname with kubero.localhost. Wich is pointing to 127.0.0.1 by default.

On my linode cluster its assigned by the NodeBalancer: image

Thats where DNS-Entrooy "demo.kubero.dev" is pointing to demo.kubero.dev. 8315 IN A 45.79.240.209

mms-gianni avatar Oct 02 '24 17:10 mms-gianni

Okay, but there is a way to assign an address to the ingress instead of localhost?

GFerreiroS avatar Oct 02 '24 19:10 GFerreiroS

You can assign any domain/hostname to your ingress. But you will need to configure a DNS (local or public) to point to your cluster ingress controller IP.

kubectl get services \                                                                                                                                                                                                           main ] 8:02 am
   --namespace ingress-nginx \
   ingress-nginx-controller \
   --output jsonpath='{.status.loadBalancer.ingress[0].ip}'

This command should print the IP the cluster is running on. But as I stated: It depends on your cluster. A local Kind won't print anything.

mms-gianni avatar Oct 03 '24 06:10 mms-gianni