Service Account

zuckerfrei·2024년 1월 12일
0

Kubernetes

목록 보기
44/63

유저가 사용하는 것이 아니라, 서비스 or 머신이 사용하는 계정(프로메테우스, 대시보드 같은 외부 서비스 포함)

CKA 시험 범위에는 벗어나지만 알아두면 좋다고 함

sa 생성 후 토큰 생성하고, 토큰으로 인증


# serviceaccount 생성
kubectl create sa {sa이름}

# 토큰 생성
kubectl create token {토큰이름}
controlplane ~ ➜  k create sa dashboard-sa 
serviceaccount/dashboard-sa created

controlplane ~ ➜  kubectl create token dashboard-sa
eyJhbGciOiJSUzI1NiIsImt...

생성한 토큰을 복붙해서 사용하면 대시보드 로그인 성공


그러나 이렇게 매번 로그인 할 때마다 토큰을 복붙하여 사용할 필요가 없음

파드 manifest yaml에서 spec.serviceAccountName 항목에 원하는 sa 이름을 넣고 배포하면 됨

    spec:
      containers:
      - env:
        - name: PYTHONUNBUFFERED
          value: "1"
        image: gcr.io/kodekloud/customimage/my-kubernetes-dashboard
      ...
      serviceAccountName: dashboard-sa # 예시

이렇게 설정하면 파드 내에 마운트된 경로로 토큰이 공유되어, 사용자가 토큰 사용하지 않고 애플리케이션이 토큰을 가져와서 사용함


파드 내에서 sa 를 읽어오는 경로 - mounts 항목을 봐야함

# 일반적으로 /var/run/secrets 하위에 위치
controlplane ~ ➜  k describe pod web-dashboard-598c6cb6d-r7jff 
Name:             web-dashboard-598c6cb6d-r7jff
Namespace:        default
...
Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-sf9f8 (ro)
profile
무설탕 음료를 좋아합니다

0개의 댓글