init
This commit is contained in:
66
01-introduction/01-what-is-kyverno/README.md
Normal file
66
01-introduction/01-what-is-kyverno/README.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Урок 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
|
||||
```
|
||||
Reference in New Issue
Block a user