您能否将 kubernetes.io/basic-auth 类型的机密绑定到 ServiceAccount 机密以进行 API 访问

问题描述

我正在尝试使用 ServiceAccount 访问我的 Kubernetes API,该 ServiceAccount 使用用户定义的机密和一些 ClusterRoles。我尝试将 kubernetes.io/basic-auth 类型的 Secret 添加到我的 ServiceAccount 并删除所有 ClusterRoleBinding,只留下:

apiVersion: v1
kind: Secret
Metadata:
  name: my-token
  annotations:
    kubernetes.io/service-account.name: myaccount
type: kubernetes.io/basic-auth
stringData:
  username: admin
  password: t0p-Secret
---
apiVersion: v1
kind: ServiceAccount
Metadata:
  name: myaccount
secrets:
- name: my-token

但是当我尝试使用基本身份验证发送 GET 请求时,响应是 401 Unauthorized。使用 ServiceAccount 自动生成的 JWT 令牌工作正常,但我需要能够设置令牌或基本身份验证。

curl --location --request GET 'https://my-cluster.com:6443/api/' \
--header 'Authorization: Basic YWRtaW46dDBwLVNlY3JldA='

或邮递员:

postman-request

这是我的 kubectl 版本:

Server Version: version.Info{Major:"1",Minor:"20",GitVersion:"v1.20.4+k3s1",GitCommit:"838a906ab5eba62ff529d6a3a746384eba810758",GitTreeState:"clean",BuildDate:"2021-02-22T19:49:27Z",GoVersion:"go1.15.8",Compiler:"gc",Platform:"linux/amd64"}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)