Согласно документации Kubenetes весь вывод (который контейнерное приложение записывает в stdout
и stderr
) по умолчанию перенаправляется в файл JSON. Вы можете получить к нему доступ, используя kubectl logs
.
Давайте проверим эту функцию, создав простой модуль, который выводит числа в стандартный вывод:
kubectl create -f https://k8s.io/docs/tasks/debug-application-cluster/counter-pod.yaml
Счетчик-pod.yaml:
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: busybox
args: [/bin/sh, -c,
'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']
где:
counter
- название стручка
count
- название контейнера внутри «счетчика» pod
Вы можете получить доступ к содержимому этого файла, запустив:
$ kubectl logs counter
Вы можете получить доступ к файлу журнала ранее разбитого контейнера в модуле с помощью следующей команды:
$ kubectl logs --previous
В случае нескольких контейнеров в пакете, вы должны добавить имя контейнера следующим образом:
$ kubectl logs counter -c count
Когда модуль удаляется из кластера, все его журналы (текущий и предыдущий) также удаляются.
Убедитесь, что вы правильно сконфигурировали стандартный вывод в приложении, и вывод на стандартный вывод в вашем приложении не пропускается по какой-либо причине.