我有一个带有主节点和工作节点的 Kubernetes 集群设置。
Kubectl cluster-info 显示 kubernetes-master 以及 kube-dns 成功运行。
我正在尝试访问下面的 URL,因为它是我的组织内部的,所以下面的 URL 对外部世界不可见。
https://10.118.3.22:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy https://10.118.3.22:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
但当我访问它时出现以下错误 -
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "services \"kube-dns:dns\" is forbidden: User \"system:anonymous\" cannot get resource \"services/proxy\" in API group \"\" in the namespace \"kube-system\"",
"reason": "Forbidden",
"details": {
"name": "kube-dns:dns",
"kind": "services"
},
"code": 403
}
请让我知道如何授予匿名用户完全访问权限。我读过 RBAC 中提到的https://kubernetes.io/docs/reference/access-authn-authz/rbac/ https://kubernetes.io/docs/reference/access-authn-authz/rbac/但无法弄清楚我到底需要做什么。谢谢
您可以向匿名用户授予管理员权限,但我强烈反对这样做。这将使集群外部的任何人都可以使用该 url 访问服务。
即使在您决定向匿名用户授予所有访问权限之后,您也可以通过以下方式执行此操作:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: anonymous-role
rules:
- apiGroups: [""]
resources: ["services/proxy"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: anonymous-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: anonymous-role
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: system:anonymous
这将使匿名:用户代理您的服务,而不是所有资源。如果您想要所有需要提供的资源resources: ["*"]
处于匿名角色。
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)