본문 바로가기

kubernetes, helm, rancher

pod내의 Serviceaccount token 값과 secret token값이 다른 이유.

pod 내에서 service account 이름을 지정해 줄 수 있으며, 지정을 안할 경우 default로 지정이 된다.

 

default service account는 namespace가 만들어지면 자동으로 생성되고, secret 또한 자동으로 생성된다.

 

이러한 secret은 namespace(현재 service account가 존재하는), token, ca.crt 정보가 들어가 있다.

 

그리고 pod에서 이러한 값들을 mount한다.

 

그런데 여기서 이상한 점이 발견됬다.

 

secret의 token 내용과 mount 된 token 내용이 다른 것이다.

 

  • secret의 token 내용

 

  • mount된 token 내용

 

내용이 다른 이유는 아래 링크에 설명되어있는데, 

https://stackoverflow.com/questions/61267536/difference-between-kubernetes-service-account-tokens-from-secret-and-projected-v

 

Difference between Kubernetes Service Account Tokens from secret and projected volume

When I do kubectl get secret my-sa-token-lr928 -o yaml, there is a base64 string(JWT A) value for data.token. There are other fields too, like data.ca.crt in this returned secret. When I use proje...

stackoverflow.com

 

간략하게 말하자면, mount된 token내용은 kublet에 의해 발행되어지는데, secret token 값과 expiration 값 등의 추가적인 내용이 들어가서 내용에 변화가 있다고 한다.