acorn-io / runtime

A simple application deployment framework built on Kubernetes
https://docs.acorn.io/
Apache License 2.0
1.13k stars 100 forks source link

Service discovery for published services #724

Open josedev-union opened 2 years ago

josedev-union commented 2 years ago

expectations

Is there any way to discover public ip/domain names of published services (publish-scope port in acorn word)? Or to know in advance before the deployment?

use cases

Typical use cases are as follows:

suggestions

cjellick commented 2 years ago

This is at least partially linked to https://github.com/acorn-io/acorn/issues/725

cjellick commented 2 years ago

Are you sure you want the public? If this is acorn-to-acorn traffix within the same cluster, I would assume you don't want to go out through the public internets

josedev-union commented 2 years ago

Are you sure you want the public? If this is acorn-to-acorn traffix within the same cluster, I would assume you don't want to go out through the public internets

I would argue that we should consider consumer running outside of the listener acorn app's k8s cluster, in such cases;

cjellick commented 2 years ago

Generally agree, just wanted to make sure I understood your use case before offering a response. Though, I don't think that clustered applications like etcd or redis being cross-cluster is a good idea. Haven't seen that work out well.

Nevertheless, you reminded me that I needed to open this issue: https://github.com/acorn-io/acorn/issues/733, which I think will at least partially address this.

josedev-union commented 2 years ago

As I mentioned in the usecases, I didn't consider clustered applications running across multiple clusters.

cjellick commented 2 years ago

I don't see that explicitly anywhere in the usecases, but ok.

So then you don't want the "public ip address" for that use case, right? You want an internal IP or dns name?

josedev-union commented 2 years ago

Either public ip or dns is fine. I just want to know public endpoint in advance so it can be configured in acornfile. Btw, I think tcp endpoints are only exposed as IP now.

cjellick commented 1 year ago

putting this in the bucket related to @ibuildthecloud's service work