我正在尝试将 Istio 与自动边车注入安装到 Kubernetes 中。我的环境由三个主节点和两个节点组成,并使用 Azure 容器服务市场产品在 Azure 上构建。
按照位于此处的文档,到目前为止,我已启用RBAC
和DynamicAdmissionControl
. 我通过/etc/kubernetes/istio-inializer.yaml
在 Kubernetes Master 上进行修改来实现这一点,方法是添加以下红色标出的内容,然后使用 Unix 命令重新启动 Kubernetes Master reboot
,.
文档中的下一步是使用kubectl
. 我假设文档打算让用户cd
在此步骤之前克隆 Istio 存储库并将其放入其中,但未提及。
git clone https://github.com/istio/istio.git
cd istio
kubectl apply -f install/kubernetes/istio-initializer.yaml
之后发生以下错误:
user@hostname:~/istio$ kubectl apply -f install/kubernetes/istio-initializer.yaml
configmap "istio-inject" configured
serviceaccount "istio-initializer-service-account" configured
error: error validating "install/kubernetes/istio-initializer.yaml": error validating data: found invalid field initializers for v1.ObjectMeta; if you choose to ignore these errors, turn validation off with --validate=false
如果我尝试kubectl apply
使用提到的标志执行validate=false
,则会生成此错误:
user@hostname:~/istio$ kubectl apply -f install/kubernetes/istio-initializer.yaml --validate=false
configmap "istio-inject" configured
serviceaccount "istio-initializer-service-account" configured
deployment "istio-initializer" configured
error: unable to recognize "install/kubernetes/istio-initializer.yaml": no matches for admissionregistration.k8s.io/, Kind=InitializerConfiguration
我不知道从这里去哪里。该问题似乎与该admissionregistration.k8s.io/v1alpha1
块中的块有关,yaml
但我不确定该块中具体有什么不正确的。
apiVersion: admissionregistration.k8s.io/v1alpha1
kind: InitializerConfiguration
metadata:
name: istio-sidecar
initializers:
- name: sidecar.initializer.istio.io
rules:
- apiGroups:
- "*"
apiVersions:
- "*"
resources:
- deployments
- statefulsets
- jobs
- daemonsets
安装的 Kubernetes 版本:
user@hostname:~/istio$ kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.6", GitCommit:"7fa1c1756d8bc963f1a389f4a6937dc71f08ada2", GitTreeState:"clean", BuildDate:"2017-06-16T18:21:54Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.6", GitCommit:"7fa1c1756d8bc963f1a389f4a6937dc71f08ada2", GitTreeState:"clean", BuildDate:"2017-06-16T18:21:54Z", GoVersion:"go1.7.6", Compiler:"gc", Platform:"linux/amd64"}
我怀疑这是版本不匹配。作为后续问题,是否可以使用 ACS 将 kubernetes >= 1.7.4 的版本部署到 Azure?
我对使用 Kubernetes 还很陌生,所以如果有人能提供帮助,我将不胜感激。感谢您的时间。