Шаблоны для проектов доступные по умолчанию
В Deckhouse Kubernetes Platform есть набор шаблонов для создания проектов:
default
— шаблон для базовых сценариев использования проектов:- ограничение ресурсов;
- сетевая изоляция;
- автоматические алерты и сбор логов;
- выбор профиля безопасности;
-
настройка администраторов проекта.
Описание шаблона в GitHub.
secure
— включает все возможности шаблонаdefault
, а также дополнительные функции:- настройка допустимых для проекта UID/GID;
- правила аудита обращения Linux-пользователей проекта к ядру;
- сканирование запускаемых образов контейнеров на наличие известных уязвимостей (CVE).
Описание шаблона в GitHub.
secure-with-dedicated-nodes
— включает все возможности шаблонаsecure
, а также дополнительные функции:- определение селектора узла для всех подов в проекте: если под создан, селектор узла пода будет автоматически заменён на селектор узла проекта;
- определение стандартных tolerations для всех подов в проекте: если под создан, стандартные значения tolerations добавляются к нему автоматически.
Описание шаблона в GitHub.
Чтобы перечислить все доступные параметры для шаблона проекта, выполните команду:
kubectl get projecttemplates <ИМЯ_ШАБЛОНА_ПРОЕКТА> -o jsonpath='{.spec.parametersSchema.openAPIV3Schema}' | jq
Создание проекта
- Для создания проекта создайте ресурс Project с указанием имени шаблона проекта в поле .spec.projectTemplateName.
-
В параметре .spec.parameters ресурса
Project
укажите значения параметров для секции .spec.parametersSchema.openAPIV3Schema ресурсаProjectTemplate
.Пример создания проекта с помощью ресурса Project из
default
ProjectTemplate представлен ниже:apiVersion: deckhouse.io/v1alpha2 kind: Project metadata: name: my-project spec: description: This is an example from the Deckhouse documentation. projectTemplateName: default parameters: resourceQuota: requests: cpu: 5 memory: 5Gi storage: 1Gi limits: cpu: 5 memory: 5Gi networkPolicy: Isolated podSecurityProfile: Restricted extendedMonitoringEnabled: true administrators: - subject: Group name: k8s-admins
-
Для проверки статуса проекта выполните команду:
kubectl get projects my-project
Успешно созданный проект должен отображаться в статусе
Deployed
(синхронизирован). Если отображается статусError
(ошибка), добавьте аргумент-o yaml
к команде (например,kubectl get projects my-project -o yaml
) для получения более подробной информации о причине ошибки.
Создание собственного шаблона для проекта
Шаблоны проектов по умолчанию включают базовые сценарии использования и служат примером возможностей шаблонов.
Для создания своего шаблона:
- Возьмите за основу один из шаблонов по умолчанию, например,
default
. -
Скопируйте его в отдельный файл, например,
my-project-template.yaml
при помощи команды:kubectl get projecttemplates default -o yaml > my-project-template.yaml
-
Отредактируйте файл
my-project-template.yaml
, внесите в него необходимые изменения.Необходимо изменить не только шаблон, но и схему входных параметров под него.
Шаблоны для проектов поддерживают все функции шаблонизации Helm.
- Измените имя шаблона в поле
.metadata.name
. -
Примените полученный шаблон командой:
kubectl apply -f my-project-template.yaml
-
Проверьте доступность нового шаблона с помощью команды:
kubectl get projecttemplates <ИМЯ_НОВОГО_ШАБЛОНА>