Zum Hauptinhalt springen

Installation

Dieser Leitfaden führt Sie durch eine produktive HA-Installation. Er setzt voraus, dass Sie die Voraussetzungen abgeschlossen haben.

Begleitete Bereitstellung

On-Premise-Installationen werden gemeinsam mit dem DuoKey-Engineering durchgeführt. Die untenstehenden Befehle veranschaulichen den Referenzablauf; Ihr Auslieferungspaket enthält die exakten Manifeste und Helm-Werte für Ihre Umgebung.

Installation auf einen Blick​


Phase 1 — Cluster vorbereiten​

Erstellen Sie die Namespaces (Projekte) und wenden Sie eine Baseline-Sicherheit an:

# Application + platform namespaces
oc new-project duokey
oc new-project duokey-observability

# Label for pod anti-affinity / zone spreading is applied via the
# application manifests in later phases.

Bestätigen Sie, dass Speicher und Ingress bereit sind:

oc get storageclass
oc get ingresscontroller -n openshift-ingress-operator

Phase 2 — OpenBao bereitstellen (externe VM-Ebene)​

Initialisieren Sie auf den dedizierten OpenBao-VMs einen HA-Cluster mit integriertem Raft-Speicher, entsiegeln Sie ihn dann und aktivieren Sie die Kubernetes-Auth-Method:

# On each OpenBao node (illustrative)
bao operator init # capture unseal keys + root token securely
bao operator unseal # repeat on each node to form the Raft quorum

# Enable Kubernetes auth so OpenShift pods can authenticate
bao auth enable kubernetes
bao write auth/kubernetes/config \
kubernetes_host="https://<openshift-api>:6443"
Die Entsiegelungsschlüssel schützen

Bewahren Sie die Entsiegelungsschlüssel und das Root-Token an einem sicheren Offline-Ort auf (oder verwenden Sie Auto-Unseal, gestützt durch Ihr HSM). Ein Verlust dieser verhindert die Wiederherstellung der Secrets-Engine.

Phase 3 — Secrets verdrahten (External Secrets Operator)​

Installieren Sie ESO aus dem OperatorHub und verbinden Sie es dann über einen SecretStore und eine ServiceAccount-basierte Rolle mit OpenBao:

apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: openbao
namespace: duokey
spec:
provider:
vault:
server: "https://openbao.duokey.example.local:8200"
path: "secret"
version: "v2"
auth:
kubernetes:
mountPath: "kubernetes"
role: "duokey"
serviceAccountRef:
name: "duokey"

Secrets werden dann bei Bedarf über ExternalSecret-Ressourcen (die mit den Anwendungsmanifesten ausgeliefert werden) in tmpfs-gestützte Kubernetes-Secrets materialisiert.

Phase 4 — Datenebene bereitstellen​

Stellen Sie PostgreSQL (HA) und Redis bereit. Unter Verwendung eines PostgreSQL-Operators im Cluster:

oc apply -f postgres-cluster.yaml # CloudNativePG / Patroni Cluster CR
oc apply -f redis-cluster.yaml # sharded Redis StatefulSet

Oder richten Sie die Anwendung über die in OpenBao gespeicherte Verbindungszeichenfolge auf den externen PostgreSQL-VM-Cluster aus (für die Referenzarchitektur empfohlen).

Phase 5 — GitOps bootstrappen (ArgoCD)​

Installieren Sie OpenShift GitOps und registrieren Sie dann das DuoKey-Anwendungs-Repository, damit ArgoCD alle nachfolgenden Änderungen abgleicht:

oc apply -f argocd-application-duokey.yaml
argocd app sync duokey # initial sync

Ab diesem Punkt fließen alle Änderungen durch Git — ArgoCD erkennt Abweichungen (Drift) und hält den Cluster mit dem deklarierten Zustand in Übereinstimmung.

Phase 6 — DuoKey-Anwendung bereitstellen​

Die Anwendungsmanifeste stellen das Cockpit-Frontend und das Rust-API-Backend mit Pod-Anti-Affinity und der Ingress-Route bereit:

# Typically reconciled by ArgoCD; shown here for clarity
oc apply -k manifests/duokey/overlays/on-prem
oc get pods -n duokey -o wide # confirm spread across nodes/zones

Phase 7 — Observability bereitstellen​

oc apply -f victoria-metrics-stack.yaml -n duokey-observability
oc apply -f victoria-logs.yaml -n duokey-observability
oc apply -f grafana.yaml -n duokey-observability

Importieren Sie die DuoKey-Grafana-Dashboards (in Ihrem Auslieferungspaket enthalten).

Phase 8 — Verifizieren & erste Anmeldung​

Arbeiten Sie die Verifizierungs-Prüfliste durch:

# All pods Running and Ready
oc get pods -n duokey

# Ingress route resolves and serves TLS
oc get route -n duokey
curl -I https://cockpit.duokey.example.local

# Secrets are being injected (no plaintext on disk)
oc get externalsecret -n duokey

Integritäts-Prüfliste

  • Alle Anwendungs-Pods sind Running und über ≥ 3 Knoten/Zonen verteilt
  • OpenBao ist entsiegelt und vom Cluster aus erreichbar
  • PostgreSQL-Primary + Replikate sind gesund und replizieren
  • ArgoCD zeigt die Anwendung als Synced / Healthy an
  • Grafana-Dashboards empfangen Metriken und Logs
  • Die Cockpit-UI lädt über HTTPS und Sie können sich authentifizieren

Wenn alle Prüfungen bestanden sind, übergeben Sie die Umgebung an Ihr Betriebsteam und fahren Sie fort mit Monitoring und Backup & Disaster Recovery.

Tipp

Bewahren Sie Ihre anfänglichen OpenBao-Entsiegelungsschlüssel, die ArgoCD-Admin- Anmeldedaten und das erste Admin-Konto im Privileged-Access-Vault Ihrer Organisation auf.