kubernetes Service Accounts for Pods

向右看齐 2022-05-26 01:25 270阅读 0赞

service account 顾名思义就是服务账号
kubectl的user accounts 一般情况下是 admin,除非k8s管理员已修改否则,默认就是admin,service account默认是default

使用default服务帐户访问API服务器
如果你创建pod未指定service account时,自动默认service account就是default
通过kubectl get pod podName -n namespace可以查看spec.serviceAccountName的值

在版本1.6+中,您可以通过在服务帐户上设置automountServiceAccountToken:false来退出服务帐户的自动挂载API凭证:

  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: build-robot
  5. automountServiceAccountToken: false//设置false
  6. ...

在版本1.6+中,您还可以选择禁用某个自动安装API凭据:

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: my-pod
  5. spec:
  6. serviceAccountName: build-robot
  7. automountServiceAccountToken: false
  8. ...

使用多个服务帐户
k8s默认创建serviceAccounts为default

  1. [root@master-02 ~]# kubectl get serviceAccounts
  2. NAME SECRETS AGE
  3. default 1 1d

创建自己的service account:

  1. $ cat > /tmp/serviceaccount.yaml <<EOF
  2. apiVersion: v1
  3. kind: ServiceAccount
  4. metadata:
  5. name: build-robot
  6. EOF
  7. $ kubectl create -f /tmp/serviceaccount.yaml
  8. serviceaccount "build-robot" created
  9. [root@master-02 ~]# kubectl get serviceAccounts
  10. NAME SECRETS AGE
  11. build-robot 1 5s
  12. default 1 1d
  13. [root@master-02 ~]# kubectl get serviceAccounts build-robot -oyaml
  14. apiVersion: v1
  15. kind: ServiceAccount
  16. metadata:
  17. creationTimestamp: 2018-04-22T11:05:46Z
  18. name: build-robot
  19. namespace: default
  20. resourceVersion: "108742"
  21. selfLink: /api/v1/namespaces/default/serviceaccounts/build-robot
  22. uid: 1b7049cd-461d-11e8-917b-080027587c6b
  23. secrets:
  24. - name: build-robot-token-ktqfb

删除service account

  1. [root@master-02 ~]# kubectl delete serviceaccount/build-robot
  2. serviceaccount "build-robot" deleted

手动创建service account API令牌

  1. $ kubectl create -f /tmp/serviceaccount.yaml
  2. cat > /tmp/build-robot-secret.yaml <<EOF
  3. apiVersion: v1
  4. kind: Secret
  5. metadata:
  6. name: build-robot-secret
  7. annotations:
  8. kubernetes.io/service-account.name: build-robot
  9. type: kubernetes.io/service-account-token
  10. EOF
  11. [root@master-02 ~]# kubectl create -f /tmp/build-robot-secret.yaml
  12. secret "build-robot-secret" created
  13. [root@master-02 ~]# kubectl get secret
  14. NAME TYPE DATA AGE
  15. build-robot-secret kubernetes.io/service-account-token 3 36s
  16. build-robot-token-h257n kubernetes.io/service-account-token 3 6m
  17. default-token-9dbnz kubernetes.io/service-account-token 3 1d
  18. [root@master-02 ~]# kubectl describe secrets/build-robot-secret
  19. Name: build-robot-secret
  20. Namespace: default
  21. Labels: <none>
  22. Annotations: kubernetes.io/service-account.name=build-robot
  23. kubernetes.io/service-account.uid=89ff446a-461e-11e8-917b-080027587c6b
  24. Type: kubernetes.io/service-account-token
  25. Data
  26. ====
  27. ca.crt: 1363 bytes
  28. namespace: 7 bytes
  29. token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImJ1aWxkLXJvYm90LXNlY3JldCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJidWlsZC1yb2JvdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6Ijg5ZmY0NDZhLTQ2MWUtMTFlOC05MTdiLTA4MDAyNzU4N2M2YiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmJ1aWxkLXJvYm90In0.pbGFgMQSUoJkaLza08vk3RzKPD6cC2rSFPTbikiw-CCHF96_nHfUHmQRaLv217TRw_uZQWcX5J8wpK3ckTYZYAeF2ePUBv2XR21B9BNXCzF-hTRz6_Rayok3LqMoHeuuQ7v6j_DjbDXfJqo29D6ry5HgA5rVJldCJQ9VreGpHIYwrVcVbqep_xfVvJtqjJAh93tPNImU3vhTSLFMyuhuNIz8xlFrO5LnondmcLWus3FFoVCot5WkzG7qAIBB8zStTNkSfVclQW1z8Opu9tkji0XIz7C4BKgbd90boNsjbbCXDxGvcHWeNkQ1dP1BY7Ah_55iKxTpuIpfKhyV0pZt4w

end 更多信息请参考configure-service-account

参考
configure-service-account

发表评论

表情:
评论列表 (有 0 条评论,270人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Kubernetes---Pod hook

      Pod hook(钩子)是由Kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。可以同时为Pod

    相关 Kubernetes---Pod笔记

    ⒈ pod的理解     将多个容器镜像融合在一起,共享网络命名空间及容器卷 ⒉ pod的分类 自助式podv           不是被控制器管理的pod,它一