1

我正在尝试使用 kubernetes 设置大三角帆并收到错误:用户无法列出命名空间。

我无权访问集群范围内的列表命名空间。是否可以在不访问集群范围内的列表命名空间的情况下设置和应用 hal 配置?如果是,请告诉我步骤。

下面我提一下命令供参考:

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

问候, 阿贾兹

4

2 回答 2

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
于 2018-09-20T18:32:46.547 回答
1

你可以在没有 ClusterRole 的情况下做到这一点。经测试,按预期工作。

说明

配置 Spinnaker 以安装在 Kubernetes 中

重要提示:默认情况下,这会将 Spinnaker 限制为部署到指定的命名空间。如果您希望能够部署到其他命名空间,请添加第二个云提供商目标或删除该--namespaces标志。

使用 Halyard hal 命令行工具配置 Halyard 以在您的 Kubernetes 集群中安装 Spinnaker

hal config deploy edit \
  --type distributed \
  --account-name ${ACCOUNT_NAME} \
  --location ${NAMESPACE}
于 2019-07-08T11:03:12.980 回答