Nasazení na Azure AKS¶
Nasazení MazeVault na Azure Kubernetes Service
Verze dokumentu: 1.0.0
Poslední aktualizace: 2026-02-10
Licenční úroveň: Enterprise+
1. Přehled architektury¶
graph TB
subgraph Azure["☁️ Azure Cloud"]
subgraph AKS["Azure Kubernetes Service"]
Ingress["🌐 Ingress Controller<br/>(TLS Termination)"]
FE["🖥️ Web Interface<br/>(2+ replicas)"]
BE["⚙️ API Server<br/>(1 replica)"]
OCSP["📜 OCSP Responder<br/>(1-3 replicas)"]
end
PG["🗄️ Azure Database for PostgreSQL<br/>Flexible Server"]
Redis["⚡ Azure Cache for Redis"]
KV["🔐 Azure Key Vault"]
EntraID["🆔 Azure Entra ID"]
Monitor["📊 Azure Monitor"]
ACR["📦 Azure Container Registry"]
end
Users["🧑💻 Uživatelé"] -->|HTTPS| Ingress
Ingress --> FE
Ingress --> BE
Ingress --> OCSP
BE --> PG
BE --> Redis
BE --> KV
BE --> EntraID
BE --> Monitor
AKS -.->|Pull images| ACR
classDef k8s fill:#EBF5FB,stroke:#2196F3,stroke-width:2px,color:#1565C0
classDef data fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
classDef security fill:#FFF8E1,stroke:#FF9800,stroke-width:2px,color:#E65100
classDef ops fill:#F5F5F5,stroke:#9E9E9E,stroke-width:2px,color:#424242
classDef user fill:#E8EAF6,stroke:#3F51B5,stroke-width:2px,color:#283593
class Ingress,FE,BE,OCSP k8s
class PG,Redis data
class KV,EntraID security
class Monitor,ACR ops
class Users user
2. Předpoklady¶
- Předplatné Azure s dostatečnými oprávněními (Contributor + User Access Administrator)
- Azure CLI (
az) verze 2.50+ nainstalované kubectlnakonfigurovaný pro přístup ke clusteru AKS- Helm 3.12+ nainstalovaný
- Kontejnerové obrazy MazeVault dostupné v Azure Container Registry
- Licenční klíč MazeVault Enterprise
3. Nastavení infrastruktury Azure¶
Skupina prostředků¶
Cluster AKS¶
# Create AKS cluster
az aks create \
--resource-group rg-mazevault-prod \
--name aks-mazevault-prod \
--node-count 3 \
--node-vm-size Standard_D4s_v5 \
--enable-managed-identity \
--enable-addons monitoring \
--network-plugin azure \
--network-policy calico \
--kubernetes-version 1.28 \
--generate-ssh-keys
# Get credentials
az aks get-credentials \
--resource-group rg-mazevault-prod \
--name aks-mazevault-prod
PostgreSQL Flexible Server¶
az postgres flexible-server create \
--resource-group rg-mazevault-prod \
--name psql-mazevault-prod \
--version 15 \
--sku-name Standard_D2ds_v4 \
--storage-size 128 \
--admin-user mazevault_admin \
--admin-password '<strong-password>' \
--tier GeneralPurpose \
--public-access None
Azure Cache for Redis¶
az redis create \
--resource-group rg-mazevault-prod \
--name redis-mazevault-prod \
--sku Standard \
--vm-size C1 \
--enable-non-ssl-port false \
--minimum-tls-version 1.2
Azure Key Vault¶
az keyvault create \
--resource-group rg-mazevault-prod \
--name kv-mazevault-prod \
--sku premium \
--enable-purge-protection true \
--enable-soft-delete true
4. Nasazení pomocí Helm¶
Přidání Helm repozitáře MazeVault¶
Vytvoření namespace¶
Vytvoření tajných klíčů (Secrets)¶
# Database credentials
kubectl create secret generic mazevault-db-credentials \
--namespace mazevault \
--from-literal=host=psql-mazevault-prod.postgres.database.azure.com \
--from-literal=port=5432 \
--from-literal=username=mazevault_admin \
--from-literal=password='<db-password>' \
--from-literal=database=mazevault
# Redis credentials
kubectl create secret generic mazevault-redis-credentials \
--namespace mazevault \
--from-literal=host=redis-mazevault-prod.redis.cache.windows.net \
--from-literal=port=6380 \
--from-literal=password='<redis-password>'
# License key
kubectl create secret generic mazevault-license \
--namespace mazevault \
--from-literal=key='<your-license-key>'
Instalace pomocí Helm¶
helm install mazevault mazevault/mazevault \
--namespace mazevault \
--values values-production.yaml \
--wait \
--timeout 10m
Kompletní referenci values.yaml naleznete v sekci Helm Charts.
5. Konfigurace Ingress¶
Nginx Ingress Controller¶
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz
TLS certifikát¶
# Using cert-manager with Let's Encrypt
kubectl apply -f - <<EOF
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@example.com
privateKeySecretRef:
name: letsencrypt-prod-key
solvers:
- http01:
ingress:
class: nginx
EOF
6. Ověření po nasazení¶
# Check all pods are running
kubectl get pods -n mazevault
# Verify health endpoints
kubectl exec -n mazevault deploy/mazevault-backend -- \
wget -qO- http://localhost:8080/api/v1/health
# Check ingress
kubectl get ingress -n mazevault
# View logs
kubectl logs -n mazevault deploy/mazevault-backend --tail=50
Očekávaná odpověď health endpointu¶
{
"status": "healthy",
"components": {
"database": "healthy",
"redis": "healthy",
"ocsp": "healthy"
}
}
7. Integrace s Azure Monitor¶
MazeVault zpřístupňuje metriky Prometheus na endpointu /metrics každé komponenty. Nakonfigurujte Azure Monitor pro sběr těchto metrik:
# Azure Monitor ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: ama-metrics-prometheus-config
namespace: kube-system
data:
prometheus-config: |
scrape_configs:
- job_name: mazevault-backend
kubernetes_sd_configs:
- role: pod
namespaces:
names: [mazevault]
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
regex: mazevault-backend
action: keep
Související¶
- Systémové požadavky — Požadavky na hardware a software
- Helm Charts — Kompletní reference Helm values
- Konfigurace TLS — Nastavení certifikátů
- Kontroly stavu — Ověření po nasazení