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
|
||
```
|