Если вы работали с Kubernetes, вы знаете, насколько это сложно.
Мало того, что здесь много движущихся частей, ваши файлы конфигурации подов и контейнеров могут стать довольно сложными.
Когда эти манифесты увеличиваются в размерах, вы легко можете упустить вариант конфигурации, который может оказаться дорогостоящим.
Подумайте об этом со следующей стороны: плохо настроенный манифест Kubernetes может привести к проблемам с безопасностью или даже может стоить вам денег, особенно когда вы развертываете свои поды в облачном сервисе, таком как AWS или Google Cloud, где вы платите за используемые сервисы.
Неправильно сконфигурированный под может использовать слишком много ресурсов – вот вам и ваш ежемесячный бюджет.
Почему бы не потратить время на линтинг файлов конфигурации?
Очевидный ответ – потому что это может занять много времени.
Однако есть способ попроще.
С помощью инструмента kube-score вы можете протестировать свои файлы YAML на такие вещи, как:
- Ingress нацеленный на сервис
- У CronJobs настроен deadline
- У всех подов есть ограничения на ресурсы (resource limits ) и requests set
- Все подв имеют те же requests set, что и ограничения на ресурсы.
- Все поды имеют одинаковые запросы ЦП в соответствии с установленными ограничениями.
- Используется явный не latest тег
- Для pullPolicy задано значение Always.
- Все StatefulSet нацелены на PDB
Инструмент невероятно прост в использовании, и его результаты помогут вам упростить ваши файлы YAML, чтобы не было дырок безопасности или искаженных ресурсов.
Полный список проверок можно найти здесь.
Как же пользоваться этим удобным инструментом?
Что нам понадобится
- Работающий Kubernetes
- Пользователь с привилегиями sudo
Как установить kube-score
wget https://github.com/zegl/kube-score/releases/download/v1.10.1/kube-score_1.10.1_linux_amd64.tar.gz
sudo mv kube-score /usr/local/bin
Как использовать kube-score
kube-score score components.yaml
kubectl api-resources --verbs=list --namespaced -o name | xargs -n1 -I{} bash -c "kubectl get {} --all-namespaces -oyaml && echo ---" | kube-score score -