Kubernetes + Minikube - Как увидеть весь вывод stdout? - PullRequest
0 голосов
/ 18 октября 2018

Я запускаю приложение Ruby в Kubernetes с Minikube.

Однако всякий раз, когда я просматриваю логи, я не вижу вывод, который я видел бы в своем терминале при локальном запуске приложения.

Я предполагаю, что это потому, что он показывает только stderr?

Что я могу сделать, чтобы увидеть все типы журналов консоли (например, puts или raise)?

При взгляде вокруг это как-то связано с тем, что он находится в отдельном режиме - см.проблема, связанная с Python: Журналы в Kubernetes Pod не отображаются

Спасибо.

=

В соответствии с запросом - вот развертывание.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: sample
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: sample
    spec:
      containers:
        - name: sample
          image: someregistry
          imagePullPolicy: Always
          command: ["/bin/sh","-c"]
          args: ["bundle exec rake sample:default --trace"]
          envFrom:
          - configMapRef:
              name: sample
          - secretRef:
              name: sample
          ports:
            - containerPort: 3000
      imagePullSecrets:
        - name: regsecret

Ответы [ 2 ]

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

Полагаю, это потому, что он показывает только stderr?

Не совсем, если в спецификации контейнера или модуля не отключено что-то конкретное.Я предполагаю, что вы используете Docker, поэтому по умолчанию он выводит stdout и stderr , и это то, что вы видите, когда делаете kubectl logs <pod-name>

Чтоя могу сделать, чтобы увидеть все типы журналов консоли (например, от пут или рейза)?

Вы должны увидеть их в журналах контейнера.Это поможет опубликовать определение вашего модуля или развертывания.

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

Как показано в этой статье, kubectl logs pod apod должен показывать вам stdout и stderr для модуля, развернутого в мини-кубе.

По умолчанию в Kubernetes Docker настроен на запись stdout и stderr контейнерак файлу в / var / log / container в хост-системе

Kubernetes добавляет :

Существует два типа системных компонентов:которые запускаются в контейнере, и те, которые не запускаются в контейнере.
Например:

  • Планировщик Kubernetes и kube-proxy запускаются в контейнере.
  • Kubeletи среда выполнения контейнера, например Docker, не запускается в контейнерах.

И:

  • На машинах с systemd, средой выполнения кубета и контейнеранаписать в журнал.
  • Если systemd отсутствует, они записывают в .log файлы в каталоге /var/log.

Подобно журналам контейнеров, системные компоненты регистрируются в / var / logкаталог должен быть повернут.
В кластерах Kubernetes, вызываемых сценарием kube-up.sh, эти журналы настраиваются на ежедневное вращение инструментом logrotate или когда размер превышает 100 МБ.

https://d33wubrfki0l68.cloudfront.net/59b1aae2adcfe4f06270b99a2789012ed64bec1f/4d0ad/images/docs/user-guide/logging/logging-node-level.png

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