fast-pizza-24629
06/12/2023, 2:51 PMmetaflow service. I can run metaflow jobs natively in EKS and everything works well (see job example), and I can see in the logs (cloudWatch) for the service that everything runs.
apiVersion: batch/v1
kind: Job
metadata:
name: veo-ai-metaflow-native-jobs
namespace: metaflow
spec:
ttlSecondsAfterFinished: 100
spec:
template:
spec:
serviceAccountName: metaflow
containers:
- name: <NAME>
image: <IMAGE>
command: ["bash", "-c"]
args:
- pip install kubernetes boto3 --ignore-installed &&
python path/to/flow.py run --with kubernetes --max-num-splits 3000;
env:
- name: AWS_DEFAULT_REGION
value: <REGION>
- name: <METAFLOW_SERVICE_URL>
value: <METAFLOW_SERVICE_URL>
- name: METAFLOW_SERVICE_AUTH_KEY
value: <METAFLOW_SERVICE_AUTH_KEY>
- name: METAFLOW_DEFAULT_METADATA
value: service
- name: METAFLOW_ECS_S3_ACCESS_IAM_ROLE
value: <METAFLOW_ECS_S3_ACCESS_IAM_ROLE>
- name: METAFLOW_DATASTORE_SYSROOT_S3
value: <METAFLOW_DATASTORE_SYSROOT_S3>
- name: METAFLOW_DATATOOLS_SYSROOT_S3
value: <METAFLOW_DATATOOLS_SYSROOT_S3>
- name: METAFLOW_DEFAULT_DATASTORE
value: s3
- name: USERNAME
value: alex
- name: METAFLOW_RUNTIME_IN_CLUSTER
value: 'yes' # $ Important environment variable.
- name: METAFLOW_KUBERNETES_NAMESPACE
value: metaflow
- name: METAFLOW_KUBERNETES_SERVICE_ACCOUNT
value: metaflow
restartPolicy: Never
backoffLimit: 4
However, if I try with python path/to/flow.py run -with kubernetes ... I get this:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<http://metaflow-nlb-pn0ancjz-460897aea31b08ac.elb.eu-west-1.amazonaws.com|metaflow-nlb-pn0ancjz-460897aea31b08ac.elb.eu-west-1.amazonaws.com>', port=80): Max retries exceeded with url: /flows/SportBasicFlow/runs/287/steps/start/tasks/39602/metadata (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa11f6bec70>: Failed to establish a new connection: [Errno 110] Connection timed out'))
The job is created in EKS and I can see that the steps of setting up environment, downloading code package and etc are completed, but then fails at task is starting ... am probably missing a port configuration or something. If you have any ideas on how to solve this it would be highly appreciated. Thanks a lot for the great work 💪ancient-application-36103
06/12/2023, 3:28 PMfast-pizza-24629
06/12/2023, 3:49 PMancient-application-36103
06/12/2023, 4:05 PMfast-pizza-24629
06/12/2023, 4:18 PMancient-application-36103
06/12/2023, 4:20 PMaverage-beach-28850
06/12/2023, 4:24 PMaverage-beach-28850
06/12/2023, 4:27 PMaverage-beach-28850
06/12/2023, 4:27 PMfast-pizza-24629
06/12/2023, 4:27 PMfast-pizza-24629
06/12/2023, 4:29 PMaverage-beach-28850
06/12/2023, 4:29 PMaverage-beach-28850
06/12/2023, 4:31 PMaverage-beach-28850
06/12/2023, 4:31 PMaverage-beach-28850
06/12/2023, 4:31 PMfast-pizza-24629
06/12/2023, 4:38 PMfast-pizza-24629
06/13/2023, 9:42 AMMETAFLOW_SERVICE_INTERNAL_URL did not work either. Now I get this error:
2023-06-13 09:35:12.536 Gathering required information to resume run (this may take a bit of time)...
2023-06-13 09:35:15.689 Workflow starting (run-id 312):
2023-06-13 09:35:16.007 [312/start/39680 (pid 1942)] Task is starting.
2023-06-13 09:35:16.789 [312/start/39680 (pid 1942)] [pod t-skkrx-ghfhw] Task is starting (Pod is pending, Container is waiting - ContainerCreating)...
2023-06-13 09:35:17.453 [312/start/39680 (pid 1942)] [job t-skkrx] Setting up task environment.
2023-06-13 09:35:21.958 [312/start/39680 (pid 1942)] [job t-skkrx] Downloading code package...
2023-06-13 09:35:22.821 [312/start/39680 (pid 1942)] [job t-skkrx] Code package downloaded.
2023-06-13 09:35:22.891 [312/start/39680 (pid 1942)] [job t-skkrx] Task is starting.
2023-06-13 09:35:39.125 [312/start/39680 (pid 1942)] [job t-skkrx] Internal error
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] Traceback (most recent call last):
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/cli.py", line 1172, in main
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] start(auto_envvar_prefix="METAFLOW", obj=state)
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/_vendor/click/core.py", line 829, in __call__
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] return self.main(args, kwargs)
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/_vendor/click/core.py", line 782, in main
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] rv = self.invoke(ctx)
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/_vendor/click/core.py", line 1259, in invoke
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] return _process_result(sub_ctx.command.invoke(sub_ctx))
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/_vendor/click/core.py", line 1066, in invoke
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] return ctx.invoke(self.callback, ctx.params)
2023-06-13 09:35:39.129 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/_vendor/click/core.py", line 610, in invoke
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] return callback(args, kwargs)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/_vendor/click/decorators.py", line 21, in new_func
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] return f(get_current_context(), args, kwargs)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/cli.py", line 581, in step
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] task.run_step(
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/task.py", line 387, in run_step
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] self.metadata.register_task_id(run_id, step_name, task_id, retry_count)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/plugins/metadata/service.py", line 111, in register_task_id
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] self._register_system_metadata(run_id, step_name, task_id, attempt)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/metadata/metadata.py", line 667, in _register_system_metadata
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] self.register_metadata(run_id, step_name, task_id, metadata)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/plugins/metadata/service.py", line 183, in register_metadata
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] self._request(self._monitor, url, "POST", data)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/workspace/metaflow/metaflow/plugins/metadata/service.py", line 421, in _request
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] resp = <http://requests.post|requests.post>(
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 115, in post
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] return request("post", url, data=data, json=json, kwargs)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 59, in request
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] return session.request(method=method, url=url, kwargs)
2023-06-13 09:35:43.617 [312/start/39680 (pid 1942)] Kubernetes error:
2023-06-13 09:35:43.618 [312/start/39680 (pid 1942)] Error (exit code 1). This could be a transient error. Use @retry to retry.
2023-06-13 09:35:43.750 [312/start/39680 (pid 1942)]
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 573, in request
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] prep = self.prepare_request(req)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 484, in prepare_request
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] p.prepare(
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/usr/local/lib/python3.8/dist-packages/requests/models.py", line 368, in prepare
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] self.prepare_url(url, params)
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] File "/usr/local/lib/python3.8/dist-packages/requests/models.py", line 439, in prepare_url
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] raise MissingSchema(
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx] requests.exceptions.MissingSchema: Invalid URL 'flows/SportBasicFlow/runs/312/steps/start/tasks/39680/metadata': No scheme supplied. Perhaps you meant <https://flows/SportBasicFlow/runs/312/steps/start/tasks/39680/metadata>?
2023-06-13 09:35:39.130 [312/start/39680 (pid 1942)] [job t-skkrx]
2023-06-13 09:35:43.850 [312/start/39680 (pid 1942)] Task failed.
Is there an easy way to test that the service can communicate with the pods and viceversa?average-beach-28850
06/13/2023, 3:51 PMMETAFLOW_SERVICE_URL is not set. Or maybe METAFLOW_SERVICE_INTERNAL_URL set to an empty string?average-beach-28850
06/13/2023, 3:51 PMInvalid URL 'flows/SportBasicFlow/runs/312/steps/start/tasks/39680/metadata': No scheme supplied. Perhaps you meant <https://flows/SportBasicFlow/runs/312/steps/start/tasks/39680/metadata>?fast-pizza-24629
06/13/2023, 3:55 PMfast-pizza-24629
06/13/2023, 3:56 PMaverage-beach-28850
06/13/2023, 4:17 PMfast-pizza-24629
06/13/2023, 6:38 PMcolossal-furniture-92883
06/28/2023, 6:06 PMMETAFLOW_SERVICE_INTERNAL_URL allows me to successfully run jobs --with kubernetes!!! Thanks for the insights and the great project!