С помощью быстрого старта вы:
Установите Container Security в кластер Managed Kubernetes.
Настроите доступ к панели управления Container Security с использованием плагина Ingress Nginx.
Создадите свою первую политику допуска.
Проверите выполнение политики допуска и посмотрите отчеты.
Если вы уже зарегистрированы, войдите под своей учетной записью.
Убедитесь, что у вас достаточно прав на создание кластера Managed Kubernetes.
Создайте кластер с параметрами:
Название — cloudru-cluster.
Количество мастер-узлов — 1.
Гарантированная доля vCPU, % — 10.
CPU, шт. — 2.
RAM, ГБ — 4.
В кластере cloudru-cluster создайте группу узлов с параметрами:
Название — cloudru-nodepool.
Гарантированная доля vCPU, % — 10.
CPU, шт. — 4.
RAM, ГБ — 8.
Объем хранилища, ГБ — 40.
Количество узлов — 1.
В кластер cloudru-cluster установите Ingress Nginx.
В кластер cloudru-cluster установите Trivy.
Подключитесь к кластеру cloudru-cluster.
В личном кабинете перейдите в сервис Container Security и нажмите Добавить плагин.
Выберите кластер cloudru-cluster и нажмите Установить.
На странице установки плагина на вкладке Расширенная конфигурация выберите YAML и укажите:
core:controller:replicas: 1console:svc:type: "ClusterIP"ingress:enabled: truehost: "console.evocs.ru"ingressClassName: "nginx"
Нажмите Установить.
Чтобы проверить назначенный IP-адрес, в терминале или PowerShell выполните:
kubectl get ingress -n evocs
В ответе значение поля ADDRESS — IP-адрес для доступа к панели управления из интернет.
На устройстве, с которого подключились к кластеру, пропишите в hosts:
<address> console.evocs.ru
В адресную строку браузера введите https://console.evocs.ru.
Нажмите Войдите по Cloud.ru ID.
Политика будет проверять наличие тега у образа при развертывании пода.
В панели управления Container Security перейдите в раздел Контроль допуска → Политики допуска.
Нажмите Создать политику и выберите Kyverno (весь кластер).
Скопируйте в окно редактора политику disallow-latest-tag-block:
apiVersion: policies.kyverno.io/v1kind: ValidatingPolicymetadata:name: disallow-latest-tag-blockspec:validationActions: [Audit,Deny]evaluation:background:enabled: truematchConstraints:resourceRules:- apiGroups: ['']apiVersions: [v1]operations: [CREATE, UPDATE]resources: [pods]validations:- expression: "object.spec.containers.all(container, container.image.contains(':'))"message: "An image tag is required."- expression: "object.spec.containers.all(container, !container.image.endsWith(':latest'))"message: "Using a mutable image tag e.g. 'latest' is not allowed."
Если тег для образа указан не будет, правило заблокирует создание пода.
Нажмите Создать.
На устройстве, с которого подключились к кластеру, создайте файл cloudru-nginx-disallowed-pod.yaml и скопируйте в него следующий манифест:
apiVersion: v1kind: Podmetadata:name: cloudru-nginx-disallowed-podspec:containers:- name: cloudru-nginx-disallowed-podimage: nginx
В терминале или PowerShell выполните команду:
kubectl create -f cloudru-nginx-disallowed-pod.yaml
Создание пода будет заблокировано.
Примерный результат:
...resource Pod/default/cloudru-nginx-disallowed-pod was blocked due to the following policiesdisallow-latest-tag-block:validation failure: validation error: An image tag is required.
Чтобы посмотреть отчет, перейдите в раздел Контроль допуска → Отчеты и в списке отчетов нажмите на cloudru-nginx-disallowed-pod.
Создайте файл cloudru-nginx-latest-tag.yaml и скопируйте в него следующую спецификацию:
apiVersion: v1kind: Podmetadata:name: cloudru-nginx-latest-tagspec:containers:- name: cloudru-nginx-latest-tagimage: nginx:latest
Выполните команду:
kubectl create -f cloudru-nginx-latest-tag.yaml
Создание пода будет заблокировано.
Примерный результат:
...resource Pod/default/cloudru-nginx-latest-tag was blocked due to the following policiesdisallow-latest-tag-block:Using a mutable image tag e.g. 'latest' is not allowed.
Чтобы посмотреть отчет, перейдите в раздел Контроль допуска → Отчеты и в списке отчетов нажмите на cloudru-nginx-latest-tag.
Создайте файл cloudru-nginx-allowed-pod.yaml и скопируйте в него следующую спецификацию:
apiVersion: v1kind: Podmetadata:name: cloudru-nginx-allowed-podspec:containers:- name: cloudru-nginx-allowed-podimage: nginx:1.26.3
Выполните команду:
kubectl create -f cloudru-nginx-allowed-pod.yaml
Под cloudru-nginx-allowed-pod создан.
Чтобы посмотреть отчет, перейдите в раздел Контроль допуска → Отчеты и в списке отчетов нажмите на cloudru-nginx-allowed-pod.
Далее вы можете: