kubernetes之service account

mac2022-06-30  32

介绍

1.service account 也是一种账号, 但它不是给kubernetes集群的用户(系统管理员, 运维人员)用的, 而是给运行在pod里的进程用的, 它为pod里的进程提供了必须的身份证明 2.kubernetes在创建一个namespace, 会为每个namespace下都一个名为default的默认serviceaccount对象, 在这个service account里面有个token, 可以当做volume被挂载到pod里的secret, 当pod启动时, 这个secret会自动挂载到pod的指定目录下, 用来协助完成pod中的进程访问api server时的身份鉴权 3.查看系统默认的的serviceaccount

包含三个数据项, 分别是token,ca.cert, namespace kubectl describe serviceaccounts # Mountable secrets表示它需要被挂载到pod上 kubectl describe secret default-token-fcv28 注意: 如果pod定义时没有指定spec.serviceAccountName属性 , 系统自动为其赋值default, 既使用同一个namespace下的默认ServiceAccount

serviceaccount 与 user区别

1. user给人用的, service account是给pod里进程使用的 2. user账号是全局性, service account则属于某个具体namespace

为什么每个namespace下都有一个名为default的serviceaccount

这是因为service account controller一直监听service account和namespace事件,

给某个pod使用自定义service account

--- apiVersion: v1 kind: ServiceAccount metadata: name: myserviceaccount --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: default labels: app: nginx spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.12 imagePullPolicy: IfNotPresent ports: - containerPort: 80 serviceAccountName: myserviceaccount

指定ServiceAccount授权管理

1.为my-namespace的指定serviceaccount授予clusterole中的view权限 kubectl create rolebinding my-sa-view --clusterrole=view --serviceaccount=my-namespace:my-sa --namespace=my-namespace 2. 为my-namespace命名空间的中的默认serviceaccount授权clusterrole的view权限 kubectl create rolebinding default-view --clusterrole=view --serviceaccount=my-namespace:default --namespace=my-namespace 3. 为my-namespace命名空间中的所有serviceaccount授权clusterrole的view权限 kubectl create rolebinding serviceaccounts-view --clusterrole=view --group=system:serviceaccounts:my-namespace --namespace=my-namespace ${namespace}:${serviceaccount} #指定namespace下的serviceaccount ${namespace}:default #指定namespace下的默认default serviceaccount system:serviceaccounts:${namespace} #指定namespace下的所有serviceaccount system:serviceaccounts #所有命名空间下的serviceaccount

转载于:https://www.cnblogs.com/lovelinux199075/p/11264794.html

最新回复(0)