如何在Prem kubernetes集群上的现有版本上安装kubeflow

时间:2020-11-02 07:00:31

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

我正在通过“使用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"

请支持。

1 个答案:

答案 0 :(得分: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支持以下两种形式的令牌:

  • 第三方令牌,具有特定范围的受众和有效期。
  • 第一方令牌,该令牌没有过期并且已安装到所有吊舱中。

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

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


解决方案

如果您使用minikube

您可以使用values.global.jwtPolicy

进行指定
istioctl manifest generate --set profile=demo --set values.global.jwtPolicy=first-party-jwt

与此相关的github issue


如果您使用microk8s

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

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

与此相关的github issue


如果您使用kubeadm

您可以尝试使用this