0

我使用 Kubeflow (v0.6) 和 Seldon Core 构建了一个部署管道来为 ML 模型提供服务,但是现在部署了模型,我不知道如何通过身份验证。分层并使用服务。

我的 kubernetes 实例在裸机上,设置与此相同:https ://www.kubeflow.org/docs/started/getting-started-k8s/

我能够按照这些说明启动示例应用程序并为 staticClient 发出 IDToken,但是当我将令牌作为“授权:承载”传递时,我被重定向到 dex 登录页面。

(部分)Dex configMap:

staticClients:
- id: kubeflow-authservice-oidc
  redirectURIs:
  # After authenticating and giving consent, dex will redirect to
  # this url for the specific client.
  - https://10.50.11.180/login/oidc
  name: 'Kubeflow AuthService OIDC'
  secret: [secret]
- id: model-consumer-1
  secret: [secret]
  redirectURIs:
  - 'http://127.0.0.1:5555/callback'

当我尝试访问该服务时:

curl -H "Authorization: Bearer $token" -k https://10.50.11.180/seldon/kubeflow/machine-failure-classifier-6e462a70-a995-11e9-b30b-080027dfd9f4/api/v0.1/predictions

<a href="https://10.50.11.180:5556/dex/auth?client_id=kubeflow-authservice-oidc&amp;redirect_uri=https%3A%2F%2F10.50.11.180%2Flogin%2Foidc&amp;response_type=code&amp;scope=openid+profile+email+groups&amp;state=X40FJuKC">Found</a>.

我错过了什么?:(

4

2 回答 2

0

你试过VirtualService吗?

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: <name-of-your-choice>
spec:
  gateways:
  - <your-gateway>
  hosts:
  - <your-host>
  http:
  - match:
    - uri:
        prefix: "<your-api-path-uri>"
    rewrite:
      uri: "<your-rewrite-logic>"
    route:
    - destination:
        host: <name-of-your-service>.<namespace>.svc.<cluster-domain>
        port: <port-of-the-service>

虚拟服务将帮助您按指定路由流量。

于 2019-07-30T18:30:16.673 回答
0

我发现使用 Istio 为 seldon 模型提供服务时,如果它们位于“kubeflow”以外的命名空间中,它们的效果会更好。

我遵循了这些说明:https ://docs.seldon.io/projects/seldon-core/en/latest/examples/istio_canary.html ,(创建了新的网关和命名空间)并且能够绕过Dex。

于 2019-07-22T10:59:17.937 回答