Классный open-source инструмент — Docker Bench 💻
Это скрипт, который проверяет десятки распространенных best practices развертывания контейнеров Docker в продакшене. Все тесты автоматизированы и основаны на CIS Docker Benchmark v1.5.0.
Для работы Docker Bench требуется Docker 1.13.0 или более поздние версии.
Лицензия Apache-2.0, 8.5k звездочек на GitHub 🌟
#open_source
Это скрипт, который проверяет десятки распространенных best practices развертывания контейнеров Docker в продакшене. Все тесты автоматизированы и основаны на CIS Docker Benchmark v1.5.0.
Для работы Docker Bench требуется Docker 1.13.0 или более поздние версии.
Лицензия Apache-2.0, 8.5k звездочек на GitHub 🌟
#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍4
Всем DevOps! 🖖
Собрали 10 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes, делимся!
Часть 1
▪️ Kube-bench
Репозиторий: https://github.com/aquasecurity/kube-bench
Kube-bench — это сканер, который проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Kube-bench был удостоен награды InfoWorld Basic Award 2018.
Тесты настраиваются с помощью файлов YAML, что позволяет легко обновлять этот инструмент по мере развития спецификаций тестов.
Quick start
• Внутри контейнера:
Репозиторий: https://github.com/aquasecurity/kube-hunter
Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. Этот инструмент был разработан для повышения осведомленности и наглядности проблем безопасности в средах Kubernetes. НЕ следует запускать kube-hunter в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.
Quick start
• На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего
кластера Kubernetes. Это даст вам обзор вашей настройки Kubernetes с точки зрения злоумышленника:
Репозиторий: https://github.com/Shopify/kubeaudit
Kubeaudit — это инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.
Kubeaudit поставляется с большим списком «аудиторов», которые проверяют различные аспекты, такие как SecurityContext подов. Полный список аудиторов есть в репозитории.
Quick start
• Через Homebrew:
Репозиторий: https://github.com/octarinesec/kube-scan
С помощью Kube-scan можно получить оценку риска ваших рабочих нагрузок. Kube-scan дает оценку риска от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.
Quick start
Репозиторий: https://github.com/controlplaneio/kubesec
Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML.
Kubesec количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.
Quick start
• Docker Container:
• Kubernetes Admission Controller: https://github.com/controlplaneio/kubesec-webhook
• Kubectl Plugin: https://github.com/controlplaneio/kubectl-kubesec
Пример использования командной строки:
#open_source
Собрали 10 сканеров для поиска уязвимостей безопасности и неправильных конфигураций в Kubernetes, делимся!
Часть 1
▪️ Kube-bench
Репозиторий: https://github.com/aquasecurity/kube-bench
Kube-bench — это сканер, который проверяет, развернут ли Kubernetes в соответствии с best practices безопасности, определенными в CIS Kubernetes Benchmark. Kube-bench был удостоен награды InfoWorld Basic Award 2018.
Тесты настраиваются с помощью файлов YAML, что позволяет легко обновлять этот инструмент по мере развития спецификаций тестов.
Quick start
• Внутри контейнера:
docker run - pid=host -v /etc:/etc:ro -v /var:/var:ro -t aquasec/kube-bench:latest - version 1.18• Внутри Kubernetes-кластера:
kubectl apply -f https://github.com/aquasecurity/kube-bench/blob/main/job.yaml▪️ Kube-hunter
Репозиторий: https://github.com/aquasecurity/kube-hunter
Kube-hunter ищет слабые места безопасности в кластерах Kubernetes. Этот инструмент был разработан для повышения осведомленности и наглядности проблем безопасности в средах Kubernetes. НЕ следует запускать kube-hunter в кластере Kubernetes, которым вы не владеете! Находясь за пределами кластера, kube-hunter сканирует домен или диапазон адресов на наличие открытых портов, связанных с Kubernetes, и проверяет наличие проблем конфигурации, которые делают ваш кластер уязвимым для злоумышленников.
Quick start
• На любой машине выберите удаленное сканирование и укажите IP-адрес или доменное имя вашего
кластера Kubernetes. Это даст вам обзор вашей настройки Kubernetes с точки зрения злоумышленника:
pip install kube-hunter• На машине в кластере:
docker run -it — rm — network host aquasec/kube-hunter• В поде внутри кластера:
kubectl create -f https://github.com/aquasecurity/kube-hunter/blob/main/job.yaml▪️ Kubeaudit
Репозиторий: https://github.com/Shopify/kubeaudit
Kubeaudit — это инструмент командной строки и пакет Go для аудита кластеров Kubernetes на предмет различных проблем безопасности.
Kubeaudit поставляется с большим списком «аудиторов», которые проверяют различные аспекты, такие как SecurityContext подов. Полный список аудиторов есть в репозитории.
Quick start
• Через Homebrew:
brew install kubeaudit• Через Helm:
helm upgrade — install kubeaudit secureCodeBox/kubeaudit▪️ Kube-scan
Репозиторий: https://github.com/octarinesec/kube-scan
С помощью Kube-scan можно получить оценку риска ваших рабочих нагрузок. Kube-scan дает оценку риска от 0 (нет риска) до 10 (высокий риск) для каждой рабочей нагрузки. Kube-scan предназначен для того, чтобы помочь понять, какие из рабочих нагрузок подвергаются наибольшему риску и почему, а также позволяет определить приоритетность обновлений политики безопасности вашего модуля, определений модулей и файлов манифеста, чтобы держать риск под контролем.
Quick start
kubectl apply -f https://raw.githubusercontent.com/octarinesec/kube-scan/master/kube-scan.yamlЗатем установите для браузера значение
kubectl port-forward --namespace kube-scan svc/kube-scan-ui 8080:80
http://localhost:8080
▪️ KubesecРепозиторий: https://github.com/controlplaneio/kubesec
Kubesec — это open-source инструмент для оценки риска безопасности рабочих нагрузок Kubernetes на основе их конфигурации YAML.
Kubesec количественно оценивает риск для ресурсов Kubernetes, проверяя файлы конфигурации и файлы манифеста, используемые для развертываний и операций Kubernetes.
Quick start
• Docker Container:
docker.io/kubesec/kubesec:v2 https://hub.docker.com/r/kubesec/kubesec/tags• Linux/MacOS/Win binary: https://github.com/controlplaneio/kubesec/releases
• Kubernetes Admission Controller: https://github.com/controlplaneio/kubesec-webhook
• Kubectl Plugin: https://github.com/controlplaneio/kubectl-kubesec
Пример использования командной строки:
kubesec scan k8s-deployment.yaml#open_source
🔥13👍4❤1
Часть 2
▪️ Kube-score
Репозиторий: https://github.com/zegl/kube-score
Kube-score выполняет статический анализ кода для всех определений объектов Kubernetes. Результатом является список рекомендаций о том, что можно улучшить, чтобы сделать приложение более безопасным и отказоустойчивым.
Онлайн-демо
Quick start
• Docker:
▪️ KubiScan
Репозиторий: https://github.com/cyberark/KubiScan
KubiScan сканирует кластеры Kubernetes на наличие рискованных разрешений в модели разрешений управления доступом на основе ролей (RBAC) Kubernetes. KubiScan может сканировать поды, содержащие токены привилегированных сервисных учетных записей, которые можно использовать для атак с целью повышения привилегий или для компрометации кластера.
Quick start
Установка:
• Поиск подов с привилегированной учетной записью:
Репозиторий: https://github.com/Shopify/krane
Krane — это инструмент командной строки, написанный на Ruby. Krane — простой инструмент для статического анализа Kubernetes RBAC. Он выявляет потенциальные риски безопасности в конструкции RBAC K8 и дает предложения по их снижению. Панель управления Krane отображает текущее состояние безопасности RBAC и позволяет перемещаться по определению.
Quick start
Установка:
Репозиторий: https://github.com/inovex/illuminatio
Illuminatio — утилита для автоматического тестирования сетевых политик Kubernetes. Просто запустите illuminatio clean run, и illuminatio просканирует ваш кластер Kubernetes на наличие сетевых политик, создаст соответствующие тестовые примеры и выполнит их, чтобы определить, действуют ли политики.
Quick start
Установка:
Репозиторий: https://github.com/Erezf-p/kubei
В кластере Kubernetes Kubei используется для анализа непосредственных угроз. Большая часть Kubei написана на языке программирования Go.
Kubei — это инструмент сканирования уязвимостей и сравнительного анализа CIS Docker, который позволяет пользователям получить точную и немедленную оценку рисков своих кластеров Kubernetes.
Quick start
Для развертывания Kubei в кластере:
Чтобы проверить состояние Kubei и ход текущего сканирования, выполните следующую команду:
#open_source
▪️ Kube-score
Репозиторий: https://github.com/zegl/kube-score
Kube-score выполняет статический анализ кода для всех определений объектов Kubernetes. Результатом является список рекомендаций о том, что можно улучшить, чтобы сделать приложение более безопасным и отказоустойчивым.
Онлайн-демо
Quick start
• Docker:
docker pull zegl/kube-score• Homebrew:
brew install kube-score• Krew:
kubectl krew install scoreПолный список проверок см. в README_CHECKS.md
▪️ KubiScan
Репозиторий: https://github.com/cyberark/KubiScan
KubiScan сканирует кластеры Kubernetes на наличие рискованных разрешений в модели разрешений управления доступом на основе ролей (RBAC) Kubernetes. KubiScan может сканировать поды, содержащие токены привилегированных сервисных учетных записей, которые можно использовать для атак с целью повышения привилегий или для компрометации кластера.
Quick start
Установка:
- alias kubiscan='python3 https://github.com/cyberark/KubiScan/blob/master/KubiScan.pyПримеры
• Поиск подов с привилегированной учетной записью:
kubiscan -rp• Проверка наличия этой учетной записи в списке рискованных:
kubiscan -rs• Поиск всех правил, которые есть в этой учетной записи службы:
kubiscan -aaes “risky-sa” -ns “default” -k “ServiceAccount”▪️ Krane
Репозиторий: https://github.com/Shopify/krane
Krane — это инструмент командной строки, написанный на Ruby. Krane — простой инструмент для статического анализа Kubernetes RBAC. Он выявляет потенциальные риски безопасности в конструкции RBAC K8 и дает предложения по их снижению. Панель управления Krane отображает текущее состояние безопасности RBAC и позволяет перемещаться по определению.
Quick start
Установка:
gem install kraneЗатем:
krane deploy <app’s namespace> <kube context>
▪️ IlluminatioРепозиторий: https://github.com/inovex/illuminatio
Illuminatio — утилита для автоматического тестирования сетевых политик Kubernetes. Просто запустите illuminatio clean run, и illuminatio просканирует ваш кластер Kubernetes на наличие сетевых политик, создаст соответствующие тестовые примеры и выполнит их, чтобы определить, действуют ли политики.
Quick start
Установка:
pip3 install illuminatioИли через плагин Kubectl:
-> ln -s $(which illuminatio) /usr/local/bin/kubectl-illuminatioМожно проверять:
-> kubectl plugin list — name-only | grep illuminatio
illuminatio clean run
▪️ KubeiРепозиторий: https://github.com/Erezf-p/kubei
В кластере Kubernetes Kubei используется для анализа непосредственных угроз. Большая часть Kubei написана на языке программирования Go.
Kubei — это инструмент сканирования уязвимостей и сравнительного анализа CIS Docker, который позволяет пользователям получить точную и немедленную оценку рисков своих кластеров Kubernetes.
Quick start
Для развертывания Kubei в кластере:
kubectl apply -f https://raw.githubusercontent.com/Portshift/kubei/master/deploy/kubei.yamlЗатем перенаправьте порты в веб-приложение Kubei:
kubectl -n kubei port-forward $(kubectl -n kubei get pods -lapp=kubei -o jsonpath=’{.items[0].metadata.name}’) 8080
В браузере перейдите по адресу http://localhost:8080/view/ и нажмите «GO», чтобы запустить сканирование.Чтобы проверить состояние Kubei и ход текущего сканирования, выполните следующую команду:
kubectl -n kubei logs $(kubectl -n kubei get pods -lapp=kubei -o jsonpath=’{.items[0].metadata.name}’)
Обновите страницу (http://localhost:8080/view/), чтобы обновить результаты.#open_source
🔥5👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Всем DevOps! 🖖
Очень вероятно, что вам знаком этот инструмент (все-таки 38k звездочек на GitHub), но кажется не лишним рассказать про него еще раз :)
dive — open-source инструмент для изучения образа Docker, содержимого слоев и поиска способов уменьшить размер образа Docker/OCI.
Чтобы проанализировать образ Docker, просто запустите dive с тегом / id / digest образа:
💻 Ссылка на GitHub
#open_source
Очень вероятно, что вам знаком этот инструмент (все-таки 38k звездочек на GitHub), но кажется не лишним рассказать про него еще раз :)
dive — open-source инструмент для изучения образа Docker, содержимого слоев и поиска способов уменьшить размер образа Docker/OCI.
Чтобы проанализировать образ Docker, просто запустите dive с тегом / id / digest образа:
dive <your-image-tag>
Или вы можете использовать dive напрямую с помощью команды docker:alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive <your-image-tag>
# for example
dive nginx:latest
Или вы можете создать свой образ и сразу приступить к его анализу:dive build -t <some-tag>
#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥10❤1
Всем DevOps! 🖖
Уверены, что вы знакомы с Kubernetes (его еще называют k8s). У Kubernetes много плюсов, но есть один существенный минус — кластер Kubernetes немного сложен в настройке и требует значительных ресурсов, что затрудняет развертывание на локальной машине для обучения или разработки. В общем, не всегда возможно перейти на полноценный k8s. К счастью, на этот случай есть более легкое решение в виде k3s.
Про него и пойдет речь в сегодняшних постах. Разумеется, потом оформим все части в одну подборку 😉
Из истории k3s
Во время создания Rio (одна из разработок для kubernetes от Rancher Labs), разработчик Даррен Шепард был разочарован, что для тестирования постоянно требовалось запускать новый кластер Kubernetes. Он знал, что это занимает много времени и, если он сможет запускать кластер быстрее, то сможет выделять больше времени на написание кода и новые фичи. Даррен был хорошо знаком с исходным кодом Kubernetes и начал его разбирать, удаляя все ненужные компоненты, чтобы обеспечить быстрый запуск.
В 2019 году компания Rancher Labs объявила о запуске нового open source-проекта k3s, который представлял собой легкий и простой в установке дистрибутив k8s, предназначенный для разработчиков, ищущих способ запуска Kubernetes на платформах с ограниченными ресурсами.
Чтобы адаптировать Kubernetes к слабому железу, Rancher Labs:
• Удалили старый и неиспользуемый код. По словам разработчиков из кода было вырезано порядка 1000 строк;
• Вместо Docker использовали conteinerd;
• Добавили поддержку Kine, в качестве хранилища по умолчанию;
• Удалили драйвера облачных провайдеров.
*️⃣ 1/4: продолжение следует :)
#лонгрид #open_source
Уверены, что вы знакомы с Kubernetes (его еще называют k8s). У Kubernetes много плюсов, но есть один существенный минус — кластер Kubernetes немного сложен в настройке и требует значительных ресурсов, что затрудняет развертывание на локальной машине для обучения или разработки. В общем, не всегда возможно перейти на полноценный k8s. К счастью, на этот случай есть более легкое решение в виде k3s.
Про него и пойдет речь в сегодняшних постах. Разумеется, потом оформим все части в одну подборку 😉
Из истории k3s
Во время создания Rio (одна из разработок для kubernetes от Rancher Labs), разработчик Даррен Шепард был разочарован, что для тестирования постоянно требовалось запускать новый кластер Kubernetes. Он знал, что это занимает много времени и, если он сможет запускать кластер быстрее, то сможет выделять больше времени на написание кода и новые фичи. Даррен был хорошо знаком с исходным кодом Kubernetes и начал его разбирать, удаляя все ненужные компоненты, чтобы обеспечить быстрый запуск.
В 2019 году компания Rancher Labs объявила о запуске нового open source-проекта k3s, который представлял собой легкий и простой в установке дистрибутив k8s, предназначенный для разработчиков, ищущих способ запуска Kubernetes на платформах с ограниченными ресурсами.
Чтобы адаптировать Kubernetes к слабому железу, Rancher Labs:
• Удалили старый и неиспользуемый код. По словам разработчиков из кода было вырезано порядка 1000 строк;
• Вместо Docker использовали conteinerd;
• Добавили поддержку Kine, в качестве хранилища по умолчанию;
• Удалили драйвера облачных провайдеров.
#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥7🌚2
Отличия от k8s
• В k3s нет четкого различия между мастер и воркер нодами. Управление подами происходит на любой ноде, независимо от роли, которую они играют. Таким образом, понятия мастер и воркер нод не применимы к кластеру k3s
• Отсутствуют необязательные компоненты Kubernetes, например, плагины объема хранилища и API-интерфейсы облачных провайдеров.
• Добавлены некоторые элементы, включая containerd, Flannel, CoreDNS, CNI, ingress controller Traefik, локальное хранилище данных, встроенный сервис Load Balancer. Все эти элементы упакованы в один бинарный файл и выполняются в рамках одного процесса. Дистрибутив также поддерживает Helm-charts из коробки.
• K3s не имеет внешних зависимостей. Это означает, что вам не нужно ничего устанавливать, чтобы запустить его.
• Автоматическое развертывание. Оно позволяет развертывать манифесты Kubernetes и Helm-чарты, помещая их в определенный каталог. То есть k3s отслеживает изменения и заботится об их применении без дальнейшего взаимодействия. Просто создайте/обновите свою конфигурацию, и k3s обеспечит актуальность ваших deployments.
*️⃣ 2/4: продолжение следует :)
#лонгрид #open_source
• В k3s нет четкого различия между мастер и воркер нодами. Управление подами происходит на любой ноде, независимо от роли, которую они играют. Таким образом, понятия мастер и воркер нод не применимы к кластеру k3s
• Отсутствуют необязательные компоненты Kubernetes, например, плагины объема хранилища и API-интерфейсы облачных провайдеров.
• Добавлены некоторые элементы, включая containerd, Flannel, CoreDNS, CNI, ingress controller Traefik, локальное хранилище данных, встроенный сервис Load Balancer. Все эти элементы упакованы в один бинарный файл и выполняются в рамках одного процесса. Дистрибутив также поддерживает Helm-charts из коробки.
• K3s не имеет внешних зависимостей. Это означает, что вам не нужно ничего устанавливать, чтобы запустить его.
• Автоматическое развертывание. Оно позволяет развертывать манифесты Kubernetes и Helm-чарты, помещая их в определенный каталог. То есть k3s отслеживает изменения и заботится об их применении без дальнейшего взаимодействия. Просто создайте/обновите свою конфигурацию, и k3s обеспечит актуальность ваших deployments.
#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍7❤1
Архитектура
На приведенном выше рисунке показана разница между сервером k3s и узлами агента k3s. (Источник здесь)
Если копнуть глубже, то k3s упакован и развернут в виде одного бинарного файла размером приблизительно 60 МБ, представляющего из себя самодостаточный инкапсулированный объект, который запускает почти все компоненты кластера Kubernetes.
На рисунке мы наблюдаем две ноды, на одной из которых работает k3s service, а на второй агент k3s. API server проверяет и настраивает данные для объектов API — например pods, services и т.д. Controller Manager наблюдает за общим состоянием кластера через API-сервер, вносит в него изменения и переводит из текущего состояния в желаемое. Scheduler назначает модули узлам в соответствии с их текущим состоянием, ограничениями и доступными ресурсами. Kubelet как основной агент узла в кластере, работающий на каждой ноде. Kine, где в качестве хранилища по умолчанию используется SQLite. Containerd как исполняемая среда для запуска контейнеров. Связь между агентом и сервером осуществляется через туннельный прокси.
*️⃣ 3/4: продолжение следует :)
#лонгрид #open_source
На приведенном выше рисунке показана разница между сервером k3s и узлами агента k3s. (Источник здесь)
Если копнуть глубже, то k3s упакован и развернут в виде одного бинарного файла размером приблизительно 60 МБ, представляющего из себя самодостаточный инкапсулированный объект, который запускает почти все компоненты кластера Kubernetes.
На рисунке мы наблюдаем две ноды, на одной из которых работает k3s service, а на второй агент k3s. API server проверяет и настраивает данные для объектов API — например pods, services и т.д. Controller Manager наблюдает за общим состоянием кластера через API-сервер, вносит в него изменения и переводит из текущего состояния в желаемое. Scheduler назначает модули узлам в соответствии с их текущим состоянием, ограничениями и доступными ресурсами. Kubelet как основной агент узла в кластере, работающий на каждой ноде. Kine, где в качестве хранилища по умолчанию используется SQLite. Containerd как исполняемая среда для запуска контейнеров. Связь между агентом и сервером осуществляется через туннельный прокси.
#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤2
Как можно развернуть k3s
Кластер из одной ноды (изображение 1)
Этот самый упрощенный метод для разворачивания кластера k3s, который оптимизирован для пограничных устройств. Вы просто запускаете команду установки при помощи команды curl, и она разворачивает полноценный кластер Kubernetes. Но стоит сразу обратить внимание, что данная архитектура развертывания не сможет обеспечить вам отказоустойчивость.
Один кластер с несколькими агентами (изображение 2)
Этот метод также использует один сервер к которому вы можете добавить агентов в кластер. Агенты безопасно подключаются с помощью токена, который сервер создает при запуске. В этой конфигурации каждый узел агента регистрируется на одном и том же узле сервера. Пользователь k3s может управлять ресурсами Kubernetes, вызывая API k3s на узле сервера.
Высокодоступный сервер k3s с внешней БД (изображение 3)
Этот метод можно использовать, если вам важно настроить отказоустойчивый кластер. Данный кластер k3s состоит из:
• Двух или более серверных узлов, которые будут обслуживать API Kubernetes и запускать другие службы плоскости управления.
• Внешнего хранилища данных (вместо встроенного хранилища данных SQLite, которое используется в конфигурациях с одним сервером по умолчанию).
Fun facts про k3s
• Более 1 миллиона загрузок. С февраля 2019 года k3s скачали более 1 миллиона раз, в среднем 20 000 установок в неделю.
• На момент 2023 года имеет на гитхабе более 24 тысяч звезд, что говорит о заинтересованности сообщества в данном проекте.
• Не существует ни полной формы названия k3s, ни официального произношения. Разработчики хотели, чтобы установка Kubernetes была вдвое меньше с точки зрения занимаемой памяти. А так как Kubernetes состоит из 10 букв, которое сообщество стилизовали под k8s, ребята из Rancher Labs просто уменьшили вдвое количество букв в Kubernetes и стилизовали под k3s.
*️⃣ 4/4
#лонгрид #open_source
Кластер из одной ноды (изображение 1)
Этот самый упрощенный метод для разворачивания кластера k3s, который оптимизирован для пограничных устройств. Вы просто запускаете команду установки при помощи команды curl, и она разворачивает полноценный кластер Kubernetes. Но стоит сразу обратить внимание, что данная архитектура развертывания не сможет обеспечить вам отказоустойчивость.
Один кластер с несколькими агентами (изображение 2)
Этот метод также использует один сервер к которому вы можете добавить агентов в кластер. Агенты безопасно подключаются с помощью токена, который сервер создает при запуске. В этой конфигурации каждый узел агента регистрируется на одном и том же узле сервера. Пользователь k3s может управлять ресурсами Kubernetes, вызывая API k3s на узле сервера.
Высокодоступный сервер k3s с внешней БД (изображение 3)
Этот метод можно использовать, если вам важно настроить отказоустойчивый кластер. Данный кластер k3s состоит из:
• Двух или более серверных узлов, которые будут обслуживать API Kubernetes и запускать другие службы плоскости управления.
• Внешнего хранилища данных (вместо встроенного хранилища данных SQLite, которое используется в конфигурациях с одним сервером по умолчанию).
Fun facts про k3s
• Более 1 миллиона загрузок. С февраля 2019 года k3s скачали более 1 миллиона раз, в среднем 20 000 установок в неделю.
• На момент 2023 года имеет на гитхабе более 24 тысяч звезд, что говорит о заинтересованности сообщества в данном проекте.
• Не существует ни полной формы названия k3s, ни официального произношения. Разработчики хотели, чтобы установка Kubernetes была вдвое меньше с точки зрения занимаемой памяти. А так как Kubernetes состоит из 10 букв, которое сообщество стилизовали под k8s, ребята из Rancher Labs просто уменьшили вдвое количество букв в Kubernetes и стилизовали под k3s.
#лонгрид #open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤2
k3s: легковесный дистрибутив Kubernetes
Часть 1: из истории k3s
Часть 2: отличия от k8s
Часть 3: архитектура
Часть 4: как можно развернуть k3s и Fun facts
▪️ Ссылка на репозиторий k3s
▪️ Ссылка на документацию k3s
▪️ Полезная ссылка из комментариев: «k3d — легкая оболочка для запуска k3s в докере»
#лонгрид #open_source
Часть 1: из истории k3s
Часть 2: отличия от k8s
Часть 3: архитектура
Часть 4: как можно развернуть k3s и Fun facts
▪️ Ссылка на репозиторий k3s
▪️ Ссылка на документацию k3s
▪️ Полезная ссылка из комментариев: «k3d — легкая оболочка для запуска k3s в докере»
#лонгрид #open_source
👍8❤4🔥3
+1 полезный open-source инструмент — KubeLinter 💻
Он анализирует YAML-файлы Kubernetes и Helm-чарты и проверяет их на соответствие различным best practices, уделяя особое внимание готовности к работе и безопасности.
Некоторые распространенные проблемы, которые выявляет KubeLinter — запуск контейнеров от имени non-root user, соблюдение минимальных привилегий и хранение конфиденциальной информации только в секретах.
Лицензия Apache License 2.0, 2.5k звездочек на GitHub ⭐️
P.S. Статьи про работу с этим инструментом:
• «Ensuring YAML best practices using KubeLinter»
• «Analyze Kubernetes files for errors with KubeLinter»
• «How to add a new check in KubeLinter?»
• «Extending kube-linter To Build A Custom Template»
#open_source
Он анализирует YAML-файлы Kubernetes и Helm-чарты и проверяет их на соответствие различным best practices, уделяя особое внимание готовности к работе и безопасности.
Некоторые распространенные проблемы, которые выявляет KubeLinter — запуск контейнеров от имени non-root user, соблюдение минимальных привилегий и хранение конфиденциальной информации только в секретах.
Лицензия Apache License 2.0, 2.5k звездочек на GitHub ⭐️
P.S. Статьи про работу с этим инструментом:
• «Ensuring YAML best practices using KubeLinter»
• «Analyze Kubernetes files for errors with KubeLinter»
• «How to add a new check in KubeLinter?»
• «Extending kube-linter To Build A Custom Template»
#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Мы уже упоминали ( и не раз) этого автора и его обучающие материалы, теперь хотим обратить внимание на одну полезную open-source разработку.
Да, есть вероятность, что вы про нее слышали, но будет не лишним упомянуть еще раз.
k'exp — Kubernetes Explorer
k'exp отражает состояние вашего кластера в режиме реального времени, показывает «связанные» объекты и может показывать информацию по конкретным объектам.
Здесь — плейлист с демо-видео :)
💻 Репозиторий инструмента
P.S. Другие open-source проекты автора можно найти вот здесь.
#open_source
Да, есть вероятность, что вы про нее слышали, но будет не лишним упомянуть еще раз.
k'exp — Kubernetes Explorer
k'exp отражает состояние вашего кластера в режиме реального времени, показывает «связанные» объекты и может показывать информацию по конкретным объектам.
Здесь — плейлист с демо-видео :)
P.S. Другие open-source проекты автора можно найти вот здесь.
#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3❤2
Инструменты
nxs-universal-chart
Универсальный Helm-чарт. Создан для установки любых приложений в Kubernetes / OpenShift и другие оркестраторы, совместимые с собственным API Kubernetes. Apache 2.0 license
helmfile
По сути это обёртка для Helm, которая позволяет в одном месте описывать множество Helm релизов, параметризовать их чарты для нескольких окружений, а также задавать порядок их деплоя.
helm-diff
Плагин Helm, который показывает разницу, объясняющую, что изменится при обновлении Helm. По сути, этот инструмент генерирует разницу между последней развернутой версией выпуска и версией
Плагин, позволяющий писать тесты для Helm-чартов на чистом Yaml, отображать их локально и ничего не добавлять в кластер.
2/2
#лонгрид #open_source
nxs-universal-chart
Универсальный Helm-чарт. Создан для установки любых приложений в Kubernetes / OpenShift и другие оркестраторы, совместимые с собственным API Kubernetes. Apache 2.0 license
helmfile
По сути это обёртка для Helm, которая позволяет в одном месте описывать множество Helm релизов, параметризовать их чарты для нескольких окружений, а также задавать порядок их деплоя.
helm-diff
Плагин Helm, который показывает разницу, объясняющую, что изменится при обновлении Helm. По сути, этот инструмент генерирует разницу между последней развернутой версией выпуска и версией
helm upgrade --debug --dry-run
helm-unittestПлагин, позволяющий писать тесты для Helm-чартов на чистом Yaml, отображать их локально и ничего не добавлять в кластер.
2/2
#лонгрид #open_source
👍23🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
Helm Diff Plugin — плагин Helm, который показывает превью изменений
Команды:
2.3k звездочек! ⭐️
💻 Репозиторий на GitHub
#open_source
Команды:
release — shows diff between release's manifestsrevision — shows diff between revision's manifestsrollback — shows a diff explaining what a helm rollback could performupgrade — shows a diff explaining what a helm upgrade would change2.3k звездочек! ⭐️
#open_source
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5👌2
Возможно, вы знакомы с nxs-backup — open-source инструментом для бэкапов. Про него были статьи на Хабре эта и эта.
В общем, если вы им пользуетесь или хотите начать пользоваться, то появился отдельный канал про nxs-backup. В нем будут анонсы релизов, новых функций, исправлений ошибок и информация про мероприятия.
Еще есть чат — там вам ответят не только другие пользователи, но и авторы nxs-backup.
P.S. Всем DevOps и хороших выходных! 🔥
#open_source
В общем, если вы им пользуетесь или хотите начать пользоваться, то появился отдельный канал про nxs-backup. В нем будут анонсы релизов, новых функций, исправлений ошибок и информация про мероприятия.
Еще есть чат — там вам ответят не только другие пользователи, но и авторы nxs-backup.
P.S. Всем DevOps и хороших выходных! 🔥
#open_source
🔥12👍5