Orquestração de Contêineres
medium

Orquestração de Contêineres Question #019e3a4f

Question Statement
Orquestração de Contêineres
#kubectl
#logs
#kubernetes
#pod
#container
Medium

Qual dos seguintes comandos exibirá o snapshot dos logs do contêiner ruby anteriormente terminado do Pod web-1?

A

kubectl logs -p -c ruby web-1

Correct
B

kubectl logs -c ruby web-1

C

kubectl logs -p ruby web-1

D

kubectl logs -p -c web-1 ruby

Official Explanation / Community Explanations

O comando correto para visualizar o snapshot dos logs do contêiner ruby anteriormente terminado do Pod web-1 é kubectl logs -p -c ruby web-1. A flag -p (ou --previous) instrui o kubectl a recuperar logs da instância anterior do contêiner (ou seja, o contêiner terminado). A flag -c ruby especifica o nome do contêiner dentro do pod, e web-1 é o nome do pod. Este comando exibe os logs do contêiner ruby terminado.

Como funciona:
Quando um contêiner em um pod reinicia ou é terminado, o Kubernetes retém os logs da instância anterior do contêiner. O comando kubectl logs com a flag -p acessa esses logs retidos. A flag -c é necessária quando o pod tem múltiplos contêineres; ela seleciona qual contêiner terá seus logs exibidos. Sem -c, o comando falharia se o pod tivesse mais de um contêiner, ou poderia usar o padrão para o único contêiner se houver apenas um, mas especificar o contêiner explicitamente é uma boa prática.

Por que as outras opções estão incorretas:

  • kubectl logs -c ruby web-1: Este comando recupera os logs atuais do contêiner ruby, não da instância anterior (terminada). Falta a flag -p.
  • kubectl logs -p ruby web-1: Este comando tenta obter logs anteriores, mas não especifica um contêiner com -c. Se o pod tiver múltiplos contêineres, isso falhará porque o kubectl exige um nome de contêiner. Mesmo que o pod tenha apenas um contêiner, é ambíguo e não é a sintaxe correta para pods com múltiplos contêineres.
  • kubectl logs -p -c web-1 ruby: Este comando troca incorretamente o nome do contêiner e o nome do pod. A sintaxe é kubectl logs [flags] [-c container] pod. Aqui, web-1 é tratado como nome do contêiner e ruby como nome do pod, o que está invertido. Isso resultaria em um erro porque não há contêiner chamado web-1 no pod ruby.