Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Localtime no POD

Olá,

preciso que o POD da minha aplicação utilize o mesmo localtime do host do kubernetes. Atualmente configurei o node 1 e node 2, porém ao executar o POD ele fica com a data e horário diferentes do host em que esta localizado. ( 3 horas pra frente) Adicionei as configurações abaixo no meu yaml, mas não funcionou.

 "spec": {
        "volumes": [
          {
            "name": "localtime",
            "hostPath": {
              "path": "/etc/localtime"
            }
          }
        ],

 "volumeMounts": [
              {
                "name": "localtime",
                "mountPath": "/etc/localtime"
              }
            ],

Alguma sugestão do que pode ser?

Um abraço,

Murilo

6 respostas

Uma sugestão, tente verificar o path colocando o caminho completo do timezone, por exemplo:

/usr/share/zoneinfo/America/Sao_Paulo

Segue um exemplo usando o yaml:

 volumeMounts:
      - name: config
        mountPath: /etc/localtime
    volumes:
      - name: config
        hostPath:
           path: /usr/share/zoneinfo/America/Sao_Paulo

Rafael, Obrigado pelo retorno. Mas ajustei conforme sua sugestão, ele ignorou e fica com o horário diferente do host.

App

2017-10-13 19:18:39.757  INFO 7 --- [           main] com.accesstage.fise.Application          : Started Application in 16.363 seconds (JVM running for 17.406)

Server

Fri Oct 13 16:22:26 -03 2017

Pode ser algum parâmetro na imagem do docker?

Att,

Murilo

Olá Murilo,

Estive fazendo mais algumas pesquisas e encontrei esse tópico de discussão no github: https://github.com/moby/moby/issues/3359

Um dos usuários estava relatando o mesmo problema do container não estar utilizando o localtime do host. Pelas pesquisas que eu fiz, você conseguiria quando rodar o container colocar uma variável de ambiente com o timezone, seria algo como:

docker run -it -e TZ="America/Sao_Paulo"

Segue mais detalhes de configuração que encontrei: http://christycodes.blogspot.com.br/2016/08/using-host-timezone-in-docker-container.html

Fala Rafael,

Entendi, mas fiquei com dúvidas em como passar esse parametro para o Kubernetes executar. O kube que realiza o docker run, temos alguma forma de passar esse parametros para ele executar ao executar um POD?

seria algo via args

args:
          - "TZ="America/Sao_Paulo""

achei nesse link algumas referencias: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/

solução!

Rafael,

Consegui resolver a sincronização do TIMEZONE,acabei incluindo as linhas abaixo no Docker File.

#### START OF TIMEZONE RELATED COMMANDS ####
RUN apk update
RUN apk add tzdata
ENV TZ="America/Sao_Paulo"
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Funcionou, mas ainda não consegui automatizar no nível necessário paras as demais equipes que atuam comigo. Hoje, utilizamos o fabric8 para gerar as imagens docker e realizar o push par ao registry. Mas não consegui incluir os comando acima na configuração do fabric8.

link de referencia: https://fabric8.io/

Muito obrigado pela ajuda.

Um abraço

Oi Murilo,

Obrigado pela contribuição, isso com certeza será de grande ajuda para referências dos demais alunos.

Abs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software