When I run this kubeflow tutorial notebook, I got ApiException: (500) Reason: Internal Server Error
.
Environment:
- minikube version: (Server version
v1.21.14
) - kubectl version:
v1.21.14
Code snippet:
# Specify pipeline argument values
arguments = {'a': '7', 'b': '8'}
# Launch a pipeline run given the pipeline function definition
kfp.Client().create_run_from_pipeline_func(calc_pipeline, arguments=arguments,
experiment_name=EXPERIMENT_NAME)
# The generated links below lead to the Experiment page and the pipeline run details page, respectively
Error message:
--------------------------------------------------------------------------- ApiException Traceback (most recent call
> last) Input In [8], in <cell line: 4>()
> 2 arguments = {'a': '7', 'b': '8'}
> 3 # Launch a pipeline run given the pipeline function definition
> ----> 4 kfp.Client().create_run_from_pipeline_func(calc_pipeline, arguments=arguments,
> 5 experiment_name=EXPERIMENT_NAME)
>
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:781, in
> Client.create_run_from_pipeline_func(self, pipeline_func, arguments,
> run_name, experiment_name, pipeline_conf, namespace, mode,
> launcher_image, pipeline_root)
> 775 pipeline_package_path = os.path.join(tmpdir, 'pipeline.yaml')
> 776 compiler.Compiler(mode=mode, launcher_image=launcher_image).compile(
> 777 pipeline_func=pipeline_func,
> 778 package_path=pipeline_package_path,
> 779 pipeline_conf=pipeline_conf)
> --> 781 return self.create_run_from_pipeline_package(
> 782 pipeline_file=pipeline_package_path,
> 783 arguments=arguments,
> 784 run_name=run_name,
> 785 experiment_name=experiment_name,
> 786 namespace=namespace,
> 787 pipeline_root=pipeline_root,
> 788 )
>
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:842, in
> Client.create_run_from_pipeline_package(self, pipeline_file,
> arguments, run_name, experiment_name, namespace, pipeline_root)
> 838 experiment_name = overridden_experiment_name or 'Default'
> 839 run_name = run_name or (pipeline_name ' '
> 840 datetime.datetime.now().strftime(
> 841 '%Y-%m-%d %H-%M-%S'))
> --> 842 experiment = self.create_experiment(name=experiment_name, namespace=namespace)
> 843 run_info = self.run_pipeline(
> 844 experiment_id=experiment.id,
> 845 job_name=run_name,
> 846 pipeline_package_path=pipeline_file,
> 847 params=arguments,
> 848 pipeline_root=pipeline_root)
> 849 return RunPipelineResult(self, run_info)
>
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:366, in
> Client.create_experiment(self, name, description, namespace)
> 364 experiment = None
> 365 try:
> --> 366 experiment = self.get_experiment(experiment_name=name, namespace=namespace)
> 367 except ValueError as error:
> 368 # Ignore error if the experiment does not exist.
> 369 if not str(error).startswith('No experiment is found with name'):
>
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:478, in
> Client.get_experiment(self, experiment_id, experiment_name, namespace)
> 468 experiment_filter = json.dumps({
> 469 "predicates": [
> 470 { (...)
> 475 ]
> 476 })
> 477 if namespace:
> --> 478 result = self._experiment_api.list_experiment(
> 479 filter=experiment_filter,
> 480 resource_reference_key_type=kfp_server_api.models.api_resource_type.ApiResourceType.NAMESPACE,
>
> 481 resource_reference_key_id=namespace)
> 482 else:
> 483 result = self._experiment_api.list_experiment(filter=experiment_filter)
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api/experiment_service_api.py:567,
> in ExperimentServiceApi.list_experiment(self, **kwargs)
> 532 """Finds all experiments. Supports pagination, and sorting on certain fields. # noqa: E501
> 533
> 534 This method makes a synchronous HTTP request by default. To make an (...)
> 564 :rtype: ApiListExperimentsResponse
> 565 """
> 566 kwargs['_return_http_data_only'] = True
> --> 567 return self.list_experiment_with_http_info(**kwargs)
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api/experiment_service_api.py:668,
> in ExperimentServiceApi.list_experiment_with_http_info(self, **kwargs)
> 665 # Authentication setting
> 666 auth_settings = ['Bearer'] # noqa: E501
> --> 668 return self.api_client.call_api(
> 669 '/apis/v1beta1/experiments', 'GET',
> 670 path_params,
> 671 query_params,
> 672 header_params,
> 673 body=body_params,
> 674 post_params=form_params,
> 675 files=local_var_files,
> 676 response_type='ApiListExperimentsResponse', # noqa: E501
> 677 auth_settings=auth_settings,
> 678 async_req=local_var_params.get('async_req'),
> 679 _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501
> 680 _preload_content=local_var_params.get('_preload_content', True),
> 681 _request_timeout=local_var_params.get('_request_timeout'),
> 682 collection_formats=collection_formats)
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:364,
> in ApiClient.call_api(self, resource_path, method, path_params,
> query_params, header_params, body, post_params, files, response_type,
> auth_settings, async_req, _return_http_data_only, collection_formats,
> _preload_content, _request_timeout, _host)
> 327 """Makes the HTTP request (synchronous) and returns deserialized data.
> 328
> 329 To make an async_req request, set the async_req parameter. (...)
> 361 then the method will return the response directly.
> 362 """
> 363 if not async_req:
> --> 364 return self.__call_api(resource_path, method,
> 365 path_params, query_params, header_params,
> 366 body, post_params, files,
> 367 response_type, auth_settings,
> 368 _return_http_data_only, collection_formats,
> 369 _preload_content, _request_timeout, _host)
> 371 return self.pool.apply_async(self.__call_api, (resource_path,
> 372 method, path_params,
> 373 query_params, (...)
> 381 _request_timeout,
> 382 _host))
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:188,
> in ApiClient.__call_api(self, resource_path, method, path_params,
> query_params, header_params, body, post_params, files, response_type,
> auth_settings, _return_http_data_only, collection_formats,
> _preload_content, _request_timeout, _host)
> 186 except ApiException as e:
> 187 e.body = e.body.decode('utf-8') if six.PY3 else e.body
> --> 188 raise e
> 190 content_type = response_data.getheader('content-type')
> 192 self.last_response = response_data
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:181,
> in ApiClient.__call_api(self, resource_path, method, path_params,
> query_params, header_params, body, post_params, files, response_type,
> auth_settings, _return_http_data_only, collection_formats,
> _preload_content, _request_timeout, _host)
> 177 url = _host resource_path
> 179 try:
> 180 # perform request and return response
> --> 181 response_data = self.request(
> 182 method, url, query_params=query_params, headers=header_params,
> 183 post_params=post_params, body=body,
> 184 _preload_content=_preload_content,
> 185 _request_timeout=_request_timeout)
> 186 except ApiException as e:
> 187 e.body = e.body.decode('utf-8') if six.PY3 else e.body
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:389,
> in ApiClient.request(self, method, url, query_params, headers,
> post_params, body, _preload_content, _request_timeout)
> 387 """Makes the HTTP request using RESTClient."""
> 388 if method == "GET":
> --> 389 return self.rest_client.GET(url,
> 390 query_params=query_params,
> 391 _preload_content=_preload_content,
> 392 _request_timeout=_request_timeout,
> 393 headers=headers)
> 394 elif method == "HEAD":
> 395 return self.rest_client.HEAD(url,
> 396 query_params=query_params,
> 397 _preload_content=_preload_content,
> 398 _request_timeout=_request_timeout,
> 399 headers=headers)
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/rest.py:230, in
> RESTClientObject.GET(self, url, headers, query_params,
> _preload_content, _request_timeout)
> 228 def GET(self, url, headers=None, query_params=None, _preload_content=True,
> 229 _request_timeout=None):
> --> 230 return self.request("GET", url,
> 231 headers=headers,
> 232 _preload_content=_preload_content,
> 233 _request_timeout=_request_timeout,
> 234 query_params=query_params)
>
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/rest.py:224, in
> RESTClientObject.request(self, method, url, query_params, headers,
> body, post_params, _preload_content, _request_timeout)
> 221 logger.debug("response body: %s", r.data)
> 223 if not 200 <= r.status <= 299:
> --> 224 raise ApiException(http_resp=r)
> 226 return r
>
> ApiException: (500) Reason: Internal Server Error HTTP response
> headers: HTTPHeaderDict({'content-type': 'application/json', 'date':
> 'Sun, 14 Aug 2022 05:07:05 GMT', 'x-envoy-upstream-service-time':
> '26', 'server': 'envoy', 'transfer-encoding': 'chunked'}) HTTP
> response body: {"error":"Internal error: Unauthenticated: Request
> header error: there is no user identity header.: Request header error:
> there is no user identity header.\nFailed to authorize with API
> resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","code":13,"message":"Internal
> error: Unauthenticated: Request header error: there is no user
> identity header.: Request header error: there is no user identity
> header.\nFailed to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","details":[{"@type":"type.googleapis.com/api.Error","error_message":"Internal
> error: Unauthenticated: Request header error: there is no user
> identity header.: Request header error: there is no user identity
> header.\nFailed to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","error_details":"Internal
> error: Unauthenticated: Request header error: there is no user
> identity header.: Request header error: there is no user identity
> header.\nFailed to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581"}]}
Update
After I got the comment from Adiii, I try again.
I got 404 response error. KeyError: 'authservice_session'
caused by the error.
I do port-forwarding by
kubectl port-forward svc/istio-ingressgateway -n istio-system 8888:80
Code snippet:
import requests
HOST = "http://localhost:8888/"
USERNAME = "[email protected]"
PASSWORD = "12341234"
NAMESPACE = "kubeflow-user-example-com"
session = requests.Session()
response = session.get(HOST)
print(response)
headers = {
"Content-Type": "application/x-www-form-urlencoded",
}
data = {"login": USERNAME, "password": PASSWORD}
session.post(response.url, headers=headers, data=data)
session_cookie = session.cookies.get_dict()["authservice_session"]
client = kfp.Client(
host=f"{HOST}/pipeline",
cookies=f"authservice_session={session_cookie}",
namespace=NAMESPACE,
)
print(client.list_pipelines())
Error message:
<Response [404]>
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Input In [8], in <cell line: 17>()
15 data = {"login": USERNAME, "password": PASSWORD}
16 session.post(response.url, headers=headers, data=data)
---> 17 session_cookie = session.cookies.get_dict()["authservice_session"]
19 client = kfp.Client(
20 host=f"{HOST}/pipeline",
21 cookies=f"authservice_session={session_cookie}",
22 namespace=NAMESPACE,
23 )
25 print(client.list_pipelines())
KeyError: 'authservice_session'
CodePudding user response:
I could solve the additional issue by myself.
kubectl get svc -n istio-system
shows ip address of istio-ingressgateway
.
I used it then I can get 200 response and could run notebook successfully.