Как запустить kube-bench в кластере?
Вначале необходимо зайти внутрь пода Deckhouse:
kubectl -n d8-system exec -ti svc/deckhouse-leader -c deckhouse -- bash
Далее необходимо выбрать, на каком узле запустить kube-bench.
-
Запуск на случайном узле:
curl -s https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml | kubectl create -f -
-
Запуск на конкретном узле, например на control-plane:
curl -s https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml | kubectl apply -f - --dry-run=client -o json | jq '.spec.template.spec.tolerations=[{"operator": "Exists"}] | .spec.template.spec.nodeSelector={"node-role.kubernetes.io/control-plane": ""}' | kubectl create -f -
Далее можно проверить результат выполнения:
kubectl logs job.batch/kube-bench
Как собрать информацию для отладки?
Мы всегда рады помочь пользователям с расследованием сложных проблем. Пожалуйста, выполните следующие шаги, чтобы мы смогли вам помочь:
-
Выполните следующую команду, чтобы собрать необходимые данные:
kubectl -n d8-system exec svc/deckhouse-leader -c deckhouse \ -- deckhouse-controller collect-debug-info \ > deckhouse-debug-$(date +"%Y_%m_%d").tar.gz
-
Отправьте получившийся архив команде Deckhouse для дальнейшего расследования.
Данные, которые будут собраны:
- состояние очереди Deckhouse;
- Deckhouse values. За исключением значений
kubeRBACProxyCA
иregistry.dockercfg
; - список включенных модулей;
events
из всех пространств имен;- манифесты controller’ов и подов из всех пространств имен Deckhouse;
- все объекты
nodegroups
; - все объекты
nodes
; - все объекты
machines
; - все объекты
instances
; - все объекты
staticinstances
; - данные о текущей версии пода deckhouse;
- все объекты
deckhousereleases
; - логи Deckhouse;
- логи machine controller manager;
- логи cloud controller manager;
- логи cluster autoscaler;
- логи Vertical Pod Autoscaler admission controller;
- логи Vertical Pod Autoscaler recommender;
- логи Vertical Pod Autoscaler updater;
- логи Prometheus;
- метрики terraform-state-exporter. За исключением значений в
provider
изproviderClusterConfiguration
; - все горящие уведомления в Prometheus.
Как отлаживать проблемы в подах с помощью ephemeral containers?
Выполните следующую команду:
kubectl -n <namespace_name> debug -it <pod_name> --image=ubuntu <container_name>
Подробнее можно почитать в официальной документации.
Как отлаживать проблемы на узлах с помощью ephemeral containers?
Выполните следующую команду:
kubectl debug node/mynode -it --image=ubuntu
Подробнее можно почитать в официальной документации.