k8s 手动管理 ServiceAccount 的 Secret

v1.22 之前的 Kubernetes 版本会自动创建凭据访问 Kubernetes API。 这种更老的机制基于先创建令牌 Secret,然后将其挂载到正运行的 Pod 中。

而更新的版本的 K8s 则不会直接创建,使用kubectl describe sa xx命令可以看见 Tokens 的值为 none,此时需要进行手动创建 Sercet。

假设现在有一个名为 test 的 serviceAccount,所处的命名空间是 dev,则进行如下操作即可获取到 test 用户的 token

# 设置 serviceAccount 环境变量
export serviceAccount=test
# 设置命名空间环境变量
export namespace=dev

# 创建通用文件
cat > sa.yaml<<EOF
apiVersion: v1
kind: Secret
metadata:
  name: sa-token
  namespace: default
  annotations:
    kubernetes.io/service-account.name: sa
type: kubernetes.io/service-account-token
EOF
# 修改文件名称和内容
mv sa.yaml sa-${serviceAccount}.yaml && \
sed -i "s/sa/${serviceAccount}/g" sa-${serviceAccount}.yaml && \
sed -i "s/default/${namespace}/g" sa-${serviceAccount}.yaml

# 创建 Secret
kubectl apply -f sa-${serviceAccount}.yaml

查看生成的 token,如下图:

20221230130435.png

AD: 【腾讯云服务器大降价】 2核4G 222元/3年 1核2G 38元/年
网站:阿蛮君博客
标题:k8s 手动管理 ServiceAccount 的 Secret
链接:https://www.amjun.com/801.html
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!
THE END
分享
二维码
打赏
海报
k8s 手动管理 ServiceAccount 的 Secret
v1.22 之前的 Kubernetes 版本会自动创建凭据访问 Kubernetes API。 这种更老的机制基于先创建令牌 Secret,然后将其挂载到正运行的 Pod 中。 而更新的版本的 ……
<<上一篇
下一篇>>