我正在尝试使用kubernetes设置大三角帆并出现错误:用户无法列出名称空间。
我无权访问集群范围内的列表名称空间。是否可以在群集范围内设置和应用半配置而不访问列表名称空间?如果是,请让我知道步骤。
下面我提到该命令以供参考:
hal deploy apply
+ Get current deployment
Success
- Prep deployment
Failure
Problems in default.provider.kubernetes.my-k8s-account:
! ERROR Unable to communicate with your Kubernetes cluster: Failure
executing: GET at: https://<company>/api/v1/namespaces. Message:
Forbidden! User apc doesn't have permission. namespaces is forbidden: User
"system:anonymous" cannot list namespaces at the cluster scope..
? Unable to authenticate with your Kubernetes cluster. Try using
kubectl to verify your credentials.
- Failed to prep Spinnaker deployment
$ kubectl get ns
No resources found.
Error from server (Forbidden): namespaces is forbidden: User "ds:uid:2319639648" cannot list namespaces at the cluster scope
关于, 阿贾兹
答案 0 :(得分:1)
简短回答:否。
您可以尝试让您的管理员为您提供对有权访问已读取名称空间的ClusterRole
+ RoleBinding
的访问权限。
类似这样的东西:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: namespace-reader
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "watch", "list"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-all-namespaces
subjects:
- kind: User
name: your-user
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: namespace-reader
apiGroup: rbac.authorization.k8s.io
答案 1 :(得分:1)
您可以在没有ClusterRole的情况下进行操作。 经过测试,按预期工作。
请参见instruction。
Configure Spinnaker to install in Kubernetes
重要:默认情况下,这将限制您的Spinnaker部署到指定的名称空间。如果您希望能够部署到其他名称空间,请添加第二个云提供程序目标或删除--namespaces
标志。
使用Halyard hal命令行工具将Halyard配置为在Kubernetes集群中安装Spinnaker
hal config deploy edit \
--type distributed \
--account-name ${ACCOUNT_NAME} \
--location ${NAMESPACE}