我试图在minikube 1.0.0上部署的Kubernetes 1.13.5上安装Istio 1.13.1,但最终还是出现一些错误。这是安装日志:
$ minikube start --memory=4096 --disk-size=30g --kubernetes-version=v1.13.5 --profile=istio
minikube v1.0.0 on darwin (amd64)
Downloading Kubernetes v1.13.5 images in the background ...
Creating virtualbox VM (CPUs=2, Memory=4096MB, Disk=30000MB) ...
2019/04/19 19:51:56 No matching credentials were found, falling back on anonymous
2019/04/19 19:51:56 No matching credentials were found, falling back on anonymous
2019/04/19 19:51:56 No matching credentials were found, falling back on anonymous
2019/04/19 19:51:56 No matching credentials were found, falling back on anonymous
"istio" IP address is 192.168.99.104
Configuring Docker as the container runtime ...
Version of container runtime is 18.06.2-ce
⌛ Waiting for image downloads to complete ...
✨ Preparing Kubernetes environment ...
Downloading kubeadm v1.13.5
Downloading kubelet v1.13.5
Pulling images required by Kubernetes v1.13.5 ...
Launching Kubernetes v1.13.5 using kubeadm ...
⌛ Waiting for pods: apiserver proxy etcd scheduler controller dns
Configuring cluster permissions ...
Verifying component health .....
kubectl is now configured to use "istio"
Done! Thank you for using minikube!
$ ./bin/istioctl version
version.BuildInfo{Version:"1.1.3", GitRevision:"d19179769183541c5db473ae8d062ca899abb3be", User:"root", Host:"fbd493e1-5d72-11e9-b00d-0a580a2c0205", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.2-56-gd191797"}
$ kubectl create -f install/kubernetes/istio-demo.yaml
namespace/istio-system created
customresourcedefinition.apiextensions.k8s.io/virtualservices.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/destinationrules.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/serviceentries.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/gateways.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/envoyfilters.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/clusterrbacconfigs.rbac.istio.io created
customresourcedefinition.apiextensions.k8s.io/policies.authentication.istio.io created
customresourcedefinition.apiextensions.k8s.io/meshpolicies.authentication.istio.io created
customresourcedefinition.apiextensions.k8s.io/httpapispecbindings.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/httpapispecs.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/quotaspecbindings.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/quotaspecs.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/rules.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/attributemanifests.config.istio.io created
...
unable to recognize "install/kubernetes/istio-demo.yaml": no matches for kind "attributemanifest" in version "config.istio.io/v1alpha2"
unable to recognize "install/kubernetes/istio-demo.yaml": no matches for kind "attributemanifest" in version
这似乎很奇怪,因为CRD似乎已经成功创建,但是当引用它们创建某些类型为这些CRD之一的对象时,它就会失败。 我省略了其他错误,但对于“处理程序”,“登录”,“规则”,“度量”,“ kubernetes”,“ DestinationRule”也是如此
在文档页面https://istio.io/docs/setup/kubernetes/上指出 Istio 1.1已经过以下Kubernetes版本的测试:1.11、1.12、1.13。
有人有想法吗?
答案 0 :(得分:4)
在docs中,有一个步骤执行CRD初始化。我看不到您的代码段中的内容,似乎正是您所缺少的。
所以:
$ for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done
您似乎缺少的CRD似乎在以下确切文件中定义:https://github.com/istio/istio/blob/master/install/kubernetes/helm/istio-init/files/crd-10.yaml,但您应该安装所有文件。
答案 1 :(得分:0)
不好,看来我已经跳过了第一步:
Install all the Istio Custom Resource Definitions (CRDs) using kubectl apply, and wait a few seconds for the CRDs to be committed in the Kubernetes API-server:
$ for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done