Reputation: 11
I am installing kubeflow on kubernetes cluster via "Kubeflow Deployment with kfctl_k8s_istio" and it is giving below error.
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"
Some Istio PODs are not starting and giving below error on kubernetes dashboard.
"MountVolume.SetUp failed for volume "istio-token" : failed to fetch token: the API server does not have TokenRequest endpoints enabled"
Please support.
Upvotes: 1
Views: 2370
Reputation: 8830
Why do we see this error?
"MountVolume.SetUp failed for volume "istio-token" : failed to fetch token: the API server does not have TokenRequest endpoints enabled"
As mentioned here
To authenticate with the Istio control plane, the Istio proxy will use a Service Account token. Kubernetes supports two forms of these tokens:
- Third party tokens, which have a scoped audience and expiration.
- First party tokens, which have no expiration and are mounted into all pods.
Because the properties of the first party token are less secure, Istio will default to using third party tokens. However, this feature is not enabled on all Kubernetes platforms.
While most cloud providers support this feature now, many local development tools and custom installations may not.
If you use minikube
You can specify that with values.global.jwtPolicy
istioctl manifest generate --set profile=demo --set values.global.jwtPolicy=first-party-jwt
There is related github issue about that.
If you use microk8s
You can try to change these 2 lines to /var/snap/microk8s/current/args/kube-apiserver as mentioned here by @tomalbrecht.
--service-account-signing-key-file=${SNAP_DATA}/certs/serviceaccount.key
--service-account-issuer=kubernetes.default.svc
There is related github issue about that.
If you use kubeadm
You can try with this.
Upvotes: 1