Стадия жизненного цикла модуля: General Availability

Как запустить kube-bench в кластере?

  1. Зайдите внутрь пода Deckhouse:

    d8 k -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- bash
    
  2. Выберите, на каком узле запустить kube-bench.

    • Запуск на случайном узле:

      curl -s https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml | d8 k create -f -
      
    • Запуск на конкретном узле, например на control-plane:

      curl -s https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml | d8 k apply -f - --dry-run=client -o json | jq '.spec.template.spec.tolerations=[{"operator": "Exists"}] | .spec.template.spec.nodeSelector={"node-role.kubernetes.io/control-plane": ""}' | d8 k create -f -
      
  3. Проверьте результат выполнения:

    d8 k logs job.batch/kube-bench
    

В Deckhouse установлен срок хранения логов — 7 дней. Однако, в соответствии с требованиями безопасности указанными в kube-bench, логи должны храниться не менее 30 дней. Используйте отдельное хранилище для логов, если вам необходимо хранить логи более 7 дней.

Как собрать информацию для отладки?

  1. Соберите диагностический архив утилитой d8, перенаправив вывод (stdout) в файл:

    d8 system collect-debug-info > deckhouse-debug-$(date +"%Y_%m_%d").tar.gz
    
  2. Отправьте полученный архив команде Deckhouse для дальнейшего расследования.

Флаг --exclude исключает указанные элементы из архива. Пример:

  d8 system collect-debug-info --exclude=queue global-values > deckhouse-debug-$(date +"%Y_%m_%d").tar.gz

Флаг --list-exclude выводит список доступных для исключения элементов. Пример:

  d8 system collect-debug-info --list-exclude

Ниже перечислены сведения, формируемые при выполнении архива. Названия в колонке «Файл в архиве» соответствуют элементам верхнего уровня внутри итогового архива tar.gz. Отдельные чувствительные значения (например, kubeRBACProxyCA и registry.dockercfg) исключаются из выборки.

Категория Собираемые данные Файл в архиве
Deckhouse Состояние очереди Deckhouse queue
Значения Deckhouse (кроме kubeRBACProxyCA и registry.dockercfg) global-values
Версия текущего пода deckhouse deckhouse-version
Все объекты DeckhouseRelease deckhouse-releases
Логи подов Deckhouse deckhouse-logs
Манифесты контроллеров и подов из всех пространств имён Deckhouse d8-all
Объекты кластера NodeGroup node-groups
NodeGroupConfiguration node-group-configuration
Node nodes
Machine machines
Instance instances
StaticInstance staticinstances
MachineDeployment cloud-machine-deployment, static-machine-deployment
ClusterAuthorizationRule cluster-authorization-rules
AuthorizationRule authorization-rules
ModuleConfig module-configs
События (все пространства имён) events
Модули и их состояния Список включённых модулей deckhouse-enabled-modules
Объекты ModuleSource в кластере deckhouse-module-sources
Объекты ModulePullOverride в кластере deckhouse-module-pull-overrides
Модули в режиме maintenance deckhouse-maintenance-modules
Логи и манифесты контроллеров Логи machine-controller-manager mcm-logs
Логи cloud-controller-manager ccm-logs
Логи csi-controller csi-controller-logs
Логи cluster-autoscaler cluster-autoscaler-logs
Логи VPA admission controller vpa-admission-controller-logs
Логи VPA recommender vpa-recommender-logs
Логи VPA updater vpa-updater-logs
YAML capi-controller-manager capi-controller-manager
YAML caps-controller-manager caps-controller-manager
YAML machine-controller-manager machine-controller-manager
Мониторинг и алерты Логи Prometheus prometheus-logs
Активные (горящие) уведомления в Prometheus alerts
Поды не в состоянии Running (кроме Completed и Evicted) bad-pods
Список Audit Policy audit-policy
Сеть Все объекты в пространстве имён d8-istio d8-istio-resources
Все кастомные ресурсы istio d8-istio-custom-resources
Конфигурация Envoy для istio d8-istio-envoy-config
Логи istio d8-istio-system-logs
Логи istio ingress gateway d8-istio-ingress-logs
Логи istio users d8-istio-users-logs
Состояние соединения Cilium (cilium health status) cilium-health-status

Как отлаживать проблемы в подах с помощью ephemeral containers?

Выполните следующую команду:

d8 k -n <namespace_name> debug -it <pod_name> --image=ubuntu <container_name>

Подробнее можно почитать в официальной документации.

Как отлаживать проблемы на узлах с помощью ephemeral containers?

Выполните следующую команду:

d8 k debug node/mynode -it --image=ubuntu

Подробнее можно почитать в официальной документации.