JupyterLab / Elyra: запуск конвейера на конвейерах Kubeflow завершается ошибкой, если в локальном развертывании не указан хост

У меня есть Kubeflow Pipelines, работающие в моей локальной среде, вместе с JupyterLab и расширениями Elyra. Я создал конвейер записной книжки и настроил конфигурацию времени выполнения следующим образом, установив для api_endpoint значение http://localhost:31380/pipeline (с отключенной безопасностью). При попытке запустить конвейер отображается следующее сообщение об ошибке:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/tornado/web.py", line 1703, in _execute
    result = await result
  File "/usr/local/lib/python3.8/site-packages/elyra/pipeline/handlers.py", line 89, in post
    response = await PipelineProcessorManager.instance().process(pipeline)
  File "/usr/local/lib/python3.8/site-packages/elyra/pipeline/processor.py", line 70, in process
    res = await asyncio.get_event_loop().run_in_executor(None, processor.process, pipeline)
  File "/usr/local/Cellar/[email protected]/3.8.6/Frameworks/Python.framework/Versions/3.8/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.8/site-packages/elyra/pipeline/processor_kfp.py", line 100, in process
    raise lve
  File "/usr/local/lib/python3.8/site-packages/elyra/pipeline/processor_kfp.py", line 89, in process
    client.upload_pipeline(pipeline_path,
  File "/usr/local/lib/python3.8/site-packages/kfp/_client.py", line 720, in upload_pipeline
    response = self._upload_api.upload_pipeline(pipeline_package_path, name=pipeline_name, description=description)
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/api/pipeline_upload_service_api.py", line 83, in upload_pipeline
    return self.upload_pipeline_with_http_info(uploadfile, **kwargs)  # noqa: E501
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/api/pipeline_upload_service_api.py", line 177, in upload_pipeline_with_http_info
    return self.api_client.call_api(
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/api_client.py", line 378, in call_api
    return self.__call_api(resource_path, method,
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/api_client.py", line 195, in __call_api
    response_data = self.request(
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/api_client.py", line 421, in request
    return self.rest_client.POST(url,
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/rest.py", line 279, in POST
    return self.request("POST", url,
  File "/usr/local/lib/python3.8/site-packages/kfp_server_api/rest.py", line 196, in request
    r = self.pool_manager.request(
  File "/usr/local/lib/python3.8/site-packages/urllib3/request.py", line 79, in request
    return self.request_encode_body(
  File "/usr/local/lib/python3.8/site-packages/urllib3/request.py", line 171, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "/usr/local/lib/python3.8/site-packages/urllib3/poolmanager.py", line 325, in urlopen
    conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
  File "/usr/local/lib/python3.8/site-packages/urllib3/poolmanager.py", line 231, in connection_from_host
    raise LocationValueError("No host specified.")
urllib3.exceptions.LocationValueError: No host specified.

person ptitzler    schedule 16.11.2020    source источник


Ответы (1)


Основная причина - проблема в пакете Kubeflow Pipelines kfp версии 1.0.0, который распространяется вместе с Elyra. v1.4.1 (и ниже). Чтобы обойти проблему, замените localhost на 127.0.0.1 в конфигурации среды выполнения, например http://127.0.0.1:31380/pipeline.

Изменить: с доступностью Elyra v1.5 +, для которой требуется более новая версия kfp пакет, вы также можете обновить Elyra, чтобы решить эту проблему.

person ptitzler    schedule 16.11.2020