🐳 Как изменить сохранение истории задач в кластере Docker Swarm

by itisgood

Измените время хранения истории задач в кластере Docker Swarm, чтобы гарантировать отсутствие остановленных контейнеров.

По умолчанию время хранения истории задач установлено значение 5.

$ docker node ps --filter "name=blog_staging" swarm-cerberus
ID                  NAME                 IMAGE                                                NODE                DESIRED STATE       CURRENT STATE             ERROR               PORTS
ormho76nb30u        blog_staging.2       registry.example.com/websites/blog:staging           swarm-cerberus      Running             Running 14 minutes ago                        
ttrmtuh5xpv4         \_ blog_staging.2   registry.example.com/websites/blog:staging           swarm-cerberus      Shutdown            Shutdown 16 minutes ago                       
p2of726hvvbg         \_ blog_staging.2   registry.example.com/websites/blog:staging           swarm-cerberus      Shutdown            Shutdown 15 hours ago                         
nvk4xr78td9m         \_ blog_staging.2   registry.example.com/websites/blog:staging           swarm-cerberus      Shutdown            Shutdown 38 hours ago                         
a0n2lcmhjx6f         \_ blog_staging.2   registry.example.com/websites/blog:staging           swarm-cerberus      Shutdown            Shutdown 38 hours ago       

Хранение истории задач можно изменить глобально.

$ docker swarm update --help
Usage:	docker swarm update [OPTIONS]
Update the swarm
Options:
      --autolock                        Change manager autolocking setting (true|false)
      --cert-expiry duration            Validity period for node certificates (ns|us|ms|s|m|h) (default 2160h0m0s)
      --dispatcher-heartbeat duration   Dispatcher heartbeat period (ns|us|ms|s|m|h) (default 5s)
      --external-ca external-ca         Specifications of one or more certificate signing endpoints
      --max-snapshots uint              Number of additional Raft snapshots to retain
      --snapshot-interval uint          Number of log entries between Raft snapshots (default 10000)
      --task-history-limit int          Task history retention limit (default 5)

Установите для хранения истории задач значение 0, чтобы отключить его.

Это изменение не будет применено немедленно.

Вам необходимо обновить сервис, чтобы увидеть разницу.

$ docker swarm update --task-history-limit 0
Swarm updated.

Обновите службу, чтобы повторно применить сохранение истории задач.

$ docker service update --with-registry-auth --image registry.example.com/websites/blog:staging blog_staging | grep ^verify:\ Service"
verify: Service converged

Остановленных контейнеров нет.

$ docker node ps --filter "name=blog_staging" swarm-cerberus
ID                  NAME                IMAGE                                                NODE                DESIRED STATE       CURRENT STATE              ERROR               PORTS
lqblu9mgjhxl        blog_staging.2      registry.example.com/websites/blog:staging           swarm-cerberus      Running             Preparing 49 seconds ago

Дополнительная информация

Вы можете установить эту опцию во время инициализации Сворма.

$ docker swarm init --help
Usage:	docker swarm init [OPTIONS]
Initialize a swarm
Options:
      --advertise-addr string                  Advertised address (format: <ip|interface>[:port])
      --autolock                               Enable manager autolocking (requiring an unlock key to start a stopped manager)
      --availability string                    Availability of the node ("active"|"pause"|"drain") (default "active")
      --cert-expiry duration                   Validity period for node certificates (ns|us|ms|s|m|h) (default 2160h0m0s)
      --data-path-addr string                  Address or interface to use for data path traffic (format: <ip|interface>)
      --data-path-port uint32                  Port number to use for data path traffic (1024 - 49151). If no value is set or is set to 0, the default port (4789) is used.
      --default-addr-pool ipNetSlice           default address pool in CIDR format (default [])
      --default-addr-pool-mask-length uint32   default address pool subnet mask length (default 24)
      --dispatcher-heartbeat duration          Dispatcher heartbeat period (ns|us|ms|s|m|h) (default 5s)
      --external-ca external-ca                Specifications of one or more certificate signing endpoints
      --force-new-cluster                      Force create a new cluster from current state
      --listen-addr node-addr                  Listen address (format: <ip|interface>[:port]) (default 0.0.0.0:2377)
      --max-snapshots uint                     Number of additional Raft snapshots to retain
      --snapshot-interval uint                 Number of log entries between Raft snapshots (default 10000)
      --task-history-limit int                 Task history retention limit (default 5)


См. также:

 

You may also like

Leave a Comment