Secrets verschlüsseln und DNS konfigurieren
Bevor du beginnst
config.yaml und prod.vault.yaml sollten bereits erzeugt und überprüft
sein, wie in Jumpbox vorbereiten und Konfiguration erzeugen
beschrieben.
Die Secrets verschlüsseln und ablegen
Erzeuge eine age-Identität auf der Jumpbox und mache sie nur für Root lesbar:
age-keygen -o /etc/codesphere/secrets/age_key.txt
chmod 0600 /etc/codesphere/secrets/age_key.txt
Kopiere die erzeugten Dateien auf die Jumpbox und verschlüssele den Vault dort:
install -m 0600 config.yaml /etc/codesphere/config.yaml
install -m 0600 prod.vault.yaml /etc/codesphere/secrets/prod.vault.yaml
sops --encrypt --in-place \
--age "$(age-keygen -y /etc/codesphere/secrets/age_key.txt)" \
/etc/codesphere/secrets/prod.vault.yaml
Sichere config.yaml, den verschlüsselten Vault und die age-Identität in
einem genehmigten Secret-Store. Die age-Identität wird benötigt, um die
Installation wiederherzustellen oder zu aktualisieren. Committe den
unverschlüsselten Vault oder die age-Identität niemals in die
Versionsverwaltung.
Einen verschlüsselten Vault erneut bearbeiten
Um prod.vault.yaml später zu bearbeiten, setze SOPS_AGE_KEY_FILE auf
deine age-Identität und öffne die Datei direkt mit sops — sie wird
entschlüsselt, dein Editor geöffnet und beim Speichern erneut verschlüsselt:
export SOPS_AGE_KEY_FILE=/etc/codesphere/secrets/age_key.txt
sops /etc/codesphere/secrets/prod.vault.yaml
warnung
Wenn du prod.vault.yaml ändern musst, nachdem der Installer bereits einmal
gelaufen ist, wende die Änderung direkt auf die Datei auf der Jumpbox an. Der
Installer fügt dem Vault zur Laufzeit eigene generierte Secrets hinzu,
weshalb das vollständige Ersetzen der Datei durch eine ältere lokale Kopie
diese verwerfen würde.
DNS konfigurieren
Lege diese Einträge an, sobald die drei stabilen Adressen zugewiesen sind:
| Eintrag | Kubernetes-Service | Ziel |
|---|---|---|
<base-domain> | gateway-controller | Platform-Gateway-IP |
<dc-id>.<base-domain> | gateway-controller | Platform-Gateway-IP |
*.<dc-id>.<base-domain> | public-gateway-controller | Workspace-Gateway-IP |
<dc-id>.ssh.<base-domain> | ssh-workspace-proxy | Workspace-SSH-Proxy-IP |
Verwende während der Ersteinrichtung eine kurze TTL wie 300 Sekunden. Je nach DNS-Anbieter und Netzwerkdesign können die Einträge A/AAAA-, Alias- oder Lastverteiler-Einträge sein. Stelle sicher, dass der Zertifikats-Solver DNS aktualisieren kann, wenn DNS-01 verwendet wird, oder dass TCP 80 das Platform-Gateway erreicht, wenn HTTP-01 verwendet wird. Siehe Cluster-Ingress-CA-Optionen für die Konfiguration des Zertifikats-Issuers.
Manche Cloud-Controller- und Lastverteilungs-Integrationen weisen externe IP-Adressen erst zu, nachdem Kubernetes und die Provider-Integration laufen. Falls die drei Adressen noch nicht bekannt sind, verschiebe das Anlegen und Verifizieren dieser Einträge auf Die Infrastrukturintegration abschließen und kehre dann mit den zugewiesenen Adressen zu dieser Tabelle zurück. Verifiziere andernfalls jeden Eintrag von außerhalb des privaten Netzwerks, bevor du fortfährst.
Was du jetzt haben solltest
config.yamlund die verschlüsselteprod.vault.yamlauf der Jumpbox abgelegt, mit der separat gesicherten age-Identität.- DNS-Einträge angelegt (oder ausdrücklich zurückgestellt) für Platform-Gateway, Workspace-Gateway und Workspace-SSH-Proxy.
Weiter geht's
Weiter geht es mit Den Installer ausführen.