我试着在库伯内特斯安装自动侧射。我的环境由三个主环境和两个节点组成,是使用Azure容器服务市场产品在Azure上构建的。
在找到这里的文档之后,到目前为止,我已经启用了RBAC和DynamicAdmissionControl。我通过在Kubernetes母版上修改/etc/kubernetes/istio-inializer.yaml,添加以下内容以红色概述,然后使用Unix命令reboot重新启动Kubernetes母版来实现这一点。
文档的下一步是使用kubectl应用yaml。我假设文档打算让用户在这一步之前将Istio存储库和cd克隆到其中,但这一点没有提到。
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如果我尝试使用上述标志validate=false执行kubectl apply,则将生成此错误:
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我不知道从这里往哪里走。这个问题似乎与yaml中的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
- daemonsetsKubernetes的安装版本:
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?
我对库伯内特斯的工作还很陌生,所以如果有人能帮忙的话,我会非常感激的。谢谢您抽时间见我。
发布于 2017-09-28 17:15:34
这似乎是一个版本控制问题,因为前面提到的k8s version> 1.7支持alpha特性(https://kubernetes.io/docs/admin/extensible-admission-controllers/#what-are-initializers)。
1.7引入两个alpha特性:初始器和外部接纳 Webhooks解决了这些限制。这些特性允许在运行时开发出树外的接纳控制器并进行配置。
可以将kubernetes >= 1.7.4版本部署到Azure。请注意使用门户的已部署版本。但是,如果使用acs-egnine生成ARM模板,则可以部署1.7.5版本的集群。
您可以参考这里的过程https://github.com/Azure/acs-engine。从根本上讲,它包括三个步骤。首先,您应该通过引用clusterDefinition部分来创建json文件。要使用版本1.7.5,您应该将属性"orchestratorRelaease“指定为"1.7”,并通过将属性"enableRbac“指定为true来启用RBAC。其次,使用acs (版本>= 0.6.0)将json文件解析为ARM模板(应该创建azuredeploy.json& azuredeploy.parameters.json )。最后,使用powershell中的命令“New”将集群部署到Azure。
希望这会有所帮助:)
https://stackoverflow.com/questions/46453447
复制相似问题