如何使用用户名和密码对Kubernetes kubectl进行身份验证?

时间:2018-05-31 14:32:00

标签: kubernetes kubectl

我有一个用户名和密码,我如何用它们验证kubectl?

我要运行哪个命令?

我已阅读:https://kubernetes.io/docs/reference/access-authn-authz/authorization/https://kubernetes.io/docs/reference/access-authn-authz/authentication/但在此案例中找不到相关信息。

kubectl config set-credentials cluster-admin --username=admin --password=uXFGweU9l35qcif

https://kubernetes-v1-4.github.io/docs/user-guide/kubectl/kubectl_config_set-credentials/

以上似乎不起作用: kubectl get pods
Error from server (Forbidden): pods is forbidden: User "client" cannot list pods in the namespace "default": Unknown user "client"

2 个答案:

答案 0 :(得分:1)

Kubernetes提供了许多不同的身份验证机制。直接向群集提供用户名和密码(而不是使用OIDC提供程序)将表明您正在使用基本身份验证,这不是许多版本的默认选项。

假设群集支持基本身份验证,您列出的语法显示正确。

您看到的错误类似于here,可能表明您使用的群集当前不支持您正在使用的身份验证方法。

有关Kubernetes发行版和您正在使用的版本的其他信息可以更容易地提供更好的答案,因为k8s处理身份验证的方式有很多种。

答案 1 :(得分:0)

您应该为验证用户设置一个组。

示例:

password1,user1,userid1,system:masters

password2,user2,userid2

参考:

“将凭据与system:masters组一起使用,该凭据通过默认绑定绑定到cluster-admin超级用户角色。” https://kubernetes.io/docs/reference/access-authn-authz/rbac/