Поиск неисправностей Kubernetes
На этой странице представлено подробное руководство, которое поможет вам диагностировать и решать распространенные проблемы.
Первоначальные шаги по устранению неполадок
Прежде чем приступить к выполнению конкретных разделов по устранению неполадок, важно чётко понимать текущее состояние вашего кластера Kubernetes. Описанные ниже начальные шаги помогут вам собрать необходимую информацию о состоянии кластера и его компонентов.
- Проверьте состояние вашего DynaKube, выполнив команду
kubectl get dynakubes -n astromkey. - Используйте подкоманду
troubleshoot. - Проверьте состояние модулей Ключ-АСТРОМ.
Используйте командуkubectl -n astromkey get podsдля проверки состояния модулей Ключ-АСТРОМ Operator, ЕдиногоАгента или CSI Driver (количество модулей будет зависеть от выбранного режима развертывания). - Проверка логов.
Используйте командуkubectl logsдля проверки логов конкретных модулей. Например, командаkubectl logs <pod-name>отобразит логи для конкретного модуля. - Описание ресурса.
Команда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— файл, содержащий информацию о текущей версии Ключ-АСТРОМ Operatorlogs—логи из всех контейнеров Ключ-АСТРОМ Operator Pods в пространстве имен Ключ-АСТРОМ Operator (обычноastromkey); сюда также входят логи предыдущих контейнеров, если они доступны:astromkey-operatorastromkey-webhookastromkey-oneagent-csi-driver
manifests— манифесты Kubernetes для компонентов Ключ-АСТРОМ Operator и развернутые DynaKubes в пространстве имен Ключ-АСТРОМ Operatortroubleshoot.txt—вывод команды устранения неполадок, которая автоматически выполняется подкомандойsupport-archivesupportarchive_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 не поддерживается
Обязательно используйте командную строку ( |
Запуск 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 |
- Убедитесь, что вы используете тот же образ, что и
operatorPod. - Параметр
--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.