Files
2026-04-08 20:22:14 +07:00

124 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Урок 1.2 — Установка и настройка Kyverno
## 1. Добавить Helm репозиторий
```bash
helm repo add kyverno https://kyverno.github.io/kyverno/
helm repo update
# Посмотреть доступные версии
helm search repo kyverno/kyverno --versions | head -10
```
## 2. Установка
### Development / Lab
```bash
helm install kyverno kyverno/kyverno \
--namespace kyverno \
--create-namespace \
--values values-development.yaml
```
### Production
```bash
helm install kyverno kyverno/kyverno \
--namespace kyverno \
--create-namespace \
--values values-production.yaml
```
## 3. Проверка установки
```bash
# Статус подов
kubectl get pods -n kyverno
# Все поды должны быть Running:
# NAME READY STATUS RESTARTS
# kyverno-admission-controller-xxx 1/1 Running 0
# kyverno-background-controller-xxx 1/1 Running 0
# kyverno-cleanup-controller-xxx 1/1 Running 0
# kyverno-reports-controller-xxx 1/1 Running 0
# Проверить webhook конфигурации
kubectl get validatingwebhookconfigurations | grep kyverno
kubectl get mutatingwebhookconfigurations | grep kyverno
# Проверить что caBundle не пустой (признак корректной регистрации webhook)
kubectl get validatingwebhookconfigurations \
kyverno-resource-validating-webhook-cfg \
-o jsonpath='{.webhooks[0].clientConfig.caBundle}' | wc -c
# Посмотреть события
kubectl get events -n kyverno --sort-by='.lastTimestamp' | tail -20
# Логи admission controller
kubectl logs -n kyverno \
-l app.kubernetes.io/component=admission-controller \
--tail=50
```
## 4. Тестовая политика
```bash
# Создать тестовую политику
kubectl apply -f test-policy.yaml
# Попробовать создать ConfigMap без обязательного лейбла (должна быть ошибка)
kubectl create configmap test-bad --from-literal=key=value -n default
# Создать правильный ConfigMap
kubectl apply -f - <<EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: test-good
namespace: default
labels:
test: "true"
data:
key: value
EOF
# Удалить тестовую политику
kubectl delete -f test-policy.yaml
kubectl delete configmap test-good -n default
```
## 5. Обновление Kyverno
```bash
# Обновить CRD отдельно (важно!)
helm upgrade kyverno kyverno/kyverno \
--namespace kyverno \
--set crds.install=true \
--values values-production.yaml
# Проверить статус политик после обновления
kubectl get clusterpolicies -o wide
```
## 6. Удаление Kyverno
```bash
# ВНИМАНИЕ: сначала переведите критичные политики в Audit режим
# Удалить через Helm
helm uninstall kyverno -n kyverno
# Удалить CRD
kubectl delete crd $(kubectl get crd | grep kyverno | awk '{print $1}')
# Удалить webhook конфигурации (если остались)
kubectl delete validatingwebhookconfigurations \
$(kubectl get validatingwebhookconfigurations | grep kyverno | awk '{print $1}') \
2>/dev/null || true
kubectl delete mutatingwebhookconfigurations \
$(kubectl get mutatingwebhookconfigurations | grep kyverno | awk '{print $1}') \
2>/dev/null || true
```