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 Ihr primärer Config Controller-Cluster ausfällt und ersetzt werden muss oder wenn Sie eine unveränderliche Clusterkonfiguration ändern müssen.
Auf dieser Seite werden die folgenden Begriffe 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, sollten Sie diese Schritte in einer Testumgebung ausführen.
- Wenn Sie mehrere Config Controller-Cluster migrieren müssen, migrieren Sie jeden Cluster 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
So migrieren Sie alle Ressourcen:
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 aus der 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 diese Ressourcen möglicherweise einzeln analysiert werden. 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.
Verwenden Sie den Befehl
nomos status
, um sicherzustellen, dass der Zielcluster alle Ressourcen aus der „Source of Truth“ synchronisiert hat.Entfernen Sie nach der Synchronisierung der Ressourcen das RootSync- oder RepoSync-Objekt aus dem Quellcluster.
Löschen Sie den Config Controller-Quellcluster, nachdem jede Quelle of Truth migriert wurde.
Einige Ressourcen migrieren
So migrieren Sie einige Ressourcen:
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. Das Löschen funktioniert nur, wenn diese Ressourcen auch aus der verlässlichen Quelle 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 verwalten.
Einzelne Ressourcen migrieren
Wenn ein Config Controller-Cluster nicht gelöscht werden kann (z. B. wenn nur ein Teil der Ressourcen in einen anderen Cluster migriert wird), 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 das resourceID
nicht für die Ressourcengewinnung durch eine andere Config Connector-Instanz angegeben werden. Es gibt jedoch Ressourcen mit einer dienstgenerierten Ressourcen-ID, für die zusätzliche Schritte erforderlich sind. 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 Ressource sollten die resourceID
s der Quelle der Wahrheit hinzugefügt werden, bevor sie versuchen, Ressourcen vom Zielcluster zu erhalten.
Ressourcen mit 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. Wenn Config Connector im Quellcluster fehlerfrei ist und ausgeführt wird, kann der Zielcluster die Freigabe nicht erwerben. 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 übernehmen und 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.