전공공부
Service Account 본문
Account
User Account, Service Account
- User Account : Admin, Developer
- Service Account : Jenkins, Promethus 등
응용 프로그램이 쿠버네티스 api를 사용 하려면 서비스 Account 등록이 필요하다.
kubectl create serviceaccount dashboard-sa
kubectl get serviceaccount
kubectl describe dashboard-sa //서비스 계정의 토큰을 볼 수 있다. 비밀 객체로 생성됨
kubectl get secret dashboard-sa-token... //서비스 토큰 확인 가능
이렇게 설정을 해두면 curl 요청시 header에 Authorization: Bearer eyJ...이 자동으로 같이 들어 갈 수 있음
Service Account를 만들어서 토큰 관리를 하여 kube api의 보안을 높일 수 있다.
하지만 써드 파디 애플리케이션 대부분은 Pod 내ㅑ부에서 자동으로 마운트하여 토큰을 지정하고 그것을 받아와서 쓸 수 있게 끔 제작되었다.
Pod는 k8s에서 디폴트 Service Account 를 지정해준다.
하지만, Pod 오토어카운트를 지우려면 아래와 같이 설정한다.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-kubernetes-dashboard
image: my-kubernetes-dashboard
automountServiceAccountToken: false
Custom Pod의 Service Account 확인 법
kubectl describe pod my-pod
Mount:
/var/run/secrets... 이 부분에 서비스 어카운트가 지정되어있다.
Service Account 지정법
기존 Pod에는 Edit 불가하고 삭제하고 만들어야 한다.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-kubernetes-dashboard
image: my-kubernetes-dashboard
serviceAccountName: dashboard-sa
Tip
kubectl get deployment -o yaml > dashboard.yaml //yaml을 다 칠 필요가 없다. 자주 사용하자
'Study > K8S' 카테고리의 다른 글
Taints And Tolerations (0) | 2023.03.19 |
---|---|
Resource Requirements (0) | 2023.03.19 |
Docker Security (0) | 2023.03.19 |
Secret (0) | 2023.03.03 |
configMaps (0) | 2023.03.03 |