Sorry, I might be rehashing something that's alrea...
# ask-metaflow
h
Sorry, I might be rehashing something that's already been answered, but I haven't been able to find one in my searching. We've successfully followed the Outerbounds guide to setup Metaflow backed by Argo within an AWS EKS cluster. We're trying to replicate that locally inside the Docker native Kubernetes cluster, so I've followed the guide by @User in this conversation: https://outerbounds-community.slack.com/archives/C02116BBNTU/p1674606525676629?thread_ts=1664217250.831739&cid=C02116BBNTU. So my question is specifically around
METAFLOW_SERVICE_URL
. Following this format didn't work for me:
"https://<service-name>.<namespace>.svc.cluster.local:<service-port>/"
. Instead I had to port forward 8080 from that specific pod to
localhost:8080
and configure my metaflow config to use that. Is there something I'm missing?
This was my value if I followed that guide:
<https://metaflow-metaflow-service.argo.svc.cluster.local:8080/>
the resulting error when trying to publish a flowspec:
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='metaflow-metaflow-service.argo.svc.cluster.local', port=8080): Max retries exceeded with url: /flows/TestPipeline (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x119025f90>: Failed to resolve 'metaflow-metaflow-service.argo.svc.cluster.local' ([Errno 8] nodename nor servname provided, or not known)"))
h
where do you get this error; Is it on your local laptop when you are running interactively or when you are running on argo ? Is the metaflow service deployed in the
argo
namespace ?
h
it's from my local laptop when I try to create a flowspec in the docker k8 cluster:
Copy code
python test_pipeline.py --with kubernetes:image="<image>" argo-workflows create
and yeah, the metaflow helm chart was installed in the
argo
namespace
e
If you're working with a remote K8s cluster, this url is the cluster's internal URL to the service, and it would not be available to your machine. Either you need to port-forward, or you need to setup an ingress so that the service is exposed to your network, and use the URL created from that ingress as the
METAFLOW_SERVICE_URL
.
h
is that true for a cluster on my laptop as well? sorry if that's a naive question.. still learning the ropes with k8
h
@high-cpu-83358, yes you would need to expose the kubernetes network layer to your laptop network layer via either an ingress, gateway API or a port forward.