AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 727104
Accepted
Marc Hughes
Marc Hughes
Asked: 2015-10-07 07:43:57 +0800 CST2015-10-07 07:43:57 +0800 CST 2015-10-07 07:43:57 +0800 CST

Como posso saber quando/se/por que um contêiner em um cluster kubernetes é reiniciado?

  • 772

Eu tenho um cluster kubernetes de nó único no Google Container Engine para brincar.

Duas vezes agora, um pequeno site pessoal que hospedo nele ficou offline por alguns minutos. Quando vejo os logs do contêiner, vejo a sequência normal de inicialização concluída recentemente, então presumo que um contêiner morreu (ou foi morto?) E reiniciado.

Como posso descobrir o como e o porquê disso acontecer?

Existe uma maneira de obter um alerta sempre que um contêiner inicia/pára inesperadamente?

kubernetes
  • 5 5 respostas
  • 78938 Views

5 respostas

  • Voted
  1. Best Answer
    beeps
    2015-11-12T11:42:22+08:002015-11-12T11:42:22+08:00

    Você pode visualizar os logs da última reinicialização de um contêiner usando:

    kubectl logs nome do pod -c nome do contêiner --anterior

    Conforme descrito por Sreekanth, kubectl get pods deve mostrar o número de reinicializações, mas você também pode executar

    kubectl descreve pod nome do pod

    E mostrará os eventos enviados pelo kubelet ao apiserver sobre os eventos de ciclo de vida do pod.

    Você também pode escrever uma mensagem final em /dev/termination-log, e isso aparecerá conforme descrito na documentação .

    • 75
  2. Maximiliano De Lorenzo
    2018-05-01T02:29:44+08:002018-05-01T02:29:44+08:00

    Além das respostas anteriores, outro comando que me ajudou a encontrar um erro é:

    kubectl get event [--namespace=my-namespace]

    Ele lista eventos de Pods, Jobs, Nodes também

    • 21
  3. vladimir
    2020-10-08T14:21:04+08:002020-10-08T14:21:04+08:00

    Eu sigo estas etapas para definir o motivo da falha:

    # print out a pod logs (https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs)
    kubectl logs {name_of_pod} -n {namespace} --since=2h --timestamps
    
    
    # print the logs for the _previous_ instance of the container in a pod if it exists
    kubectl logs -p {name_of_pod} -n {namespace} --since=2h --timestamps
    
    
    # check events (https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe)
    kubectl describe pod {pod_name} -n {namespace}
    
    # look at the 'Events' at the end of the output
    # ..
    # Events:
    #   Type     Reason   Age                 From               Message
    #   ----     ------   ----                ----               -------
    #   Warning  BackOff  40m                 kubelet, gke-xx    Back-off restarting failed container
    # ..
    
    
    # observe all events (https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get)
    kubectl get events -n {namespace} --sort-by=.metadata.creationTimestamp
    
    
    # check logs, etc. in pod container (https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#exec)
    kubectl exec -it {pod_name} -n {namespace} -- sh
    
    • 10
  4. Sreekanth Pothanis
    2015-10-22T22:35:41+08:002015-10-22T22:35:41+08:00

    kubectl get pods listará todas as reinicializações do contêiner e o comando describe pode ser útil porque lista todos os eventos associados ao pod.

    Sondas de vivacidade e de prontidão podem ser configuradas para melhor manuseio, verifique aqui

    https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/

    Além disso, os ganchos podem ser configurados para serem consumidos no contêiner em pontos específicos do ciclo de vida do contêiner, verifique aqui

    https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

    • 8
  5. Chris Halcrow
    2021-06-28T18:05:34+08:002021-06-28T18:05:34+08:00

    Quando reiniciado

    kubectl describe pod your-pod-name

    Procure uma seção como esta:

    State:          Running
      Started:      Wed, 23 Jun 2021 23:52:05 +1000
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Wed, 23 Jun 2021 23:46:48 +1000
      Finished:     Wed, 23 Jun 2021 23:46:52 +1000
    Ready:          True 
    

    A interpretação acima é a seguinte:

    • O pod foi encerrado Wed, 23 Jun 2021 23:46:52 +1000após ter iniciado em Wed, 23 Jun 2021 23:46:48 +1000, e agora está em execução e pronto, tendo sido iniciado pela última vez emWed, 23 Jun 2021 23:52:05 +1000

    Uma solicitação pull agora foi mesclada no marco kubernetes 1.22, para adicionar LAST RESTARTcoluna a kubectl get pods, e estará disponível assim que for lançada - veja aqui. https://github.com/kubernetes/kubernetes/pull/100142

    Para ver sua versão atual -kubernetes version

    (1.21 é o último lançamento em 28 de junho de 2021)

    Se reiniciado

    kubectl get po [your-pod-name] O pod foi reiniciado em algum estágio se houver algum número na RESTARTScoluna

    Por que reiniciou

    kubectl describe pod [your-pod-name]mostrará um Last Stateque lhe dá uma indicação de alto nível. Para ver o que aconteceu no pod antes de reiniciar, use kubectl logs your-pod-name --previous. Você pode canalizar isso para um arquivo para inspeção, por exemplo

    kubectl logs your-pod-name --previous > pod_previous_log.txt

    (Veja também acima em 'Quando reiniciado')

    • 3

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve