Kubernetes Pod - Журнал приложений - PullRequest
0 голосов
/ 24 октября 2018

У меня есть требование извлечь журнал приложения, который находится в каталоге / var / etc / logs.Как мне извлечь это из стручков K8?

Пробовал kubectl exec, но не помогло.

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Самый простой и простой способ получить журнал приложений из вашего модуля - это использовать kubectl cp

kubectl cp <pod-name>:/var/etc/logs logs

Это позволит скопировать журналы модуля на ваш локальный компьютер.

Однако ..

Это, вероятно, не хорошее долгосрочное решение.Я бы порекомендовал:

  • Вывести журналы на стандартный вывод внутри контейнера, что означало бы, что kubectl logs станет доступным для вас
  • Использование в качестве коляски контейнер для управления журналами

Более подробную информацию можно найти здесь

0 голосов
/ 24 октября 2018

Помимо опции Fluentd sidecar, описанной в других ответах, вы также можете добавить простую tail -n+1 -f /var/etc/logs sidecar для вывода ваших логов на стандартный вывод:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: container
    image: yourimage
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  - name: logs
    image: busybox
    args: [/bin/sh, -c, 'tail -n+1 -f /var/etc/logs']
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  volumes:
  - name: varlog
    emptyDir: {}
0 голосов
/ 24 октября 2018

Вам может понадобиться сборщик журналов, такой как fluentd.

Сам k8s не сохранит журнал для вас.

Если вы используете GKE, может подойти стекдрайвер (слышал, никогда не пробовал)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...