# pod(앱)가 k8s api 로 인증할때 service account(sa) 를 사용하는데
# 모든 pod 가 디폴트로 사용하는 sa default 외 별도로 앱용 sa 를 만들었다.
kubectl get sa
NAME SECRETS AGE
default 0 16h
ysoftman1 0 16h
# ysoftman1 pod spec > template > spec > ServiceAccountName: ysoftman1 을 사용하고 있다.
# 그런데 secrects 을 확인해 보면 not found 가 발생한다.
kubectl describe secret
Error from server (NotFound): secrets "ysoftman1" not found
# sa 를 새로 만들어 봐도 not found 가 발생한다.
kubectl create serviceaccount ysoftman2
kubectl describe secret ysoftman
Error from server (NotFound): secrets "ysoftman2" not found
# 찾아보니 1.24 부터(현재 1.26 사용하고 있음) sa 생성시 secret 를 자동 생성해주지 않도록 변경됐다고 한다.
# token 타입의 secret 를 생성해서 ysoftman sa 에서 사용
cat << zzz | kubectl apply -f -
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: ysoftman1
annotations:
kubernetes.io/service-account.name: "ysoftman1"
zzz
# 이제 ysoftman sa 의 secret 이 설정된 것을 볼 수 있다.
kubectl describe secret ysoftman1
# 참고로 새로운 토큰 값만 필요한 경우 다음 명령으로 얻을 수 있다.
kubectl create token ysoftman1 --duration=999999h
comments:
댓글 쓰기