Docker, k8s

k8s_ Service Account 개념

우당탕탕인생기 2023. 9. 30. 23:53

AWS EKS 을 사용하면서 서비스 어카운트 라는 개념을 접하여 공부하고 나중에 볼 수 있도록 정리해야겠다.

 

 

k8s Acoount 종류

- User Account :  운영자 또는 개발자 등이 클러스터를 운영하는데 활용

- Service Account : 쿠버네티스 서비스 또는 써드파티 서비스(프로메테우스, 젠킨스 등)가 사용하는 계정

 

 쿠버네티스 공식 문서에서는

사용자 어카운트는 사람을 위한 것이지만, 서비스 어카운트는 쿠버네티스의 경우 파드의 일부 컨테이너에서 실행되는 애플리케이션 프로세스를 위한 것이다. 라고 정의되어 있다.

또한 serviceaccout을 사용하려면 토큰을 생성해야한다.(이전버전에는 자동으로 생성되었는데 1.24 이후 버전부턴 토큰을 따로 생성해야 한다.)

 

ServiceAccout을 이용하면 pod 별로 리소스를 제어하고 관리하는데 용이하다.

 

 


Service Account 생성

 

kubectl create serviceaccount test

이후 확인해보면 이렇게 test 라는 service account 가 생성된것을 볼 수 있다.

 

토큰 생성

 

kubectl create token test

 

 

서비스어카운트 미적용

일단 기본으로 아무설정하지 않고 nginx pod을 생성해보고 yaml파일을 읽어보자

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
 spec:
   containers:
   - name: nginx-pod
     image: nginx
     ports:
     - containerPort: 80
     
     
     ####################
     kubectl get pod nginx-pod -o yaml

이렇게 서비스어카운트가 디폴트로 되어 있다.

 

서비스어카운트 적용

이번엔 서비스어카운트를 설정해보자

 

apiVersion: v1
kind: Pod
metadata:
  name: nginx-sa

spec:
  serviceAccountName: test
  automountServiceAccountToken: true
  containers:
  - name: nginx-sa
    image: nginx
    ports:
    - containerPort: 80

################
kubectl get pod nginx-sa -o yaml

이렇게 serviceaccout가 생성된걸 볼 수 있다.

이제 실제 저 nginx-sa 라는 파드에 접속하여 토큰이 있는지 확인해보자

kubectl exec nginx-sa -it /bin/bash


root@nginx-sa: cd /var/run/secrets/kubernetes.io/serviceaccount/
root@nginx-sa: ls -al

토큰이 잘 있다, 물론 따로 서비스어카운트를 안해줘도 위 경로에 토큰은 존재한다!

 

yml 파일 

 

apiVersion: v1
kind: ServiceAccount
metadata:
  name : sa-test
  namespace: default


---  ## 토큰 생성
apiVersion: v1
kind: Secret
type: kubernets.io/service-account-token
metadata:
  name: sa-token
  namespace: default
  annotations:
    kubernets.io/service-account.name: "sa-test"

 

 

다음번에는 service account에 role binding 하는법에 대해 알보도록 하겠습니다.

'Docker, k8s' 카테고리의 다른 글

jar 파일을 실행시키는 Dockerfile 만들기  (0) 2023.10.15
k8s_Volume (2) Persistent Volume  (0) 2023.10.02
k8s_ deployment 배포 전략  (0) 2023.09.22
k8s_로드밸런스 Metallb  (0) 2023.09.20
k8s_ Autoscaling Metric Server(HPA)  (0) 2023.09.18