在kubernetes 1.8.4上,我试图让kubernetes用户访问我们的仪表板。
当使用管理上下文代理时,所有令牌在登录到仪表板时都起作用。但是我的用户没有管理上下文,只有我有,所以他们使用自己的上下文来代理。在这种情况下,他们会出错。
步骤:
>
~/。kube/config
kubectl
proxy,仍然在该用户的上下文中请在浏览器中查看:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "
forbidden: User \"system:serviceaccount:default:<username>\"
cannot get path \"/ui\"",
"reason": "Forbidden",
"details": {},
"code": 403
}
尝试http://localhost:8001/api/v1/namespaces/kube-system/services/https: kubernetes-dashboard:/代理/
请在浏览器中查看:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "
services \"https:kubernetes-dashboard:\" is forbidden:
User \"system:serviceaccount:default:<username>\" cannot get services/proxy in the namespace \"kube-system\"",
"reason": "Forbidden",
"details": {
"name": "https:kubernetes-dashboard:",
"kind": "services"
},
"code": 403
}
显然是权限问题。不过,我不确定用户需要哪个权限才能访问仪表板。我非常犹豫是否给他们库贝系统命名空间的权限。
当我停止kubectl代理,然后切换到管理上下文,启动代理并重试相同的网址,我得到仪表板登录页面。
在使用用户的上下文时,我需要做什么才能获得相同的结果?
我也有同样的情况,在这篇文章中找到了我的答案:库伯内特斯仪表板安装深度潜水。它工作得很完美。
其想法是从kubernetes admin用户的证书和密钥创建一个PKCS#12文件。将其导入浏览器,然后通过API服务器访问仪表板(我没有使用代理)。请注意,SKIP不会授予任何访问权限。正常情况下使用承载令牌登录,仪表板权限受用户令牌的限制。
除了提供对kube系统的访问之外,我找不到其他方法,所以我使用了以下角色和绑定:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
namespace: kube-system
name: user-role-dashboard
rules:
- apiGroups: [""]
resources:
- services
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- services/proxy
verbs: ["get", "list", "watch", "create"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
namespace: kube-system
name: user-binding-dashboard
subjects:
- kind: User
name: system:serviceaccount:<namespace>:<username>
apiGroup: ""
roleRef:
kind: Role
name: user-role-dashboard
apiGroup: ""
仍然想知道是否有更好的方法,欢迎您的想法和建议!
我有一个Kubernetes集群,各种资源运行良好。我试图让仪表板工作,但在启动仪表板并输入服务帐户令牌时出现以下错误。 persistentvolumeclaims被禁止:用户“system:serviceaccount:kube system:kubernetes dashboard”无法在命名空间“default”中的API组“”中列出资源“persistentvolumeclaims” 它
> Kubectl apply-f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recomended.yaml kubectl代理--address=“192.168.56.12”-p 8001-accept-hosts='^*$' [root@k8s-master~]#kubectl
当我执行时 kubectl代理 它为我提供了o/p:开始在虚拟机上的127.0.0.1:8001上提供服务 我想在主机上看到仪表板,这给我带来了问题。 192 168 113 8001 api命名空间库贝系统服务https kubernetes仪表板代理 有什么问题,我没明白。我是库伯内特斯的新手。谢谢
我正在尝试在twitter上创建一个应用程序。当我登录时,它会给我以下错误- 错误-是否授权“”使用您的帐户? 我得到以下错误在访问请求令牌(https://api.twitter.com/oauth/request_token)- 错误-无法验证oauth签名和令牌。 我正在做的是重定向用户到: https://twitter.com/oauth/authenticate?oauth_token
我目前正在尝试使用ADFS 2016认证angular 7应用程序(使用angular-oauth2-oidc)。到目前为止,它工作得很好。当我访问应用程序时,我被重定向到ADFS登录页面,在那里输入我的凭据并获得令牌。 现在,当应用程序调用web API时,它在请求头中发送访问令牌。ADFS返回的访问令牌如下所示: 问题是web API必须知道进行调用的用户的ID(因为在应用程序级别定义了一些权