67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
# Урок 1.1 — Что такое Kyverno и зачем он нужен
|
|
|
|
Этот урок — теоретический. Ниже — сравнительная шпаргалка и ссылки для подготовки к следующим урокам.
|
|
|
|
## Сравнение: Kyverno vs OPA Gatekeeper
|
|
|
|
| Критерий | Kyverno | OPA Gatekeeper |
|
|
|----------|---------|----------------|
|
|
| Язык политик | YAML + JMESPath | Rego |
|
|
| Порог входа | Низкий | Высокий |
|
|
| Kubernetes-native | Да | Частично |
|
|
| Готовых политик | 300+ (kyverno.io/policies) | Много (github.com/open-policy-agent/gatekeeper-library) |
|
|
| Mutation | Да | Ограниченно |
|
|
| Generation | Да | Нет |
|
|
| Image verification | Да (Cosign) | Нет |
|
|
|
|
## Типы политик
|
|
|
|
```
|
|
ClusterPolicy — кластерный ресурс (все namespace)
|
|
Policy — namespace-scoped ресурс
|
|
|
|
Операции:
|
|
validate → проверить ресурс, отклонить при нарушении
|
|
mutate → изменить ресурс при создании/обновлении
|
|
generate → создать вспомогательные ресурсы
|
|
verifyImages → проверить подпись образа
|
|
```
|
|
|
|
## Архитектура Kyverno
|
|
|
|
```
|
|
kubectl apply -f pod.yaml
|
|
│
|
|
▼
|
|
API Server
|
|
│
|
|
├──► Mutating Webhook ──► Kyverno (mutate rules)
|
|
│ │
|
|
│ изменённый ресурс
|
|
│ │
|
|
├──► Validating Webhook ──► Kyverno (validate rules)
|
|
│ │
|
|
│ pass / deny
|
|
▼
|
|
etcd
|
|
│
|
|
▼
|
|
Background Controller ──► сканирует существующие ресурсы
|
|
Reports Controller ──► создаёт PolicyReport
|
|
Generate Controller ──► создаёт вспомогательные ресурсы
|
|
Cleanup Controller ──► удаляет по расписанию
|
|
```
|
|
|
|
## Задание
|
|
|
|
1. Изучите [официальную документацию](https://kyverno.io/docs/)
|
|
2. Просмотрите готовые политики на [kyverno.io/policies](https://kyverno.io/policies/)
|
|
3. Подготовьте кластер для следующего урока:
|
|
```bash
|
|
# Локально через kind
|
|
kind create cluster --name kyverno-lab
|
|
|
|
# Или minikube
|
|
minikube start --memory=4096 --cpus=2
|
|
```
|