【问题标题】:how to install kubeflow on existing on prem kubernetes cluster如何在现有的 prem kubernetes 集群上安装 kubeflow
【发布时间】:2021-02-14 20:18:26
【问题描述】:

我正在通过“使用 kfctl_k8s_istio 部署 Kubeflow”在 kubernetes 集群上安装 kubeflow 它给出了以下错误。

WARN[0303] Encountered error applying application kubeflow-apps:  (kubeflow.error): Code 500 with message: Apply.Run : error when creating "/tmp/kout497340857": CustomResourceDefinition.apiextensions.k8s.io "seldondeployments.machinelearning.seldon.io" is invalid: [spec.validation.openAPIV3Schema.properties[spec].properties[predictors].items.properties[componentSpecs].items.properties[spec].properties[containers].items.properties[ports].items.properties[protocol].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property, spec.validation.openAPIV3Schema.properties[spec].properties[predictors].items.properties[componentSpecs].items.properties[spec].properties[initContainers].items.properties[ports].items.properties[protocol].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property, spec.validation.openAPIV3Schema.properties[spec].properties[predictors].items.properties[explainer].properties[containerSpec].properties[ports].items.properties[protocol].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property]  filename="kustomize/kustomize.go:266"

一些 Istio POD 没有启动并在 Kubernetes 仪表板上出现以下错误。

"MountVolume.SetUp failed for volume "istio-token" : failed to fetch token: the API server does not have TokenRequest endpoints enabled"

请支持。

【问题讨论】:

  • 您的基础架构是什么?你的k8s版本是多少?你看到github issue了吗?

标签: jupyter-notebook istio kubernetes-pod kubeflow kubeflow-pipelines


【解决方案1】:

问题

为什么我们会看到这个错误?

"MountVolume.SetUp failed for volume "istio-token" : failed to fetch token: the API server does not have TokenRequest endpoints enabled"

如上所述here

为了通过 Istio 控制平面进行身份验证,Istio 代理将使用服务帐户令牌。 Kubernetes 支持这些令牌的两种形式:

  • 第三方令牌,具有范围受众和有效期。
  • 第一方令牌,没有过期并安装到所有 pod 中。

由于第一方令牌的属性不太安全,Istio 将默认使用第三方令牌。但是,并非所有 Kubernetes 平台都启用此功能。

虽然现在大多数云提供商都支持此功能,但许多本地开发工具和自定义安装可能不支持。


解决方案

如果你使用 minikube

你可以用values.global.jwtPolicy指定

istioctl manifest generate --set profile=demo --set values.global.jwtPolicy=first-party-jwt

有相关的github issue关于那个。


如果你使用 microk8s

您可以尝试将这两行更改为 /var/snap/microk8s/current/args/kube-apiserver,如 @tomalbrecht 提到的 here

--service-account-signing-key-file=${SNAP_DATA}/certs/serviceaccount.key
--service-account-issuer=kubernetes.default.svc

有相关的github issue关于那个。


如果你使用 kubeadm

你可以试试this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多