Auf dieser Seite erfahren Sie, wie Sie Config Connector-Ressourcen von einem Config Controller-Cluster zu einem anderen migrieren. Möglicherweise müssen Sie eine Ressource migrieren, wenn der primäre Config Controller-Cluster ausfällt und ersetzt werden muss, oder Sie müssen eine unveränderliche Clusterkonfiguration ändern.
Auf dieser Seite wird die folgende Terminologie verwendet:
- Quellcluster: Der Cluster, der die zu migrierenden Config Connector-Ressourcen enthält.
- Zielcluster: Der Cluster, zu dem Sie Ressourcen migrieren.
Empfehlungen
- Bevor Sie Änderungen in der Produktion vornehmen, führen Sie diese Schritte in einer Testumgebung aus.
- Wenn Sie mehrere Config Controller-Cluster migrieren müssen, migrieren Sie jeden einzeln, beginnend mit dem am wenigsten kritischen Cluster.
- Wenn der Config Sync-Cluster aus mehreren Quellen of Truth synchronisiert wird, migrieren Sie alle Ressourcen aus jeder Quelle gleichzeitig.
Migrationsschritte für verschiedene Szenarien
Alle Ressourcen migrieren
Führen Sie die folgenden Schritte aus, um alle Ressourcen zu migrieren:
Erstellen Sie den Zielcluster.
Beenden Sie das Push-Übertragen von Änderungen an die "Source of Truth", wenn der Quellcluster für die Synchronisierung aus dieser konfiguriert ist. Config Sync sollte jedoch weiterhin über die "Source of Truth" synchronisiert werden. Es sollten nur Änderungen angehalten werden, aus denen der Quellcluster synchronisiert wird.
Prüfen Sie, ob alle aktuellen Änderungen an der "Source of Truth" im Cluster synchronisiert wurden und alle Ressourcen im Quellcluster aktuell sind.
Wenn für einige Ressourcen Fehler auftreten, müssen Sie die Ressourcen möglicherweise einzeln analysieren. Wenn eine Ressource aufgrund eines Fehlers noch nicht erstellt wurde, wird sie später mithilfe des Config Connectors erstellt, der im Zielcluster ausgeführt wird. Diese Fehler können normalerweise ignoriert werden. Bei den meisten Fehlern sollten die Ursachen jedoch gefunden und behoben werden, bevor die Migration versucht wird.
Richten Sie Config Sync im Zielcluster so ein, dass Daten aus derselben "Source of Truth" gelesen werden, aus der der Quellcluster konfiguriert ist. Führen Sie diese Schritte für jede Synchronisierung wenn mehrere Synchronisierungen zur Synchronisierung aus mehr als einem Source of Truth eingerichtet sind.
Prüfen Sie mit dem Befehl
nomos status
, ob der Zielcluster alle Ressourcen aus der "Source of Truth" synchronisiert hat.Entfernen Sie nach der Synchronisierung der Ressourcen RootSync oder RepoSync aus dem Quellcluster.
Löschen Sie den Config Controller-Quellcluster, nachdem jede "Source of Truth" migriert ist.
Einige Ressourcen migrieren
Führen Sie die folgenden Schritte aus, um einige Ressourcen zu migrieren:
Führen Sie die Schritte 1 bis 6 aus dem vorherigen Abschnitt Alle Ressourcen migrieren aus.
Annotieren Sie die Ressourcen, die zum Zielcluster migriert werden sollen, mit der Annotation
cnrm.cloud.google.com/deletion-policy: abandon
. Diese Annotation verhindert, dass Config Connector die zugrunde liegenden Ressourcen löscht, wenn die Config Connector-Ressource aus dem Config Controller-Cluster gelöscht wird.Löschen Sie die Ressourcen, die als verworfen markiert wurden, aus dem Quellcluster. Dieser Löschvorgang funktioniert nur, wenn diese Ressourcen auch aus der "Source of Truth" entfernt wurden, bevor Sie Config Sync fortsetzen.
Verschieben Sie diese Ressourcen in eine andere "Source of Truth" oder in einen anderen Ordner innerhalb derselben "Source of Truth".
Richten Sie den Zielcluster so ein, dass er von dem Ort aus synchronisiert, an den Sie die Ressourcen verschoben haben. Der Zielcluster kann diese Ressourcen jetzt übernehmen und mit der Verwaltung beginnen.
Einzelne Ressourcen migrieren
Wenn ein Config Controller-Cluster nicht gelöscht werden kann (z. B. wenn Sie nur eine Teilmenge von Ressourcen in einen anderen Cluster migrieren), können Sie einzelne Ressourcen löschen. Wenn Sie einzelne Ressourcen löschen möchten, deaktivieren Sie Config Sync und legen Sie dann die Annotation cnrm.cloud.google.com/deletion-policy: abandon
für die einzelnen Ressourcen fest, die Sie löschen möchten.
Ressourcen mit einer vom Dienst generierten resourceID
migrieren
Bei Ressourcen, für die das Feld resourceID
nicht explizit angegeben wurde, muss resourceID
nicht für die Ressourcengewinnung durch eine andere Config Connector-Instanz angegeben werden. Es gibt jedoch Ressourcen mit einer dienstgenerierten Ressourcen-ID, die zusätzliche Schritte erfordern. Obwohl der resourceID
vom Dienst generiert wurde, muss er angegeben werden, um diese Ressourcen von einer anderen Config Connector-Instanz zu erhalten. Für diese Ressourcen sollten die resourceID
s der "Source of Truth" hinzugefügt werden, bevor sie versuchen, Ressourcen vom Zielcluster zu erhalten.
Ressourcen mithilfe der Richtlinie zur Konfliktvermeidung migrieren
Standardmäßig ist die Richtlinie zur Konfliktvermeidung für Ressourcen deaktiviert. Sie können sie für eine Ressource aktivieren, indem Sie die folgende Annotation festlegen:
cnrm.cloud.google.com/management-conflict-prevention-policy: "resource"
Nach dem Festlegen muss Config Connector eine Freigabe für die zugrunde liegende Ressource erwerben, bevor Änderungen daran vorgenommen werden. Dies bedeutet, dass der Zielcluster die Freigabe nicht sofort übernehmen kann, da die Freigabe von Config Connector im Quellcluster gehalten wird. Die Freigabe wird 40 Minuten lang gewährt. Nach 20 Minuten versucht Config Connector jedoch, die Freigabe proaktiv zu erneuern. Daher kann der Zielcluster die Freigabe nicht erwerben, wenn Config Connector im Quellcluster fehlerfrei ist und ausgeführt wird. Der Quellcluster muss seine Freigabe freigeben, bevor der Zielcluster sie erhalten kann. Dies kann entweder durch Löschen des Quellclusters oder durch Löschen der Ressource im Quellcluster erfolgen.
Sobald der Quellcluster die Freigabe freigegeben hat, kann der Zielcluster die Freigabe übernehmen. Der Zielcluster kann die Freigabe nach höchstens 40 Minuten erwerben und kann mit der Verwaltung der Ressourcen beginnen. Bevor die Freigabe vom Zielcluster übernommen wird, sollten Sie keine Änderungen an den Config Connector-Ressourcen vornehmen.
Nächste Schritte
- Fehlerbehebung für Config Controller
- Manueller Failover auf eine zweite Config Controller-Instanz
- Ressourcen mit dem Feld
resourceID
verwalten. - Synchronisierung von Konfigurationen anhalten und fortsetzen.