Exposing a chart in LXD controller does nothing

I am very new, so please, forgive me if my questions is very silly.

I am following this guide -> Juju | Getting started with Juju and when executing the curl <container_ip> command, works.

My question now is… how do I access to this app from the external IP from my ubuntu server? Do know any guide which explain this?

Another question how do I access to this app from the external IP from my ubuntu server?, if I want to access from a domaion (because I want to expose two containers to the 80 port, and I want that depending on the domain, goes to a different container_ip) how I do that? Do you know any guide which explain this?

Thanks a lot, I just need a little guide, and I am very lost with the networking related to external IPs.

Again, sorry for this if it is a silly question.

Hi @sarony11. Thank you for the question!

Typically, you make an application available on a public IP by running the expose command. For example:

juju expose hello-juju

If Juju knows how to expose the charm on a public ip, it’ll do so.

Juju doesn’t handle the process of associating a domain with an application. It’s a feature that we’d like to add. For now, you’d need to register a domain name, then point it at the public IP of your application, as you normally would.

~ PeteVG

Thanks for your answer @pengale

As I saw in the documentation, juju expose hello-juju is the way, as also you say, but I do not see any change. But If I access thought the kubernetes IP, I can see the container UP and running.

administrator@master-ubuntu:~$ sudo ufw status
Status: inactive

Thanks!

Hello @pengale, I have been working on this, and I would like to clarify what is happening to me.

I also created this post, just in case could be related in anyhow.

Question: Using LXD controller, when exposing, I do not make it work (or something I am doing wrong)

Deploy and Expose

administrator@master-ubuntu:~$ juju deploy hello-juju
Located charm "cs:hello-juju-4".
Deploying charm "cs:hello-juju-4".
administrator@master-ubuntu:~$ juju expose hello-juju
administrator@master-ubuntu:~$ juju status
Model              Controller   Cloud/Region         Version  SLA          Timestamp
lxd-staging-model  lxd-staging  localhost/localhost  2.8.7    unsupported  21:10:08Z

App         Version  Status  Scale  Charm       Store       Rev  OS      Notes
hello-juju           active      1  hello-juju  jujucharms    4  ubuntu  exposed

Unit           Workload  Agent  Machine  Public address  Ports   Message
hello-juju/0*  active    idle   1        10.231.102.211  80/tcp  Serving HTTP from gunicorn

Machine  State    DNS             Inst id        Series  AZ  Message
1        started  10.231.102.211  juju-c5a3b6-1  bionic      Running

administrator@master-ubuntu:~$ curl 10.231.102.211
Hello Juju!

Here comes the problem.

administrator@master-ubuntu:~$ curl 192.168.2.5
curl: (7) Failed to connect to 192.168.2.5 port 80: Connection refused
administrator@master-ubuntu:~$ curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused

How can I make this pod available to be exposed from outside?

I am a network administrator and in fact, ingress, networking, domains and certs is the most complicated part in finding on Kubernetes and Juju. If anyone reading can give clear resources about this to learn practically and in deep I would much appreciate.

Thanks for your help,