🚀 Быстрый старт
Краткое руководство по развертыванию системы виртуализации Virt.Byte73.
Подготовка
Логин и пароль для доступа к Help репозитарию:
Логин - expert
Пароль - ExpertP@ssw0rd
# Получить логин и пароль от Helm репозитория
# Добавить Helm репозиторий, подставив полученные логин и пароль
helm repo add virtbyte-helm https://nexus.inside.virtbyte.ru/repository/virtbyte-helm-repo/ \
--username helm-user --password helm-password
# Создать namespace
kubectl create namespace portal-dev
# Получить логин и пароль от Nexus репозитория
# Создать секрет для пула образов из nexus, подставив полученные логин и пароль
kubectl create secret docker-registry nexus-virtbyte \
--docker-server=nexus.inside.virtbyte.ru \
--docker-username=your-username \
--docker-password=your-password \
-n portal-dev
# Установить dev окружение
helm install selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--version 0.1.0 --namespace portal-dev
# Проверить статус
kubectl get pods -n portal-dev
📋 Предварительные требования
- ✅ Helm 3.x установлен
- ✅ kubectl настроен для доступа к кластеру
- ✅ VPN подключение для доступа к Nexus
🎯 Быстрые команды
Установка
# Dev окружение (с локальным Keycloak)
helm install selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--version 0.1.0 \
--namespace portal-dev
# Main окружение (с внешним Keycloak)
helm install selfservice-portal virtbyte-helm/selfservice-portal \
--version 0.1.0 \
--namespace portal-main
Проверка
# Статус релиза
helm status selfservice-portal-dev -n portal-dev
# Поды
kubectl get pods -n portal-dev -o wide
# Сервисы и IP адреса
kubectl get svc -n portal-dev | grep LoadBalancer
# Логи
kubectl logs -f deployment/virt-front-admin -n portal-dev
Обновление
# Обновить до новой версии
helm upgrade selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--version 0.2.0 \
--namespace portal-dev
# Откатить к предыдущей версии
helm rollback selfservice-portal-dev 1 -n portal-dev
Удаление
# Удалить релиз
helm uninstall selfservice-portal-dev -n portal-dev
# Очистить namespace (если нужно)
kubectl delete namespace portal-dev
🔧 Кастомизация
Простые изменения
# Изменить LoadBalancer IP
helm upgrade selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--set frontend.service.loadBalancerIP="10.4.1.120" \
--namespace portal-dev
# Изменить количество реплик
helm upgrade selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--set frontend.replicaCount=2 \
--set restAPI.replicaCount=2 \
--namespace portal-dev
# Отключить компонент
helm upgrade selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--set rabbitmq.enabled=false \
--namespace portal-dev
Файл с кастомными значениями
# Создать custom-values.yaml
cat > custom-values.yaml << EOF
frontend:
replicaCount: 2
service:
loadBalancerIP: "10.4.1.120"
env:
REACT_APP_DEBUG: "true"
restAPI:
replicaCount: 2
env:
LOGGING_LEVEL_ROOT: "DEBUG"
EOF
# Установить с кастомными значениями
helm install selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--values custom-values.yaml \
--namespace portal-dev
🌐 Доступ к сервисам
Dev окружение
| Сервис | URL | IP | Порт |
|---|---|---|---|
| Frontend | http://—-:3000 | 10.4.1.115 | 3000 |
| REST API | http://—-:8088 | 10.4.1.115 | 8088 |
| Keycloak | https://—- | - | 443 |
Main окружение
| Сервис | URL | IP | Порт |
|---|---|---|---|
| Frontend | http://—-:3000 | 10.120.0.26 | 3000 |
| REST API | http://—-:8088 | 10.120.0.26 | 8088 |
| Keycloak | https:/—– | External | 443 |
Port-forward для локального доступа
# Frontend
kubectl port-forward svc/virt-front-admin-lb 3000:3000 -n portal-dev
# REST API
kubectl port-forward svc/virt-rest-tcp 8088:8088 -n portal-dev
# PostgreSQL
kubectl port-forward svc/postgres-rest-svc 5432:5432 -n portal-dev
# RabbitMQ Management
kubectl port-forward svc/rabbitmq-svc 15672:15672 -n portal-dev
🐛 Troubleshooting
Частые проблемы
Поды не запускаются
# Проверить события
kubectl get events -n portal-dev --sort-by='.lastTimestamp'
# Проверить описание пода
kubectl describe pod <pod-name> -n portal-dev
# Проверить логи
kubectl logs <pod-name> -n portal-dev
ImagePullBackOff
# Проверить секрет для registry
kubectl get secret nexus -n portal-dev
# Создать секрет если отсутствует
kubectl create secret docker-registry nexus-virtbyte \
--docker-server=nexus.inside.virtbyte.ru \
--docker-username=your-username \
--docker-password=your-password \
-n portal-dev
LoadBalancer Pending
# Проверить аннотации kube-vip
kubectl describe svc virt-front-admin-lb -n portal-dev
# Проверить доступность IP
ping 10.4.1.115
CRD конфликты
# Добавить метки Helm к существующему CRD
kubectl label crd keycloaks.k8s.keycloak.org app.kubernetes.io/managed-by=Helm
kubectl annotate crd keycloaks.k8s.keycloak.org meta.helm.sh/release-name=selfservice-portal-dev
kubectl annotate crd keycloaks.k8s.keycloak.org meta.helm.sh/release-namespace=portal-dev
Полная переустановка
# Удалить все
helm uninstall selfservice-portal-dev -n harvester-system
kubectl delete namespace portal-dev
# Переустановить
helm install selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--version 0.1.0 \
--namespace portal-dev
📊 Мониторинг
Быстрая проверка здоровья
# Все поды должны быть Running
kubectl get pods -n portal-dev
# Все сервисы должны иметь EXTERNAL-IP
kubectl get svc -n portal-dev
# Проверить ресурсы
kubectl top pods -n portal-dev
Логи в реальном времени
# Frontend
kubectl logs -f deployment/virt-front-admin -n portal-dev
# REST API
kubectl logs -f deployment/virt-rest -n portal-dev
# Keycloak
kubectl logs -f deployment/keycloak-operator -n portal-dev
# PostgreSQL
kubectl logs -f statefulset/postgres-rest -n portal-dev
🔄 Разработка
Локальная сборка чарта
# Сборка dev чарта
helm package helm/dev/selfservice-portal
# Установка из локального файла
helm install selfservice-portal-dev ./selfservice-portal-dev-0.1.0.tgz \
--namespace portal-dev
Тестирование изменений
# Dry-run для проверки манифестов
helm template selfservice-portal-dev helm/dev/selfservice-portal \
--values helm/dev/selfservice-portal/values.yaml \
--debug
# Проверка различий
helm diff upgrade selfservice-portal-dev helm/dev/selfservice-portal \
--values custom-values.yaml
Обновление образов
# Обновить образ frontend
helm upgrade selfservice-portal-dev virtbyte-helm/selfservice-portal-dev \
--set frontend.image.tag="v1.2.0" \
--namespace portal-dev
# Принудительное обновление подов
kubectl rollout restart deployment/virt-front-admin -n portal-dev
📞 Помощь
- 📖 Полная документация:
helm/README.md - 🔧 Примеры конфигурации:
helm/examples/ - 🐛 Проблемы: Создайте issue в GitLab
- 💬 Вопросы: Slack канал #devops