一、ServiceAccount增删改查¶
1.1 增¶
方式一:通过 kubectl 命令直接创建
# 创建名为zq的ServiceAccount
[root@k8s-master01 ~]# k create sa zq
方式二:通过 YAML 文件创建
# 编写yaml文件
vim serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: my-sa
namespace: default # 可选,默认为 default
# 应用
kubectl apply -f serviceaccount.yaml
1.2 删¶
1、 删除 SA(默认删除关联的 Secret)
[root@k8s-master01 ~]# k delete sa zq
2、强制删除 SA 及其依赖资源(谨慎使用)
[root@k8s-master01 ~]# k delete sa zq --cascade=foreground
1.3 改¶
1、添加标签
[root@k8s-master01 ~]# kubectl label sa zq env=prod
2、添加注解(Annotation)
[root@k8s-master01 ~]# kubectl annotate serviceaccount zq description="用于生产环境的SA"
拓展-手动关联 Secret(1.24+ 版本)
如果需要为 SA 绑定长期有效的 Token,需手动创建 Secret 并关联:
# 定义manual-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: my-sa-secret
annotations:
kubernetes.io/service-account.name: zq
type: kubernetes.io/service-account-token
# 应用
kubectl apply -f manual-secret.yaml
1.4 查¶
1、查看所有 SA
[root@k8s-master01 ~]# kg sa -A
2、查看指定SA的详细信息
[root@k8s-master01 ~]# k describe sa zq
Name: zq
Namespace: default
Labels: <none>
Annotations: <none>
Image pull secrets: <none>
Mountable secrets: <none>
Tokens: <none>
Events: <none>
3、查看SA关联的Secret(仅 1.24 之前版本自动生成)
[root@k8s-master01 ~]# kg secrets | grep zq
二、使用Secret存储ServiceAccount Token¶
1、定义zq-token-secret.yaml
[root@k8s-master01 ~]# vim zq-token-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: zq-token-secret
annotations:
kubernetes.io/service-account.name: zq
type: kubernetes.io/service-account-token
2、创建secret
[root@k8s-master01 ~]# kaf zq-token-secret.yaml
3、查看生成的Token
[root@k8s-master01 ~]# kg secret zq-token-secret
NAME TYPE DATA AGE
zq-token-secret kubernetes.io/service-account-token 3 98s
[root@k8s-master01 ~]# k describe secret zq-token-secret
Name: zq-token-secret
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name: zq
kubernetes.io/service-account.uid: 0024e7bb-fe29-4d95-a5c4-72300f271481
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1107 bytes
namespace: 7 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjdxMWhLWkVpd0t3ZVpNNmdNNmhJdkdOaldfVzA0MTJySm84ZkpMbFhvLVkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InpxLXRva2VuLXNlY3JldCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJ6cSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjAwMjRlN2JiLWZlMjktNGQ5NS1hNWM0LTcyMzAwZjI3MTQ4MSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OnpxIn0.PxiDjkNTRticLwqsMwFtLFT2lSmGzgzAe2MWpq_HGEnN3kCKMjIzvFQnGvoXcMEOQiDOtJz5zsAgjOUWZ_vTAWTYv5cbPzWvz1-bMhECXEmmGX0LpGqRGefGuYPhYzDViyEQvm4XIQayTXkQ6H7uuyLzIXsNDxT2CjLokATExerrLRDVfF_vEEIlHw-QgYXg91nim11VmJnMf_oczIgt9aJEHQvp4kNLUO3X35520aEF5OY-jmMNowfzSSdeb2vpu9uJKPvSMeFeshoI_5_1XsAGUtuAa05E7QS47grr4SglX0UXJ5RyBV79IPbFUAKOT9ocfi87XlPiuviCsgsMjg