Люблю Docker, K8s и кликбейтные заголовки. Но если серьёзно, то ошибок при конфигурировании кубера можно сделать очень много.
Сейчас многие играют с облаками (и я в том числе) в моей конфигурации опытный девопс сходу нашел 3 ошибки, из-за которых кластеры взламывают, майнят крипту или просто случайно роняют продакшен.
🔴 Ошибка 1:
default namespace — мусорка, которая сожжёт вам всё - Проблема: запустил поды в
default, забыв про изоляцию. - Чем опасно: Взлом одного сервиса = доступ ко всем.
- Как исправить:
kubectl create namespace my-app
kubectl config set-context --current --namespace=my-app
🔴 Ошибка 2: ServiceAccount с правами бога
- Проблема: сервисный аккаунт
default:default имеет права cluster-admin (да, было лень разбираться с правами). - Чем опасно: Злоумышленник → получил токен → полный контроль над кластером.
- Как исправить:
kubectl create rolebinding restricted-view \
--clusterrole=view \
--serviceaccount=default:default \
--namespace=default
🔴 Ошибка 3: Не включён PodSecurityPolicy (или его аналоги)
- Проблема: Поды могут запускаться от root, монтировать
/etc и делать другие жуткие вещи. - Чем опасно: Escalation privileges → хостовая система под ударом.
- Как исправить:
# Для новых версий K8s (PSP deprecated, но есть замены):
kubectl label ns my-app pod-security.kubernetes.io/enforce=restricted
💥 Бонус: Если ваш кластер уже живёт с этим годами — проверьте его :
kubectl get pods --all-namespaces -o json | grep "serviceAccount: default"Есть и другие ошибки, которые я сделал, если тема интересна, то напишите в комментариях пользуетесь ли k8s для своих проектов, что предпочитаете manages cluster или колхоз а-ля minicube?