=====Управляйте узлами в 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** соответственно.