Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Akshath-Nagulapally opened this issue Jul 11, 2024 · 9 comments
Open
Labels
question Further information is requested

Comments

@Akshath-Nagulapally
Copy link

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

@mms-gianni mms-gianni added the question Further information is requested label Jul 11, 2024
@mms-gianni
Copy link
Member

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``?

@Akshath-Nagulapally
Copy link
Author

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.

@mms-gianni
Copy link
Member

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.

@Akshath-Nagulapally
Copy link
Author

Akshath-Nagulapally commented Jul 15, 2024

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 *.

@GFerreiroS
Copy link

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
Copy link

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

@mms-gianni
Copy link
Member

@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

@GFerreiroS
Copy link

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

@mms-gianni
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants