1. 서비스 어카운트 야믈 생성 (yamls/for_sa/create-sa.yaml)
apiVersion: v1
kind: ServiceAccount
metadata:
name: test-sa
namespace: default
automountServiceAccountToken: true
automountServiceAccountToken: true --> 서비스 어카운트를 명시하면서 파드를 생성 시 명시된 서비스 어카운트의 토큰이 자동으로 파드에 마운트됨
2. 롤 야믈 생성 (yamls/for_sa/pod-reader-role.yaml)
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "list"]
resources 대상이 노드 같은 cluster-scoped resources가 필요한 경우 kind는 클러스터롤(ClusterRole) 이어야 함 (참고)
3. 롤 바인딩 야믈 생성 (yamls/for_sa/pod-reader-rolebinding.yaml)
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pod-reader-rolebinding
namespace: default
subjects:
# You can specify more than one "subject"
- kind: ServiceAccount
name: test-sa # "name" is case sensitive
namespace: default
roleRef:
# "roleRef" specifies the binding to a Role / ClusterRole
kind: Role # this must be Role or ClusterRole
name: pod-reader # this must match the name of the Role or ClusterRole you wish to bind to
apiGroup: rbac.authorization.k8s.io
roleRef의 kind가 클러스터롤인 경우 kind가 클러스터롤바인딩(ClusterRoleBinding) 이어야 함 (참고)
4. 리소스 생성
kubectl create -f yamls/for_sa/
5. 파드에 적용
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
serviceAccountName: test-sa
automountServiceAccountToken: true
...
automountServiceAccountToken: false --> 서비스 어카운트의 토큰을 secret으로 만들어준 후 볼륨 마운트를 해줘야함 (참고)
6. 파드 내부에서 서비스 어카운트를 이용하여 쿠버네티스 API 호출
# Load kubernetes config
cfg = config.load_incluster_config()
# Create kubernetes client
k8s_client = client.ApiClient(cfg)
# Create kubernetes v1
v1 = client.CoreV1Api(k8s_client)
ret = v1.list_namespaced_pod(namespace="default")
참고 1: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
'쿠버네티스' 카테고리의 다른 글
[쿠버네티스] PV, PVC 바인딩 (0) | 2023.08.07 |
---|---|
[쿠버네티스] 링커디 그라파나 연동 에러 (0) | 2023.07.06 |
[쿠버네티스] 클러스터 구축 중 마추진 오류들 (0) | 2023.06.09 |
[쿠버네티스] cgroup과 cgroup driver이란 (0) | 2023.06.08 |
[쿠버네티스] 파드 정리 (0) | 2023.05.29 |