【发布时间】:2019-08-21 09:30:51
【问题描述】:
我创建了一个 Kubernetes 清单文件来创建服务帐户和角色。看起来是这样的:
apiVersion: v1
kind: ServiceAccount
metadata:
name: test-service-account
namespace: test
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: read-only-api
rules:
- apiGroups:
- ""
resources: ["*"]
verbs:
- get
- list
- watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: read-only-api
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: read-only-api
subjects:
- kind: ServiceAccount
name: test-service-account
namespace: test
但是,当我尝试执行和应用清单时,我收到了这个错误。我不确定我是否有缩进或其他问题。
解析 service-account.yml 时出错:将 YAML 转换为 JSON 时出错:yaml:第 10 行:未找到预期的“-”指示符
非常感谢所有帮助。我试过来回缩进它,将“-”指示符添加到它抱怨的特定行 - 但随后我收到一条新的错误消息:
验证“service-account.yml”时出错:验证数据时出错:ValidationError(ClusterRole.metadata):io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta 的类型无效:得到“array” ,预期的“地图”;如果您选择忽略这些错误,请使用 --validate=false
关闭验证谢谢!
【问题讨论】:
-
ClusterRoleBinding的错误标识 >subjects...name属性和namespaces必须遵循kind标识。 -
额外提示:运行
kubectl create clusterrolebinding read-only-api --clusterrole=read-only-api --serviceaccount=test:test-service-account -o yaml --dry-run将使用您提供的信息打印(试运行)一个有效的集群角色绑定 -
感谢@gonzalesraul 解决了我的问题。
标签: docker kubernetes docker-for-mac