kubernetes资源对象之service account

2020-04-01  本文已影响0人  一舍

Service account 是为了方便 Pod 里面的进程调用 Kubernetes API 或其他外部服务而设计的。

Service account 有它自己的 namespace,每个 namespace 都会自动创建一个 default service account。

Token controller会检测 service account 的创建,并为它们创建kubernetes.io/service-account-token secret。

Service Account 创建

自动创建 service account

手动创建 service account

创建service account

kubectl create serviceaccount jenkins

自动创建与该service account对应的secret

kubectl get secret jenkins-token-l9v7v -o yaml

向该service account 添加imagePullSecret

kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}'

Service Account 授权

Service Account 为服务提供了一种方便的认证机制,但它不关心授权的问题,但可以配合RBAC来对 Service Account 进行授权。

kind: Role
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  namespace: default
  name: pod-reader
rules:
  - apiGroups: [""] 
    resources: ["pods"]
    verbs: ["get", "watch", "list"]
    nonResourceURLs: []
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1alpha1
metadata:
  name: read-pods
  namespace: default
subjects:
  - kind: ServiceAccount 
    name: default
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
上一篇 下一篇

猜你喜欢

热点阅读