Wie man den docker swarm update-Befehl verwendet, um Swarm-Einstellungen zu ändern

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie die Einstellungen eines Docker Swarms verwalten und ändern können. Sie beginnen damit, einen Docker Swarm auf Ihrem Computer zu initialisieren und ihn so zum Swarm-Manager zu machen.

Nach der Initialisierung werden Sie untersuchen, wie Sie die aktuelle Konfiguration Ihres Swarms mit dem Befehl docker swarm inspect anzeigen können. Dadurch können Sie die Standardeinstellungen einsehen. Anschließend führt das Lab Sie durch das Aktualisieren wichtiger Swarm-Parameter, insbesondere der Gültigkeitsdauer der Knotenzertifikate und der Aufbewahrungsgrenze für die Aufgabenhistorie, mithilfe des Befehls docker swarm update. Abschließend überprüfen Sie, ob Ihre Änderungen erfolgreich angewendet wurden, indem Sie die Swarm-Einstellungen erneut untersuchen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/inspect -.-> lab-555246{{"Wie man den docker swarm update-Befehl verwendet, um Swarm-Einstellungen zu ändern"}} docker/system -.-> lab-555246{{"Wie man den docker swarm update-Befehl verwendet, um Swarm-Einstellungen zu ändern"}} end

Initialisieren eines Docker Swarms

In diesem Schritt lernen Sie, wie Sie einen Docker Swarm initialisieren können. Ein Docker Swarm ist eine Gruppe von Maschinen, auf denen Docker läuft und die zu einem Cluster zusammengefügt werden. Nachdem Sie einem Swarm beigetreten sind, können Sie weiterhin die Docker-Befehle ausführen, mit denen Sie vertraut sind, und der Swarm verteilt sie im Cluster.

Um einen Swarm zu initialisieren, verwenden Sie den Befehl docker swarm init. Dieser Befehl macht die aktuelle Maschine zu einem Swarm-Manager.

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um den Docker Swarm zu initialisieren:

docker swarm init

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die anzeigt, dass der Swarm initialisiert wurde und einen Befehl bereitstellt, um andere Knoten diesem Swarm beizutreten:

Swarm initialized: current node (xxxxxxxxxxxx) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 192.168.99.100:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Dieser Befehl macht die aktuelle Maschine zu einem Swarm-Manager. In der Praxis würden Sie normalerweise mehrere Manager für Hochverfügbarkeit haben, aber für dieses Lab reicht ein Manager aus.

Anzeigen der aktuellen Swarm-Einstellungen

In diesem Schritt lernen Sie, wie Sie die aktuellen Einstellungen Ihres Docker Swarms anzeigen können. Dies ist nützlich, um die aktuelle Konfiguration zu verstehen und um Änderungen nach dem Aktualisieren der Einstellungen zu überprüfen.

Um die Swarm-Einstellungen anzuzeigen, verwenden Sie den Befehl docker swarm inspect. Dieser Befehl liefert detaillierte Informationen über den Swarm, einschließlich seiner ID, des Erstellungsdatums und verschiedener Konfigurationseinstellungen.

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um den Docker Swarm zu untersuchen:

docker swarm inspect

Die Ausgabe wird ein JSON-Objekt sein, das die Swarm-Konfiguration enthält. Suchen Sie nach dem Abschnitt Spec, der die konfigurierbaren Einstellungen enthält. Achten Sie auf die Felder Orchestration und Dispatcher, da diese Einstellungen in Bezug auf die Aufgabenhistorie und die Knotenzertifikate enthalten.

Beispielsweise könnten Sie eine Ausgabe ähnlich der folgenden sehen (die genauen Werte variieren):

[
  {
    "ID": "xxxxxxxxxxxx",
    "Version": {
      "Index": 10
    },
    "CreatedAt": "2023-10-27T10:00:00.000000000Z",
    "UpdatedAt": "2023-10-27T10:00:00.000000000Z",
    "Spec": {
      "Orchestration": {
        "TaskHistoryRetentionLimit": 5
      },
      "Raft": {
        "SnapshotInterval": 10000,
        "KeepOldSnapshots": 0,
        "LogEntriesForSlowFollowers": 500,
        "ElectionTick": 3,
        "HeartbeatTick": 1
      },
      "Dispatcher": {
        "HeartbeatPeriod": 5000000000
      },
      "CAConfig": {
        "NodeCertExpiry": 7776000000000000,
        "ExternalCAs": null,
        "SigningCACert": "...",
        "SigningCAKey": "...",
        "ForceRotate": 0
      },
      "TaskDefaults": {
        "LogDriver": null
      }
    },
    "TLSInfo": {
      "TrustRoot": "...",
      "CertIssuerSubject": "CN=swarm-ca",
      "CertIssuerPublicKey": "..."
    },
    "RootRotationInProgress": false
  }
]

Im Abschnitt Spec können Sie die TaskHistoryRetentionLimit unter Orchestration und die NodeCertExpiry unter CAConfig finden. Dies sind die Einstellungen, die wir in den nächsten Schritten ändern werden.

Aktualisieren der Gültigkeitsdauer der Knotenzertifikate

In diesem Schritt lernen Sie, wie Sie die Gültigkeitsdauer der Knotenzertifikate in Ihrem Docker Swarm aktualisieren können. Knotenzertifikate werden für die sichere Kommunikation zwischen Swarm-Knoten verwendet. Standardmäßig laufen diese Zertifikate nach 3 Monaten ab. Sie möchten möglicherweise diese Dauer basierend auf Ihren Sicherheitsrichtlinien und betrieblichen Anforderungen anpassen.

Um die Gültigkeitsdauer der Knotenzertifikate zu aktualisieren, verwenden Sie den Befehl docker swarm update mit der Option --cert-expiry. Der Wert für --cert-expiry ist eine Zeitdauer in String-Form, beispielsweise 24h für 24 Stunden, 720h für 30 Tage (720 Stunden) oder 0, um die Ablaufzeit zu deaktivieren (nicht empfohlen für die Produktion).

Lassen Sie uns die Gültigkeitsdauer der Knotenzertifikate auf 30 Tage (720 Stunden) aktualisieren. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:

docker swarm update --cert-expiry 720h

Sie sollten eine Ausgabe sehen, die die Aktualisierung bestätigt:

Swarm updated.

Dieser Befehl aktualisiert die Swarm-Konfiguration, um die neue Gültigkeitsdauer der Zertifikate festzulegen. Neue Knotenzertifikate, die nach dieser Aktualisierung ausgestellt werden, haben die neue Gültigkeitsdauer. Bestehende Zertifikate laufen weiterhin basierend auf ihrem ursprünglichen Ausstellungstermin und der vorherigen Ablaufzeit ein, es sei denn, Sie erzwingen eine Zertifikatsrotation.

Aktualisieren der Aufbewahrungsgrenze für die Aufgabenhistorie

In diesem Schritt lernen Sie, wie Sie die Aufbewahrungsgrenze für die Aufgabenhistorie in Ihrem Docker Swarm aktualisieren können. Die Aufbewahrungsgrenze für die Aufgabenhistorie bestimmt, wie viele abgeschlossene oder fehlgeschlagene Aufgaben in der Swarm-Historie aufbewahrt werden. Das Aufbewahren einer Aufgabenhistorie kann für das Debugging und die Überwachung hilfreich sein, aber die Aufbewahrung zu vieler Aufgaben kann übermäßige Ressourcen verbrauchen.

Um die Aufbewahrungsgrenze für die Aufgabenhistorie zu aktualisieren, verwenden Sie den Befehl docker swarm update mit der Option --task-history-limit. Der Wert für --task-history-limit ist eine Ganzzahl, die die Anzahl der aufzubewahrenden Aufgaben darstellt.

Lassen Sie uns die Aufbewahrungsgrenze für die Aufgabenhistorie auf 10 aktualisieren. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:

docker swarm update --task-history-limit 10

Sie sollten eine Ausgabe sehen, die die Aktualisierung bestätigt:

Swarm updated.

Dieser Befehl aktualisiert die Swarm-Konfiguration, um die Historie der letzten 10 abgeschlossenen oder fehlgeschlagenen Aufgaben aufzubewahren.

Überprüfen der aktualisierten Swarm-Einstellungen

In diesem letzten Schritt überprüfen Sie, ob die Swarm-Einstellungen, die Sie in den vorherigen Schritten aktualisiert haben, erfolgreich angewendet wurden. Sie verwenden erneut den Befehl docker swarm inspect und überprüfen die Werte für NodeCertExpiry und TaskHistoryRetentionLimit.

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um den Docker Swarm zu untersuchen:

docker swarm inspect

Untersuchen Sie die ausgegebene JSON-Daten. Suchen Sie den Abschnitt Spec und überprüfen Sie dann die Werte für NodeCertExpiry unter CAConfig und TaskHistoryRetentionLimit unter Orchestration.

Sie sollten sehen, dass NodeCertExpiry jetzt auf 2592000000000000 festgelegt ist (was 30 Tage in Nanosekunden entspricht) und TaskHistoryRetentionLimit auf 10 festgelegt ist.

Beispielsweise sollten die relevanten Teile der Ausgabe wie folgt aussehen:

[
    {
        ...
        "Spec": {
            "Orchestration": {
                "TaskHistoryRetentionLimit": 10
            },
            ...
            "CAConfig": {
                "NodeCertExpiry": 2592000000000000,
                ...
            },
            ...
        },
        ...
    }
]

Durch die Untersuchung der Swarm-Konfiguration können Sie bestätigen, dass Ihre Aktualisierungen erfolgreich waren.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie einen Docker Swarm mit dem Befehl docker swarm init initialisieren können, um die aktuelle Maschine in einen Swarm-Manager zu verwandeln. Anschließend haben Sie untersucht, wie Sie die aktuellen Swarm-Einstellungen mithilfe des Befehls docker swarm inspect anzeigen können, der eine detaillierte JSON-Ausgabe der Swarm-Konfiguration liefert, einschließlich des Abschnitts Spec mit konfigurierbaren Einstellungen.

Nach der Initialisierung und Untersuchung haben Sie das Aktualisieren bestimmter Swarm-Einstellungen geübt. Sie haben gelernt, wie Sie die Gültigkeitsdauer des Knotenzertifikats und die Aufbewahrungsgrenze für die Aufgabenhistorie mit dem Befehl docker swarm update ändern können. Schließlich haben Sie überprüft, ob diese Änderungen erfolgreich angewendet wurden, indem Sie erneut den Befehl docker swarm inspect verwendet und die aktualisierte Konfiguration in der Ausgabe untersucht haben.