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