【发布时间】:2021-01-19 21:25:58
【问题描述】:
我目前正在使用 Minikube 和 k8s api-server。我可以使用默认服务帐户授权 HTTP 请求(将默认令牌解码为 base64 并作为授权标头提供),但我很难对新创建的用户做同样的事情。
我已经为用户创建了所有相关的.crt、.key文件,以及角色、rolebinding、clusterRole、clusterRoleBinding权限。
我之前尝试将/Users/ionush/k8s/auth/gameadmin.crt 解码为base64 并添加到授权标头,并设置minikube start --extra-config=apiserver.client-ca-file=/Users/ionush/k8s/auth/gameadmin.crt,但这不起作用。如何通过 HTTP 验证用户身份?
这是我的 .kube/config 文件:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/ionush/.minikube/ca.crt
server: https://192.168.64.7:8443
name: minikube
contexts:
- context:
cluster: minikube
user: gameadmin
name: game-context
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: gameadmin
user:
client-certificate: /Users/ionush/k8s/auth/gameadmin.crt
client-key: /Users/ionush/k8s/auth/gameadmin.key
- name: minikube
user:
client-certificate: /Users/ionush/.minikube/profiles/minikube/client.crt
client-key: /Users/ionush/.minikube/profiles/minikube/client.key
【问题讨论】:
-
是本地环境还是云环境?你用的是什么 K8s 和 Minikube 版本?您是如何创建证书的?
-
这是我的本地环境客户端版本:v1.19.2 服务器版本:v1.19.2 minikube 版本:v1.13.1 我使用 openssl 签署了证书,如此处所述。 kubernetes.io/docs/reference/access-authn-authz/…。证书没有问题,我可以在本地终端切换用户时使用它们。只需要知道通过 HTTP 进行身份验证的正确流程
标签: kubernetes minikube kube-apiserver