Auf dieser Seite werden verschiedene Möglichkeiten zum Überwachen von RootSync
- und RepoSync
-Objekten beschrieben.
Sie können beispielsweise prüfen, ob Ihr letzter Commit in einer Source of Truth auf einen Cluster angewendet und erfolgreich abgeglichen wurde.
Synchronisierte Commits ansehen
Sie können prüfen, welche Commits mit dem Cluster synchronisiert wurden. Dazu prüfen Sie das Feld .status.sync
im Objekt RootSync
oder RepoSync
.
Führen Sie den folgenden Befehl aus, um synchronisierte Commits für ein
RootSync
-Objekt aufzurufen:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
Ersetzen Sie
ROOT_SYNC_NAME
durch den Namen desRootSync
-Objekts.Führen Sie den folgenden Befehl aus, um synchronisierte Commits für ein
RepoSync
-Objekt aufzurufen:kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
Ersetzen Sie Folgendes:
REPO_SYNC_NAME
: der Name desRepoSync
-Objekts.REPO_SYNC_NAMESPACE
: der Namespace, in dem Sie das Namespace-Repository erstellt haben
Die Ausgabe für diese Befehle zeigt den Wert des Quell-Commits und des synchronisierten Commits. Wenn Sie beispielsweise den Befehl für die RepoSync ausgeführt haben, sieht die Ausgabe in etwa so aus:
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
Der Wert in der Spalte RENDERINGCOMMIT
ist der Commit, der von hydration-controller
verarbeitet wird. Wenn kein Rendering erforderlich ist, entspricht der Wert der Spalte SOURCECOMMIT
. Der Wert in der Spalte SOURCECOMMIT
ist der Commit aus der „Source of Truth“, der mit dem Cluster synchronisiert werden soll. Der Wert in der Spalte SYNCCOMMIT
ist der Commit, der aktuell im Cluster bereitgestellt ist. Wenn die beiden Werte in den Spalten SOURCECOMMIT
und SYNCCOMMIT
identisch sind, wurde das erwartete Commit im Cluster bereitgestellt.
Abgleich der Ressourcen im Commit bestätigen
Da ResourceGroups den Abgleichsstatus der verwalteten Ressourcen erfassen, die in der „Source of Truth“ deklariert sind, können Sie damit feststellen, ob Ressourcen im Commit abgeglichen wurden.
Das ResourceGroup-Objekt hat denselben Namespace und denselben Namen wie das RootSync
- oder RepoSync
-Objekt. Beispiel: Für das RootSync
-Objekt mit dem Namen root-sync
im Namespace config-management-system
ist das entsprechende ResourceGroup-Objekt auch root-sync
im Namespace config-management-system
So rufen Sie das ResourceGroup-Objekt für ein
RootSync
-Objekt ab:kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
So rufen Sie das ResourceGroup-Objekt für ein
RepoSync
-Objekt ab:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
Ersetzen Sie Folgendes:
ROOT_SYNC_NAME
: der Name des ResourceGroup-Objekts, das Sie prüfen möchten.REPO_SYNC_NAME
: der Name des ResourceGroup-Objekts, das Sie prüfen möchten.REPO_SYNC_NAMESPACE
: der Name des ResourceGroup-Objekts, das Sie prüfen möchten.
Wenn Sie prüfen möchten, ob die Ressourcen im Commit abgeglichen wurden, suchen Sie in der Ausgabe nach Folgendem:
.status.observedGeneration
entspricht dem Wert des Felds.metadata.generation
im ResourceGroup-Objekt.- Die Bedingungen
Stalled
undReconciling
haben beide fürstatus
den Wert"False"
. - Jedes Element im Feld
.status.resourceStatuses
hat den StatusCurrent
.
Fehler ansehen
RootSync
- und RepoSync
-Objekte verwenden das Feld status
, um Fehler zu verfolgen, die beim Synchronisieren der Konfigurationen aus der „Source of Truth“ mit einem Cluster auftreten.
Führen Sie den folgenden Befehl aus, um den Status eines
RootSync
-Objekts aufzurufen:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
Ersetzen Sie
ROOT_SYNC_NAME
durch den Namen desRootSync
-Objekts.Führen Sie den folgenden Befehl aus, um sich den Status eines
RepoSync
-Objekts aufzurufen:kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
Ersetzen Sie Folgendes:
REPO_SYNC_NAME
: der Name desRepoSync
-Objekts.NAMESPACE
: der Namespace, in dem Sie das Namespace-Repository erstellt haben.
Weitere Informationen zu den untergeordneten Feldern unter dem Feld status
finden Sie unter Status der Objekte.
Objektdetails ansehen
Mit dem Befehl kubectl describe
können Sie Details zu den Objekten RootSync
und RepoSync
aufrufen und weitere Informationen zu potenziellen Fehlern ermitteln.
Die Ausgabe dieses Befehls enthält Ereignisse, die besonders bei der Behebung von Problemen wie Container mit Speichereinschränkungen (OOMKilled), Planungsfehlern oder Image-Pull-Fehlern hilfreich sein können.
Für ein besser lesbares Format konvertieren Sie die Ausgabe in YAML. Hängen Sie dazu -o yaml
an die folgenden Befehle an. Dieses Format ist besonders hilfreich, wenn Sie bestimmte Parameter, Annotationen oder Ressourcenspezifikationen untersuchen müssen.
Führen Sie den folgenden Befehl aus, um Details zu einem
RootSync
-Objekt aufzurufen:kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
Ersetzen Sie
ROOT_SYNC_NAME
durch den Namen desRootSync
-Objekts.Führen Sie den folgenden Befehl aus, um Details zu einem
RepoSync
-Objekt aufzurufen:kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
Ersetzen Sie Folgendes:
REPO_SYNC_NAME
: der Name desRepoSync
-Objekts.NAMESPACE
: der Namespace, in dem Sie das Namespace-Repository erstellt haben.
Prüfen, ob eine Ressource bereit ist
Wenn Sie wissen möchten, ob die mit dem Cluster synchronisierten Ressourcen bereit sind, sehen Sie sich den Abgleichsstatus an. Beispielsweise kann durch das Anzeigen des Abgleichsstatus angezeigt werden, ob ein synchronisiertes Deployment zur Verarbeitung von Traffic bereit ist.
Für eine „Source of Truth“, die mit dem Cluster synchronisiert wird, wird der Abgleichsstatus aller Ressourcen in einer Ressource namens ResourceGroup zusammengefasst. Für jedes RootSync
- oder RepoSync
-Objekt wird eine ResourceGroup generiert, um die Ressourcen zu erfassen, die auf den Cluster angewendet werden, und ihren Status zusammenzufassen.
Führen Sie den folgenden Befehl aus, um den Abgleichsstatus für das
RootSync
-Objekt anzuzeigen:kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
Ersetzen Sie
ROOT_SYNC_NAME
durch den Namen desRootSync
-Objekts.Führen Sie den folgenden Befehl aus, um den Abgleichsstatus für das
RepoSync
-Objekt anzuzeigen:kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
Ersetzen Sie Folgendes:
REPO_SYNC_NAME
: der Name desRepoSync
-Objekts.NAMESPACE
: der Namespace, in dem Sie das Namespace-Repository erstellt haben.
In der Ausgabe werden alle Ressourcenstatus der Ressourcengruppen angezeigt. Die folgende Ausgabe zeigt beispielsweise, dass ein Deployment mit dem Namen nginx-deployment
bereit ist:
resourceStatuses:
- group: apps
kind: Deployment
name: nginx-deployment
namespace: default
status: Current
Logs ansehen
Für jedes von Ihnen erstellte RootSync
- und RepoSync
-Objekt erstellt Config Sync eine Abgleichsbereitstellung, um eine Synchronisierung durchzuführen. In diesem Abschnitt wird erläutert, wie Sie die Logs für diesen Abgleich aufrufen. Das Aufrufen der Logs kann beim Debuggen eines Problems hilfreich sein. Sie enthalten damit zusätzliche Informationen zum Fortschritt, zu Warnungen und zu Fehlern, die über den Objektstatus RootSync
und RepoSync
hinausgehen.
Führen Sie den folgenden Befehl aus, um die Logs für den
RootSync
- oderRepoSync
-Abgleich aufzurufen:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
Ersetzen Sie Folgendes:
RECONCILER_NAME
: der Abgleichsname des ObjektsRootSync
oderRepoSync
.Für
RootSync
lautet der Abgleichsnameroot-reconciler-ROOT_SYNC_NAME
oderroot-reconciler
, wenn der Name vonRootSync
root-sync
ist.Für
RepoSync
lautet der Abgleichsnamens-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
oderns-reconciler-NAMESPACE
, wenn der Name vonRepoSync
repo-sync
ist, wobeiNAMESPACE
der Namespace ist, in dem Sie dasRepoSync
-Objekt erstellt haben.
CONTAINER_NAME
: Der Containername muss einer der folgenden Werte sein:reconciler
,git-sync
,hydration-controller
,oci-sync
oderhelm-sync
. Weitere Informationen zu diesen Containern finden Sie unter Abgleich von Containern.
Logebene für RootSync- oder RepoSync-Abgleich konfigurieren
Konfigurieren Sie die Log-Ausführlichkeit, um weitere Informationen in die Containerlogs aufzunehmen. Standardmäßig haben die meisten Container für die Log-Ausführlichkeit den Standardwert 0
. Ausnahmen davon sind die Container git-sync
und otel-agent
, die den Standardwert 5
haben.
Beachten Sie beim Ändern der Log-Ausführlichkeit, dass eine Erhöhung der Log-Ausführlichkeit zu höheren Logging-Kosten führt, da ein größeres Datenvolumen aufgezeichnet wird.
Verwenden Sie das Feld .spec.override.logLevels
, wie im folgenden Beispiel gezeigt, um die Log-Ausführlichkeit zu ändern:
apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
name: root-sync
namespace: config-management-system
spec:
override:
logLevels:
- containerName: "reconciler"
logLevel: 0
- containerName: "git-sync"
logLevel: 10
Der Wert im Feld containerName
muss einer der folgenden sein: reconciler
, git-sync
, hydration-controller
, oci-sync
oder helm-sync
.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Log-Ausführlichkeit konfiguriert ist:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
Die Log-Ausführlichkeit finden Sie als einen Wert von args
in spec.template.spec.containers[]
und sieht so aus: -v=0
. Dabei ist 0 die aktuelle Log-Ausführlichkeit. In diesem Beispiel würde ein Log-Ausführlichkeitswert von 0 nur kritische Ereignisse protokollieren.