Начиная с Kubernetes относительно легко. Что это тяжело Делать это правильным способом , применяя все лучшие практики, и Предотвращение ошибок заверения повлиять на безопасность и надежность вашей продукции среда.
К счастью, есть инструмент, который не только может сделать это для нас, но это также Мощный , очень простым в использовании, и вы можете начать с него бесплатно! Datree Отказ
Сегодня я собираюсь рассказать вам все об этом: как установить его, что он может сделать для нас, Как использовать это Локально и в наших системах Ci, и, конечно, почему мы хотели бы использовать его.
О смене Левый
Если вы следуете в этом блоге или YouTube Channel Некоторое время вы знаете, что я большой сторонник Смешанная левая стратегия Отказ
Будь то тестирование, безопасность или проверка, я считаю, что мы должны сделать это Как можно скорее в рабочем процессе развития .
Когда дело доходит до Валидация и безопасность Однако, однако, имеется просто горстка инструментов, которые действительно разработаны с помощью этого «Shif-Lever». И если мы поговорим о специальных инструментах Kubernetes, то вы можете считать их на пальцах одной руки.
Сегодня мы говорим о одном из тех инструментов, которые обещают быть One-Stop-Shop для Kubernetes и Cerm Configuration и Best Partication Validation . И мальчик это доставляет!
О Datree
Инструмент, о котором я говорю, называется Datree Отказ Это инструмент на основе CLI, который работает на Windows, Linux и MacOS, и это Открытый источник .
datreeio/datree.
Предотвратите неправильные настройки Kubernetes от достижения добычи (опять же 😤)! Datree — это инструмент CLI, чтобы гарантировать, что K8S Mainests и Helm Charts следуют за лучшим практикам, а также политики вашей организации. Смотрите наши документы: https://hub.datree.io
Datree может сделать для нас несколько вещей, и мы рассмотрим их всего за секунду, но ключевой момент для меня в том, что Это работает так же о местной среде развития, в любой системе CI, и где-нибудь еще Отказ
Он даже может быть сконфигурирован как крюк для досягаемости Git, позволяющий нам по-настоящему сдвинуть проверку Kubernetes влево. (Посмотрите здесь для ссылок на это)
На момент написания, Datree использует Около 30 предварительно определенных правил и политики на основе лучших практик , но это позволяет настроить эти правила и, в ближайшее время, даже определить новые пользовательские правила, чтобы соответствовать всем вашим потребностям.
видео
Как обычно, если вы Визуальный учащийся или просто предпочитаю смотреть и слушать вместо чтения, здесь у вас есть Видео со всем объяснением и демонстрацией , который, чтобы быть честным, много более полный чем этот пост.
Ссылка на видео: https://youtu.be/am7evflmet4
Если вы скорее предпочитаете читать, ну … Давайте просто продолжим:)
Установка Datree.
Демо для этого раздела в видео начинается в Минут 2:04.
Хорошо, достаточно говорить, давайте установимся и увидимся в действии.
Если вы находитесь на Linux или Macos , вы можете просто выполнить эту команду:
curl https://get.datree.io | /bin/bash
В Окна Вместо этого вы можете использовать PowerShell:
iwr -useb https://get.datree.io/windows_install.ps1 | iex
Есть также варианты, чтобы запустить это в Докер или использовать Домашний вид (см. здесь )
Как видите, установка действительно быстрая, только одна команда, и она также очень быстро.
Есть еще один шаг, который мы должны сделать для правильной настройки, но увидим, что всего за секунду. Давайте сначала попробуем использовать инструмент.
Первое сканирование с datreee
Демо для этого раздела в видео начинается в Минут 3:05
Чтобы запустить сканирование с DANTREE, вы используете Тест Datree
Команда, передавая файлы (ы), которые вы хотите сканировать:
datree test myk8smanifest.yml
Через несколько секунд инструмент получит вам выход:
Как вы можете видеть, инструмент делает несколько вещей:
- Он подтверждает YAML, чтобы убедиться, что все в порядке (_so это в основном также yaml linter)
- Он проверяет специфичную схему Kubernetes против предопределенной версии
- Это проверяет проявление против политики
На дне есть Сводная таблица Это также содержит ссылку с Клийд
или токен:
Новый токен генерируется Каждый раз, когда вы выполняете самое первое сканирование на новой системе.
Если вы нажмете по ссылке, страница входа будет отображаться, и у вас есть выбор для входа в систему (создайте новую учетную запись), используя Github или Google.
После входа в систему появляется панель Datree.
Это Централизованное управление политикой Приборная панель, которая является одним из ключевых точек обслуживания. Здесь вы можете увидеть правила, которые применяются к сканированию ( по умолчанию 21 более 30 ) и для каждого правила вы можете получить дополнительную информацию, нажав на Я
кнопка.
Это приведет вас к странице документации относительно этого правила, где вы можете найти полную информацию об этом.
Интерфейс довольно минимален, но я ценю это, потому что Содержит все и только информация, которую вам нужна И поэтому это не запутано.
Kubernetes Schema версии
Демо для этого раздела в видео начинается в Минут 5:46.
Как уже упоминалось ранее, Datree подтверждает ваши проявления для определенной предопределенной версии схемы Kubernetes. Есть 2 способа изменить версию.
Через настройки
Первый способ — перейти к настройкам (используя значок пользователя в правом верхнем углу и выборе Настройки ).
Здесь вы выпадаете для выбора версии, от V1.15.0 до последнего.
Будьте осторожны с этим обстановкой, потому что Изменение версии здесь изменит ее для каждого сканирование Вы выполняете с Datree.
Через CLI
Если вы хотите выполнить одноразовое сканирование против определенной версии схемы Kubernetes, вместо этого вы можете переопределить значение в Настройки используя --schema-версия
Флаг CLI :
datree test --schema-version 1.20.0 myk8smanifest.yml
Это, например, запускает проверку схемы против версии 1.20.0 kubernetes Schema, независимо от того, какова выбранная версия по умолчанию.
Настройка datree.
Демо для этого раздела в видео начинается в Минут 6:44.
Как я уже упоминал, есть Простое изменение конфигурации что мы должны сделать. Но я хотел показать вам инструмент, не делая этого сначала, потому что Это просто работает . Действительно просто и быстро настройка.
Конфигурация, о которой я говорю, это токен. Прежде чем я сказал, что Datree генерирует новый токен каждый раз, когда вы запускаете первую проверку в новой системе. Я также сказал, что централизованное управление политикой является ключевыми функциями услуги. Но как мы можем централизованно управлять политиками и назначить их всем нашим пользователям и системе, если токен меняется каждый раз?
Ну, ответ — это Токен аккаунта Действительно
Если вы снова пойдете в Настройки Вы заметите, что у вас есть Токен поле. Просто скопируйте значение токена и замените его в Файл конфигурации Datree в вашей системе. Вы можете найти файл с этим Путь: ~/.datreee/config.yaml
Как только это сделано, вы можете начать управлять своими политиками и эффективно правило.
Кроме того, благодаря токену, каждый раз, когда вы управляете проверкой с Datree, вы увидите его в истории:
Здесь вы не только записали все ваши сканы, но и Результаты Отказ
Управление политикой
Демо для этого раздела в видео начинается в минута 8:35.
Хорошо, давайте наконец поговорим о Централизованное управление политикой 🙂
С токеном на месте мы можем использовать приборную панель в полной мере. Мы можем конечно Включить и отключить правила, используя переключатель рядом с именем правила. Как только вы сделаете это и повторно сканируйте свои файлы манифеста, вы увидите, что новые правила, принимаемые в рассмотрении. Изменения — автоматически распространяется всем клиентам, которые используют один и тот же токен.
Вы также можете настроить выходное сообщение правил.
Это очень полезно, если вы хотите дать дополнительную информацию вашему пользователю относительно конкретного исключения или как ее решить.
Опять же, изменения автоматически распространяются, поэтому вы увидите новое сообщение Как только вы выполняете новую проверку сканировать
Это уже довольно круто сам по себе, потому что оно уверяет у вас равномерность в средах . Но это не все, Мы можем сделать больше Отказ
Мы можем на самом деле Создать несколько наборов правил или политики Использование именования Datree.
Создание выполняется непосредственно из пользовательского интерфейса, просто нажмите кнопку « Создать политику +», дайте ему имя и начните включить нужные правила. Вы также можете __lone существующую политику _ И настроить его, а также удаление существующих политик.
Как только у вас появится новая политика, вы можете использовать его для вашей проверки вместо политики по умолчанию, используя --policy
флаг:
datree test --policy MyNewPolicyName manifest.yaml
О Удаление политики , Помните, что если вы попытаетесь использовать политику, которая больше не существует Datree, не вернется к одному по умолчанию, даст вам сообщение об ошибке.
Политика как код
Демо для этого раздела в видео начинается в Минут 11:29
Есть еще одна вещь о политиках и правиле, я хочу показать вам. Это было Очень недавно введен В продукте, и это сделает все вас, что с кодом — энтузиаст очень счастлив: Политика как код Отказ
Как мы видели, по умолчанию Datree использует UI для управления политиками и правилами. Если мы хотим использовать Политика как код Мы должны включить это.
Помните, что однажды Политика как код Режим включен, единственный способ изменить политики в вашей учетной записи по Публикация файла конфигурации YAML ( Policies.yaml
) с определенной политикой.
Мы можем либо создать файл политики с нуля или, как бы порекомендовал, Загрузите файл по умолчанию и настройте его Отказ
Файл политики, как вы можете видеть в выписке ниже, это просто обычный файл yaml, который содержит определение правил и других метаданных для политики:
apiVersion: v1 policies: - name: Default isDefault: true rules: - identifier: CONTAINERS_MISSING_IMAGE_VALUE_VERSION messageOnFailure: Incorrect value for key `image` - specify an image version to avoid unpleasant "version surprises" in the future - identifier: CONTAINERS_MISSING_MEMORY_REQUEST_KEY messageOnFailure: Missing property object `requests.memory` - value should be within the accepted boundaries recommended by the organization - identifier: CONTAINERS_MISSING_MEMORY_LIMIT_KEY messageOnFailure: Missing property object `limits.memory` - value should be within the accepted boundaries recommended by the organization [...]
Вы можете Отключить правило Комментируя линию с #
[...] # - identifier: CONTAINERS_MISSING_IMAGE_VALUE_VERSION # messageOnFailure: Incorrect value for key `image` - specify an image version to avoid unpleasant "version surprises" in the future - identifier: CONTAINERS_MISSING_MEMORY_REQUEST_KEY messageOnFailure: Missing property object `requests.memory` - value should be within the accepted boundaries recommended by the organization [...]
И еще раз вы можете Изменить выходное сообщение Редактирование MessageonFailure
поле.
Вы также можете Создать одну или несколько новых политик Просто скопируйте/вставьте ту же структуру, измените имя, установите по умолчанию, и вы закончите.
apiVersion: v1 policies: - name: Default isDefault: true rules: # - identifier: CONTAINERS_MISSING_IMAGE_VALUE_VERSION # messageOnFailure: Incorrect value for key `image` - specify an image version to avoid unpleasant "version surprises" in the future - identifier: CONTAINERS_MISSING_MEMORY_REQUEST_KEY messageOnFailure: Missing property object `requests.memory` - value should be within the accepted boundaries recommended by the organization [...] - name: AnotherPolicy isDefault: false rules: - identifier: CONTAINERS_MISSING_IMAGE_VALUE_VERSION messageOnFailure: Incorrect value for key `image` - specify an image version to avoid unpleasant "version surprises" in the future # - identifier: CONTAINERS_MISSING_MEMORY_REQUEST_KEY # messageOnFailure: Missing property object `requests.memory` - value should be within the accepted boundaries recommended by the organization [...]
Как только вы удовлетворены вашим файлом политики, пришло время сделать его доступным на сервис, публикую его.
datree publish policyfile.yaml
После опубликована новая политика файл конфигурации, он будет Переопределить существующие политики Настройте на свой аккаунт.
Вот и все, теперь вы можете начать использовать ваши новые политики, как мы видели раньше.
Использование политики в качестве кода является супер интересным, потому что тогда мы делаем с каким-либо обычным исходным кодом и другим « в виде кода » «Модели, такие как IAC, CAC, и т. Д.». Версия их, храните их в нашей платформе контроля источника, и даже Используйте запросы на тягу, обзор кода и т. Д. чтобы убедиться, что они именно так, как мы хотим, чтобы они были и сохранить их под контролем Отказ
Datree для Helm.
Демо для этого раздела в видео начинается в Минут 18:04.
До сих пор мы говорили о проверке, проявляются квитации Кубернанов. Datree, однако, поддерживает также Проверка HELM Charts Действительно
Datree предоставляет Плагин Helm Таким образом, валидация может быть запущена непосредственно из HELM CLI.
helm plugin install https://github.com/datreeio/helm-datree
После установки используя команду выше, вы можете просто запустить Helm Datree Test
Команда, передавающая папку, содержащую ваши хелмы диаграммы в качестве параметра.
После завершения сканирования у вас будет те же результаты Как вы напрямую бегаете Datree CLI.
Ценообразование Datree
Круто верно? У меня есть еще одна вещь для вас: давайте поговорим о ценах.
Как я уже говорил, Datree бесплатен для начинания с … И на самом деле это Полностью свободно использовать для ряда сценариев Отказ Вы на самом деле делаете 1000 бесплатных политических сканов в месяц, каждый месяц, и не имеет значения, если вы сканируете один файл или сто … Один «тестовый тест Datree» считает, что одно политическое сканирование Отказ
Если вам нужно больше 1000 сканов в месяц, есть платные варианты.
Вы можете получить 2000 Политика Scans в месяц и дополнительная поддержка с Pro Plan, и Настраиваемое количество сканирования политики и выделенная поддержка с планом предприятия.
Даже лучше, вы можете получить 1 месяц Premium Plan бесплатно, вы используете эту ссылку: https://app.datree.io/?utm_source=coder-dave&medium=youtube
Выводы
Итак, что вы думаете о Datree? Это то, что вы будете принимать как часть вашего рабочего процесса? Дайте мне знать в разделе комментариев ниже, мне очень хотелось бы узнать это.
Вы также можете посмотреть Это видео В котором покажет вам, как развернуть в Kubernetes в лазурных трубопроводах, начиная с нуля.
Вроде, поделиться и следуй за мной 🚀 Для получения дополнительной информации:
📽 YouTube ☕. Купи мне кофе 💖 Парреон 📧 Рассылка 🌐 Веб-сайт CODERDAVE.IO 👕 Merch 👦🏻 Страница в Facebook 🐱💻 Github 👲🏻 Twitter 👴🏻 LinkedIn 🔉 Подкас
Оригинал: «https://dev.to/n3wt0n/avoid-problems-with-kubernetes-best-practices-enforcement-with-datree-4p2f»