Kav*_*hka 38 kubernetes kubectl
我曾经用来kubectl create serviceaccount sa1创建服务帐户。然后我使用kubectl get serviceaccount sa1 -oyaml命令来获取服务帐户信息。但它返回如下。
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: "2022-05-16T08:03:50Z"
name: sa1
namespace: default
resourceVersion: "19651"
uid: fdddacba-be9d-4e77-a849-95ca243781cc
Run Code Online (Sandbox Code Playgroud)
我需要得到,
secrets:
- name: <secret>
Run Code Online (Sandbox Code Playgroud)
部分。但它不会返回秘密。如何修复它?
Dav*_*aze 90
在 Kubernetes 1.24 中,ServiceAccount 令牌密钥不再自动生成。请参阅1.24 变更日志文件中的“紧急升级说明”:
该
LegacyServiceAccountTokenNoAutoGeneration功能门是测试版,默认启用。启用后,不再为每个 ServiceAccount 自动生成包含服务帐户令牌的 Secret API 对象。使用TokenRequest API 获取服务帐户令牌,或者如果需要未过期的令牌,请按照本指南为令牌控制器创建一个 Secret API 对象,以使用服务帐户令牌填充。(#108309,@zshihang)
这意味着,在 Kubernetes 1.24 中,您需要手动创建 Secret;token该字段中的密钥将data自动为您设置。
apiVersion: v1
kind: Secret
metadata:
name: sa1-token
annotations:
kubernetes.io/service-account.name: sa1
type: kubernetes.io/service-account-token
Run Code Online (Sandbox Code Playgroud)
由于您是手动创建 Secret,因此您知道它name:并且不需要在 ServiceAccount 对象中查找它。
这种方法在 Kubernetes 的早期版本中也应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
43026 次 |
| 最近记录: |