본문 바로가기

컨테이너/Kubernetes

kubernetes Container Timezone Set (쿠버네티스 컨테이너 타임존 설정) 방법

kubernetes Container Timezone Set (쿠버네티스 컨테이너 타임존 설정) 방법

쿠버네티스로 컨테이너를 생성하는 경우 해당 컨테이너 내부의 타임존이 UTC로 설정되어 있다.

 

먼저 생성된 pod의 timezone이 어떻게 설정되어있는지 확인해본다.

 

kubectl exec -it [컨테이너 NAME] -- date

 

위 명령을 통해 컨테이너 내부의 timezone을 확인해도 되고 kubectl -it 명령을 통해 직접 내부로 들어가서 타임존을 확인해도 된다.

 

kubectl exec -it [컨테이너 NAME] /bin/bash

date

 

 

pod 내부의 timezone이 UTC로 설정되어있어 한국기준 9시간이 맞지 않게 된다.

따라서 해당 yaml 파일을 수정하여 타임존을 맞추도록 한다.

 

필자의 경우 helm chart의 deployment 리소스로 앱을 배포하고 있었기 때문에 deployment.yaml을 수정하였다.

 

spec:
  ...[생략]...
  template:
    metadata:
      ...[생략]...
    spec:
      ...[생략]...
      containers:
        - name: 
          ...[생략]...
          volumeMounts:
            - name: tz-seoul
              mountPath: /etc/localtime
      volumes:
        - name: tz-seoul
          hostPath:
            path: /usr/share/zoneinfo/Asia/Seoul

 

 

해당 deployment 템플릿의 spec.containers에 volume으로 호스트서버의 /usr/share/zoneinfo/Asia/Seoul 을 pod내부의 /etc/localtime 으로 맞춰주면된다.

 

 

 

 

다시 배포하는 경우 timezone이 한국의 서울 기준으로 맞춰진게 확인된다.