Поиск неисправностей Kubernetes: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «На этой странице представлено подробное руководство, которое поможет вам диагностирова...»)
(нет различий)

Версия 17:11, 4 ноября 2025

На этой странице представлено подробное руководство, которое поможет вам диагностировать и решать распространенные проблемы.

Первоначальные шаги по устранению неполадок

Прежде чем приступить к выполнению конкретных разделов по устранению неполадок, важно чётко понимать текущее состояние вашего кластера Kubernetes. Описанные ниже начальные шаги помогут вам собрать необходимую информацию о состоянии кластера и его компонентов.

  1. Проверьте состояние вашего DynaKube, выполнив команду kubectl get dynakubes -n astromkey.
  2. Используйте подкоманду troubleshoot.
  3. Проверьте состояние модулей Ключ-АСТРОМ. Используйте команду kubectl -n astromkey get pods для проверки состояния модулей Ключ-АСТРОМ Operator, ЕдиногоАгента или CSI Driver (количество модулей будет зависеть от выбранного режима развертывания).
  4. Проверка логов. Используйте команду kubectl logs для проверки логов конкретных модулей. Например, команда kubectl logs <pod-name> отобразит логи для конкретного модуля.
  5. Описание ресурса. Команда kubectl describe может предоставить подробную информацию о конкретном ресурсе. Например, kubectl describe pod <pod-name> отобразит подробную информацию о конкретном модуле.

Общее устранение неполадок

Общие инструкции по устранению неполадок и рекомендации по решению распространённых проблем при использовании Ключ-АСТРОМ с Kubernetes. В них рассказывается, как получить доступ к логам отладки, использовать подкоманду troubleshoot и создать архив поддержки.

Устранение распространенных проблем с настройкой Ключ-АСТРОМ Operator с помощью подкоманды troubleshoot

Ключ-АСТРОМ Operator версии 0.9.0+

Выполните команду ниже, чтобы получить базовые выходные данные о состоянии DynaKube, например:

  • Пространство имен: если пространство имен astromkey существует (имя можно перезаписать с помощью параметра)
  • DynaKube:
    • Если CustomResourceDefinition существует
    • Если CustomResource с указанным именем существует (имя можно перезаписать с помощью параметра)
    • Если URL-адрес API заканчивается на /api
    • Если секретное имя совпадает с DynaKube (или если используется .spec.tokens)
    • Если в секрете установлены токены Ключ-АСТРОМ Operator и Data Ingest
    • Если секрет customPullSecret определен
  • Окружение: Если к вашему окружению возможен доступ из Ключ-АСТРОМ Operator Pod с использованием тех же параметров, что и у двоичного файла Ключ-АСТРОМ Operator (например, прокси-сервера и сертификата).
  • Образ ЕдиногоАгента и АктивногоШлюза: если реестр доступен; если образ доступен из Ключ-АСТРОМ Operator Pod с использованием реестра из среды с (пользовательским) секретом извлечения.
kubectl exec deploy/astromkey-operator -n astromkey -- astromkey-operator troubleshoot

Если вы используете другое имя DynaKube, добавьте аргумент --dynakube <your_dynakube_name> к команде.

Пример вывода при отсутствии ошибок по вышеуказанным полям:

{"level":"info","ts":"2022-09-12T08:45:21.437Z","logger":"astromkey-operator-version","msg":"astromkey-operator","version":"<operator version>","gitCommit":"<commithash>","buildDate":"<release date>","goVersion":"<go version>","platform":"<platform>"}

[namespace ]     --- checking if namespace 'astromkey' exists ...

[namespace ]      √  using namespace 'astromkey'

[dynakube  ]     --- checking if 'astromkey:dynakube' Dynakube is configured correctly

[dynakube  ]         CRD for Dynakube exists

[dynakube  ]         using 'astromkey:dynakube' Dynakube

[dynakube  ]         checking if api url is valid

[dynakube  ]         api url is valid

[dynakube  ]         checking if secret is valid

[dynakube  ]         'astromkey:dynakube' secret exists

[dynakube  ]         secret token 'apiToken' exists

[dynakube  ]         customPullSecret not used

[dynakube  ]         pull secret 'astromkey:dynakube-pull-secret' exists

[dynakube  ]         secret token '.dockerconfigjson' exists

[dynakube  ]         proxy secret not used

[dynakube  ]      √  'astromkey:dynakube' Dynakube is valid

[dtcluster ]     --- checking if tenant is accessible ...

[dtcluster ]      √  tenant is accessible

Логи отладки

По умолчанию логи ЕдиногоАгента находятся в /var/log/astromkey/oneagent.

Для отладки проблем с Ключ-АСТРОМ Operator запустите

Для Kubernetes

kubectl -n astromkey logs -f deployment/astromkey-operator

Вы также можете проверить логи модулей ЕдиногоАгента, развернутых через Ключ-АСТРОМ Operator.

kubectl get pods -n astromkey

NAME                                           READY     STATUS    RESTARTS   AGE

astromkey-operator-64865586d4-nk5ng   1/1       Running   0          1d

dynakube-oneagent-<id>                             1/1       Running   0          22h

kubectl logs dynakube-oneagent-<id> -n astromkey

Для OpenShift

oc -n astromkey logs -f deployment/astromkey-operator

Вы также можете проверить логи модулей ЕдиногоАгента, развернутых через Ключ-АСТРОМ Operator.

oc get pods -n astromkey

NAME                                           READY     STATUS    RESTARTS   AGE

astromkey-operator-64865586d4-nk5ng            1/1       Running   0          1d

dynakube-classic-8r2kq                         1/1       Running   0          22h

oc logs oneagent-66qgb -n astromkey

Создание архива поддержки с помощью подкоманды support-archive

Ключ-АСТРОМ Operator версии 0.11.0+

Используйте support-archive для создания архива поддержки, содержащего все файлы, которые могут быть потенциально полезны для анализа RFA:

  • operator-version.txt— файл, содержащий информацию о текущей версии Ключ-АСТРОМ Operator
  • logs—логи из всех контейнеров Ключ-АСТРОМ Operator Pods в пространстве имен Ключ-АСТРОМ Operator (обычно astromkey); сюда также входят логи предыдущих контейнеров, если они доступны:
    • astromkey-operator
    • astromkey-webhook
    • astromkey-oneagent-csi-driver
  • manifests— манифесты Kubernetes для компонентов Ключ-АСТРОМ Operator и развернутые DynaKubes в пространстве имен Ключ-АСТРОМ Operator
  • troubleshoot.txt—вывод команды устранения неполадок, которая автоматически выполняется подкомандой support-archive
  • supportarchive_console.log—полный вывод подкоманды support-archive

Использование

Чтобы создать архив поддержки, выполните следующую команду:

kubectl exec -n astromkey deployment/astromkey-operator -- astromkey-operator support-archive --stdout > operator-support-archive.zip

Содержимое архива поддержки записывается в stdout, что позволяет перенаправить его в ZIP-файл. Остальной вывод отправляется в stderr для поддержания целостности архива.

Windows PowerShell не поддерживается

Обязательно используйте командную строку (cmd.exe) в Windows; PowerShell в настоящее время не поддерживается.

Запуск support-archive в автономном модуле

Ключ-АСТРОМ Operator версии 1.0.0+

Если модуль operator не функционирует из-за серьёзных проблем с запуском, вы можете выполнить команду support-archive в автономном модуле, используя следующую команду. Имейте в виду, что запуск этой команды в автономном модуле рекомендуется только в крайнем случае.

kubectl run -n astromkey support-archive --rm -i --overrides='{ "spec": { "serviceAccount": "astromkey-operator" }  }' --restart Never --image <operator-image> -- support-archive --delay 10 --stdout > support-archive.zip
  • Убедитесь, что вы используете тот же образ, что и operator Pod.
  • Параметр --delay 10 важен, поскольку kubectl run имеет тенденцию пропускать первые несколько строк вывода, что может привести к повреждению архива поддержки.
  • Укажите serviceAccount в команде astromkey-operator, так как это позволит автономному Pod получить доступ ко всем необходимым логам и манифестам Kubernetes для компиляции архива поддержки. Обратите внимание, что этот метод основан на том, что ресурсы Ключ-АСТРОМ Operator всё ещё установлены и доступны в кластере.

Пример вывода

Ниже приведен пример вывода при запуске support-archive с параметром --stdout.

kubectl exec -n astromkey deployment/astromkey-operator -- astromkey-operator support-archive --stdout > operator-support-archive.zip
[support-archive]       astromkey-operator      {"version": "v0.11.0", "gitCommit": "...", "buildDate": "...", "goVersion": "...", "platform": "linux/amd64"}

[support-archive]       Storing operator version into operator-version.txt

[support-archive]       Starting log collection

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-bdnpc/server.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-bdnpc/provisioner.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-bdnpc/registrar.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-bdnpc/liveness-probe.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-cb4pc/server.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-cb4pc/provisioner.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-cb4pc/registrar.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-cb4pc/liveness-probe.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-k8bl5/server.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-k8bl5/provisioner.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-k8bl5/registrar.log

[support-archive]       Successfully collected logs logs/astromkey-oneagent-csi-driver-k8bl5/liveness-probe.log

[support-archive]       Successfully collected logs logs/astromkey-operator-6d9fd9b9fc-sw5ll/astromkey-operator.log

[support-archive]       Successfully collected logs logs/astromkey-webhook-7d84599455-bfkmp/webhook.log

[support-archive]       Successfully collected logs logs/astromkey-webhook-7d84599455-vhkrh/webhook.log

[support-archive]       Starting K8S object collection

[support-archive]       Collected manifest for manifests/injected_namespaces/Namespace-default.yaml

[support-archive]       Collected manifest for manifests/astromkey/Namespace-astromkey.yaml

[support-archive]       Collected manifest for manifests/astromkey/Deployment-astromkey-operator.yaml

[support-archive]       Collected manifest for manifests/astromkey/Deployment-astromkey-webhook.yaml

[support-archive]       Collected manifest for manifests/astromkey/StatefulSet-dynakube-activegate.yaml

[support-archive]       Collected manifest for manifests/astromkey/DaemonSet-dynakube-oneagent.yaml

[support-archive]       Collected manifest for manifests/astromkey/DaemonSet-astromkey-oneagent-csi-driver.yaml

[support-archive]       Collected manifest for manifests/astromkey/DynaKube-dynakube.yaml

Отладка проблем конфигурации и мониторинга с помощью расширения Kubernetes Monitoring Statistics

Расширение Kubernetes Monitoring Statistics может помочь вам:

  • Устранить неполадки в настройке мониторинга Kubernetes
  • Устранить неполадки в настройке интеграции Prometheus
  • Получить подробную информацию о запросах от Ключ-АСТРОМ к API Kubernetes
  • Получить оповещения о проблемах с настройкой мониторинга платформы Kubernetes
  • Получить оповещения о медленном времени отклика вашего API Kubernetes

Возможные проблемы при изменении режима мониторинга

  • Изменение режима мониторинга с classicFullStack на cloudNativeFullStack влияет на расчеты идентификаторов хостов для отслеживаемых хостов, что приводит к назначению новых идентификаторов и отсутствию связи между старыми и новыми сущностями.
  • Если вы хотите изменить метод мониторинга с applicationMonitoring или cloudNativeFullstack на classicFullstack или hostMonitoring, вам необходимо перезапустить все модули, которые ранее были оснащены applicationMonitoring или cloudNativeFullstack.