Руководство по устранению неполадок Cozystack

Начальные шаги для проверки состояния кластера и поиска проблем.

В этом руководстве приведены начальные шаги для проверки состояния кластера и поиска проблем. Внизу страницы находятся ссылки на руководства по устранению неполадок для разных компонентов Cozystack и аспектов эксплуатации кластера.

Чеклист диагностики

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

# === Flux CD ===
# не должно быть сломанных HelmRelease
kubectl get hr -A | grep -v True

# === Kubernetes ===
# не должно быть узлов не в состоянии Ready
kubectl get node

# === LINSTOR ===
alias linstor='kubectl exec -n cozy-linstor deploy/linstor-controller -ti -- linstor'

# узлы LINSTOR находятся online
linstor node list

# storage-pool LINSTOR находятся в состоянии Ok
linstor storage-pool list

# нет сломанных ресурсов
linstor resource list --faulty

# === Kube-OVN ===
alias ovn-appctl='kubectl -n cozy-kubeovn exec deploy/ovn-central -c ovn-central -- ovn-appctl' 

# Проверить Northbound database
ovn-appctl -t /var/run/ovn/ovnnb_db.ctl cluster/status OVN_Northbound

# Проверить Southbound database
ovn-appctl -t /var/run/ovn/ovnsb_db.ctl cluster/status OVN_Southbound

# убедитесь, что:
# 1. Количество Servers совпадает с количеством control-plane узлов
# 2. IP-адреса корректны
# 3. Нет дубликатов (например, двух servers с одним IP)

# вывести список control-plane узлов
kubectl get node -o wide -l node-role.kubernetes.io/control-plane=

# Проверить, что вы не упираетесь в namespace quotas и есть ресурсы для обновления
kubectl get resourcequota --all-namespaces

Дополнительно можно проверить, есть ли в кластере pod не в состоянии Running:

kubectl get pod -A | grep -v 'Running\|Completed'

Получение базовой информации

Логи оператора Cozystack можно посмотреть командой:

kubectl logs -n cozy-system deploy/cozystack-operator -f

Все компоненты платформы устанавливаются через Flux CD HelmRelease.

Получить все установленные HelmRelease можно так:

# kubectl get hr -A
NAMESPACE                        NAME                        AGE    READY   STATUS
cozy-cert-manager                cert-manager                4m1s   True    Release reconciliation succeeded
cozy-cert-manager                cert-manager-issuers        4m1s   True    Release reconciliation succeeded
cozy-cilium                      cilium                      4m1s   True    Release reconciliation succeeded
cozy-cluster-api                 capi-operator               4m1s   True    Release reconciliation succeeded
cozy-cluster-api                 capi-providers              4m1s   True    Release reconciliation succeeded
cozy-dashboard                   dashboard                   4m1s   True    Release reconciliation succeeded
cozy-fluxcd                      cozy-fluxcd                 4m1s   True    Release reconciliation succeeded
cozy-grafana-operator            grafana-operator            4m1s   True    Release reconciliation succeeded
cozy-kamaji                      kamaji                      4m1s   True    Release reconciliation succeeded
cozy-kubeovn                     kubeovn                     4m1s   True    Release reconciliation succeeded
cozy-kubevirt-cdi                kubevirt-cdi                4m1s   True    Release reconciliation succeeded
cozy-kubevirt-cdi                kubevirt-cdi-operator       4m1s   True    Release reconciliation succeeded
cozy-kubevirt                    kubevirt                    4m1s   True    Release reconciliation succeeded
cozy-kubevirt                    kubevirt-operator           4m1s   True    Release reconciliation succeeded
cozy-linstor                     linstor                     4m1s   True    Release reconciliation succeeded
cozy-linstor                     piraeus-operator            4m1s   True    Release reconciliation succeeded
cozy-mariadb-operator            mariadb-operator            4m1s   True    Release reconciliation succeeded
cozy-metallb                     metallb                     4m1s   True    Release reconciliation succeeded
cozy-monitoring                  monitoring                  4m1s   True    Release reconciliation succeeded
cozy-postgres-operator           postgres-operator           4m1s   True    Release reconciliation succeeded
cozy-rabbitmq-operator           rabbitmq-operator           4m1s   True    Release reconciliation succeeded
cozy-redis-operator              redis-operator              4m1s   True    Release reconciliation succeeded
cozy-telepresence                telepresence                4m1s   True    Release reconciliation succeeded
cozy-victoria-metrics-operator   victoria-metrics-operator   4m1s   True    Release reconciliation succeeded
tenant-root                      tenant-root                 4m1s   True    Release reconciliation succeeded

В нормальном состоянии все они должны быть Ready и иметь статус Release reconciliation succeeded.

Packages застряли в DependenciesNotReady

Если некоторые packages показывают статус DependenciesNotReady:

$ kubectl get pkg -A | grep -v True
NAME                                        VARIANT          READY   STATUS
cozystack.cozystack-basics                  default          False   One or more dependencies are not ready
cozystack.tenant-application                default          False   One or more dependencies are not ready
cozystack.monitoring-application            default          False   One or more dependencies are not ready

Обычно это означает, что package в цепочке зависимостей отсутствует или отключен. Для диагностики:

  1. Найдите первопричину: проверьте логи оператора на сообщения "dependency not found":

    kubectl logs -n cozy-system deploy/cozystack-operator | grep "dependency not found"
    

    Команда покажет, какой зависимости не хватает, например:

    dependency not found, marking as not ready  package=cozystack.monitoring-application  dependency=cozystack.postgres-operator
    
  2. Проверьте, не отключили ли вы обязательный package: некоторые packages зависят от других packages. Если отключить package, например cozystack.postgres-operator, от которого зависят другие packages, будет заблокирована вся цепочка зависимостей.

  3. Исправьте проблему: либо снова включите отключенный package, либо, если вы намеренно хотите оставить его отключенным, добавьте его в ignoreDependencies у затронутого package:

    kubectl edit pkg cozystack.monitoring-application
    
    spec:
      ignoreDependencies:
        - cozystack.postgres-operator
    

Специализированные руководства

Bootstrap кластера

См. устранение неполадок установки Kubernetes.

Обслуживание кластера

Удаление отказавшего узла из кластера

См. Обслуживание кластера > Масштабирование кластера.

Flux CD

Устранение неполадок Flux CD.

Kube-OVN

Устранение неполадок Kube-OVN.


Устранение неполадок etcd

Как устранять проблемы и ошибки etcd.

Устранение неполадок Flux CD

Как устранять ошибки Flux CD.

Устранение неполадок мониторинга

Руководство по диагностике и устранению проблем с компонентами мониторинга в Cozystack

Устранение неполадок Kube-OVN

Как устранять сбои Kube-OVN, вызванные поврежденной базой данных OVN.

Устранение crash loop у LINSTOR controller

Как устранять проблемы LINSTOR controller.

Устранение LINSTOR CrashLoopBackOff из-за поврежденной базы данных

Как устранять LINSTOR CrashLoopBackOff, связанный с поврежденной базой данных.

Устранение неполадок Piraeus custom resources

Как устранять проблемы с зависшими Piraeus custom resources.

Last modified 2026-06-29: translate 1.5 (73d3d03)