我正在通过“使用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"
请支持。
答案 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。