=====Управляйте узлами в swarm===== В рамках жизненного цикла управления swarm вам может потребоваться просмотреть или обновить узел ==== Список узлов ==== Чтобы просмотреть список узлов в swarm, запускает docker node ls с узла менеджера: zyzenb3c49rz3c46m3ygm9aog * server1 Ready Active Leader 24.0.7 kj9e2wshnvd1hxzrw6igxg6os server2 Ready Active Reachable 24.0.7 ttquuhjt9m7ys186tdb9yi3z9 server3 Ready Active 24.0.7 rkqircgbthhvfppzncd5clhwd server4 Ready Active 24.0.7 15n2ddj3n42va0a6dgaxdlgma server5 Ready Active 24.0.7 Столбец **AVAILABILITY** показывает, может ли планировщик назначать задачи узлу: * **Active** означает, что планировщик может назначать задачи узлу. * **Pause** означает, что планировщик не назначает новые задачи узлу, но существующие задачи продолжают выполняться. * **Drain** означает, что планировщик не назначает новые задачи узлу. Планировщик закрывает все существующие задачи и назначает их выполнение на доступном узле. Столбец **MANAGER STATUS** показывает участие узла в консенсусе Raft: * Отсутствие значения указывает на рабочий узел, который не участвует в управлении swarm. * **Leader** означает, что узел является основным управляющим узлом, который принимает все решения по управлению и оркестровке swarm для swarm. * **Reachable** означает, что узел является управляющим узлом, участвующим в консенсусном кворуме Raft. Если ведущий узел становится недоступным, данный узел может быть выбран в качестве нового лидера. * **Unavailable** означает, что узел является менеджером, который не может общаться с другими менеджерами. Если узел менеджера становится недоступным, вы должны либо присоединить новый узел менеджера к swarm, либо сделать рабочий узел менеджером. ==== инспектировать узел ==== Чтобы просмотреть список узлов в swarm, запускает docker node ls с узла менеджера: Вы можете запускает **docker node inspect ** на узле менеджера, чтобы просмотреть сведения об отдельном узле. Выходные данные по умолчанию имеют формат JSON, но вы можете передать флаг **--pretty**, чтобы распечатывает результаты в удобочитаемом формате. Например: $ docker node inspect server4 --pretty ID: rkqircgbthhvfppzncd5clhwd Hostname: server4 Joined at: 2023-12-10 11:10:27.874289755 +0000 utc Status: State: Ready Availability: Active Address: 10.11.10.4 Platform: Operating System: linux Architecture: x86_64 Resources: CPUs: 1 Memory: 1.925GiB Plugins: Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, local, logentries, splunk, syslog Network: bridge, host, ipvlan, macvlan, null, overlay Volume: local Engine Version: 24.0.7 TLS Info: TrustRoot: -----BEGIN CERTIFICATE----- MIIBazCCARCgAwIBAgIUKlzjoll/2HbrP/ahSRLZo8KeQMcwCgYIKoZIzj0EAwIw EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMjMxMjEwMTA1NTAwWhcNNDMxMjA1MTA1 NTAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH A0IABOmsAQb3KqS1KR+0HTQQkA8zwnHAmCbbtL+c8e8HXwyIzLJMSBEoZRrSPzxQ Piv1oLvG2jfVLJv8V8n6ObyK1+qjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB Af8EBTADAQH/MB0GA1UdDgQWBBSjFVfwMKDyYJELlg14BY454S5jXTAKBggqhkjO PQQDAgNJADBGAiEAzEh7Jteq0ZRLXMRtwkj0zRgCZzYbLxiqhLbqX9KRzB8CIQDD fxZd2+LQkhGO1EAE+foD/1C9eg9wQp0L//wTWq4YWw== -----END CERTIFICATE----- Issuer Subject: MBMxETAPBgNVBAMTCHN3YXJtLWNh Issuer Public Key: MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6awBBvcqpLUpH7QdNBCQDzPCccCYJtu0v5zx7wdfDIjMskxIEShlGtI/PFA+K/Wgu8baN9Usm/xXyfo5vIrX6g== ==== доступность узла ==== Изменение доступности узла ("active", "pause", "drain"): $ docker node update --availability pause server3 ==== Добавляет или удаляет метаданные ==== Метки узлов обеспечивают гибкий метод организации узлов. Вы также можете использовать метки узлов в ограничениях службы. Применяйте ограничения при создании службы, чтобы ограничить узлы, на которых планировщик назначает задачи для службы. Запускает docker node update **--label-add** на узле менеджера, чтобы добавить метаданные метки на узел. Флаг **--label-add** поддерживает пару **** или **=**. Передать флаг **--label-add** один раз для каждой метки узла, которую вы хотите добавить: Передать флаг --label-add один раз для каждой метки узла, которую вы хотите добавить: $ docker node update --label-add foo --label-add bar=baz node-1 Метки, которые вы устанавливаете для узлов с помощью обновления узла Docker, применяются только к сущности узла в swarm. ==== Повышение или понижение уровня узла ==== Вы можете повысить рабочий узел до роли менеджера. Это полезно, когда узел менеджера становится недоступным или если вы хотите перевести менеджер в автономный режим для обслуживания. Точно так же вы можете понизить роль управляющего узла до рабочей роли. Чтобы повысить уровень узла или набора узлов, запускает docker node promote с узла менеджера: docker node promote server3 Чтобы понизить уровень узла или набора узлов, запускает docker node demote с управляющего узла: docker node demote server3 **docker node promote** и **docker node demote** — это удобные команды для **docker node update --role manage**r и **docker node update --role worker** соответственно.