Диагностика Kubernetes

Сбор ограниченных диагностических данных и проверка точной неисправной цепочки без раскрытия секретов.

Краткий словарь
  • Установка Helm (Helm release) — установленный и независимо управляемый набор ресурсов одного чарта.
  • Объект Secret — ресурс Kubernetes для ссылок на конфиденциальные значения; поставочные чарты не владеют самими значениями.
  • Запрос постоянного тома (PersistentVolumeClaim, PVC) — запрос хранилища для встроенного компонента данных.
  • Сетевая политика (NetworkPolicy) — правила допустимых сетевых соединений модулей приложения.
  • Интерфейс хранения контейнеров (Container Storage Interface, CSI) и сетевой интерфейс контейнеров (Container Network Interface, CNI) предоставляются кластером заказчика.

Диагностика и порядок действий при сбое

Начните с Helm status, состояния Pod/Job/PVC и Events в выбранном namespace. Читайте ограниченное окно журналов нужного контейнера; вывод может содержать персональные или инфраструктурные данные, поэтому проверяйте и редактируйте его локально перед отправкой.

  • Ошибка values.schema.json или helm lint: исправьте конкретный путь в local values, не отключайте validation.
  • HTTP 409 при скачивании: создайте лицензию; 403: нужна роль администратора; 503: проверенный release или активация недоступны — обратитесь к оператору MassAccess.
  • Pending PVC: проверьте StorageClass, topology и capacity; не удаляйте рабочие PVC.
  • CreateContainerConfigError/ImagePullBackOff: проверьте имена Secret, обязательные ключи, registry доступ и image digest без вывода credentials.
  • NotReady: проверьте зависимости, DNS, CNI, TLS, ACL и Jobs миграций; открытый TCP-порт не доказывает readiness.
  • После исправления повторите helm test, проверки UI/API/WebSocket и контрольные операции; сохраните только отредактированное evidence.
bash
helm --kube-context "$MA_CONTEXT" status massaccess -n "$MA_NAMESPACE"
kubectl --context "$MA_CONTEXT" -n "$MA_NAMESPACE" get pod,job,pvc
kubectl --context "$MA_CONTEXT" -n "$MA_NAMESPACE" get events --sort-by=.metadata.creationTimestamp
kubectl --context "$MA_CONTEXT" -n "$MA_NAMESPACE" describe pod <pod>
kubectl --context "$MA_CONTEXT" -n "$MA_NAMESPACE" logs <pod> -c <container> --since=10m --tail=100