Как подключить все журналы в кластере kubernetes - PullRequest
2 голосов
/ 04 мая 2019

Я попробовал эту команду:

kubectl logs --tail

Я получил эту ошибку / вывод справки:

Error: flag needs an argument: --tail


Aliases:
logs, log

Examples:
  # Return snapshot logs from pod nginx with only one container
  kubectl logs nginx

  # Return snapshot logs for the pods defined by label app=nginx
  kubectl logs -lapp=nginx

  # Return snapshot of previous terminated ruby container logs from pod web-1
  kubectl logs -p -c ruby web-1

  # Begin streaming the logs of the ruby container in pod web-1
  kubectl logs -f -c ruby web-1

  # Display only the most recent 20 lines of output in pod nginx
  kubectl logs --tail=20 nginx

  # Show all logs from pod nginx written in the last hour
  kubectl logs --since=1h nginx

  # Return snapshot logs from first container of a job named hello
  kubectl logs job/hello

  # Return snapshot logs from container nginx-1 of a deployment named nginx
  kubectl logs deployment/nginx -c nginx-1

ммм Я просто хочу увидеть все журналы, разве это не распространено?что хотите сделать?Как я могу привязать все журналы для кластера?

Ответы [ 4 ]

5 голосов
/ 04 мая 2019

Если вы не возражаете против использования стороннего инструмента, kail делает именно то, что вы описываете.

Потоки журналов из всех контейнеров всех соответствующих пакетов. [...] Без аргументов kail соответствует всем модулям в кластере.

1 голос
/ 04 мая 2019

Единственное, что вы можете сделать, это получить журналы нескольких модулей с помощью селекторов меток, например:

kubectl logs -f -l app=nginx -l app=php 

Для получения всех журналов всего кластера вам необходимо настроить централизованный сбор журналов, такой как Elasticsearch, Fluentd.и кибана.Простейший способ сделать это - установка с использованием диаграмм Хелма, как описано здесь: https://linux -admin.tech / kubernetes / logging / 2018/10/24 / elk-stack-installation.html

1 голос
/ 04 мая 2019

Я почти никогда не видел, чтобы кто-то извлекал все журналы из целых кластеров, потому что обычно вам либо нужны журналы, чтобы вручную искать определенные проблемы, либо следовать (-f) процедуре, либо собирать информацию аудита, либо передавать все журналы в журнал. раковина, чтобы подготовить их к мониторингу (например, прометей).

Однако, если необходимо извлечь все журналы, использование параметра --tail - это не то, что вам нужно (tail показывает только последнее число строк определенного источника журнала и позволяет не проливать весь журнал история одного журнала для вашего терминала).

Для kubernetes вы можете написать простой скрипт на языке по вашему выбору (bash, Python и т. Д.) Для kubectl get all --show-all --all-namespaces и выполнить итерации по модулям для запуска kubectl -n <namespace> logs <pod>; но имейте в виду, что в модуле может быть несколько контейнеров с отдельными журналами в каждом, а также регистрируются сами узлы кластера, изменения состояния в развертываниях, дополнительная мета-информация, которая изменяется, подготовка томов и куча.

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

0 голосов
/ 04 июня 2019

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

Но если вам нужны журналы для уровня управления кластера - вы можете использовать: https://aws.amazon.com/about-aws/whats-new/2019/04/amazon-eks-now-delivers-kubernetes-control-plane-logs-to-amazon-/

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