首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kubernetes安装Istio自动侧喷: istio-inializer.yaml验证失败

在Kubernetes安装Istio自动侧喷: istio-inializer.yaml验证失败
EN

Stack Overflow用户
提问于 2017-09-27 17:01:21
回答 1查看 725关注 0票数 0

我试着在库伯内特斯安装自动侧射。我的环境由三个主环境和两个节点组成,是使用Azure容器服务市场产品在Azure上构建的。

在找到这里的文档之后,到目前为止,我已经启用了RBACDynamicAdmissionControl。我通过在Kubernetes母版上修改/etc/kubernetes/istio-inializer.yaml,添加以下内容以红色概述,然后使用Unix命令reboot重新启动Kubernetes母版来实现这一点。

文档的下一步是使用kubectl应用yaml。我假设文档打算让用户在这一步之前将Istio存储库和cd克隆到其中,但这一点没有提到。

代码语言:javascript
复制
git clone https://github.com/istio/istio.git
cd istio
kubectl apply -f install/kubernetes/istio-initializer.yaml

在此之后发生以下错误:

代码语言:javascript
复制
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,则将生成此错误:

代码语言:javascript
复制
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块有关,但我不确定在这个块中具体是什么不正确。

代码语言:javascript
复制
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的安装版本:

代码语言:javascript
复制
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?

我对库伯内特斯的工作还很陌生,所以如果有人能帮忙的话,我会非常感激的。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。

希望这会有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46453447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档