Step - 1:创建ServiceAccount
用create的方式帮助我们创建出serviceaccount.yaml的配置文件模板出来,是一个对新手比较好的方式
为了规范整理和存放,把配置文件移动到/opt/底下
查看一下内容是什么,就是个最简化的模板
然后我们声明式创建mysa账户,可以看到,创建成功,并且我们去看yaml文件的更多信息,可以看到,自动生成了一个token, 只需要在 pod 的spec.serviceAccountName 字段中将name设置为您想要用的 service account 名字即可,在 pod 创建之初 service account 就必须已经存在,否则创建将被拒绝,需要注意的是不能更新已创建的 pod 的 service account
“kubectl apply -f serviceaccount.yaml”
“kubectl get sa”
“kubectl get sa mysa -o yaml”
apiVersion: v1
kind: ServiceAccount
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{“apiVersion”:”v1”,”kind”:”ServiceAccount”,”metadata”:{“annotations”:{},”creationTimestamp”:null,”name”:”mysa”,”namespace”:”default”}}
creationTimestamp: “2022-05-10T06:00:37Z”
name: mysa
namespace: default
resourceVersion: “320792”
uid: 11feebe4-3fb9-48f0-bbe5-703a09d3f930
secrets:
- name: mysa-token-sfvgr
Step - 2:自定义ServiceAccount账户
创建SA账户“mengjb”
“kubectl create sa mengjb”
查看账户信息,并查看token
“kubectl describe sa mengjb”
Name: mengjb
Namespace: default
Labels:
Annotations:
Image pull secrets:
Mountable secrets: mengjb-token-sllp2
Tokens: mengjb-token-sllp2
Events:
可以看到,我们创建的两个都存在了
“kubectl get secret”
NAME TYPE DATA AGE
default-token-8kk4m kubernetes.io/service-account-token 3 36d
mengjb-token-sllp2 kubernetes.io/service-account-token 3 3m41s
mysa-token-sfvgr kubernetes.io/service-account-token 3 14m
Step - 3:创建POD并引用ServiceAccount账户
创建新的pod并引用我们之前创建的SA用户
“ vim pod-sa-demo.yaml”
声明式创建pod
“kubectl apply -f pod-sa-demo.yaml”
引用成功
“kubectl describe pod pod-sa-demo”
Name: pod-sa-demo
Namespace: default
Priority: 0
Node: node-2/10.1.10.130
Start Time: Tue, 10 May 2022 14:23:48 +0800
Labels: app=sa-mengjba-pod
tier=frontend
Annotations: white.com/created-by: cluster mengjb
Status: Running
IP: 10.244.2.77
………..