Docker Swarm(三)Service(服务)分配策略
阅读原文时间:2021年11月24日阅读:1
  • 預設分散至多個nodes上

  • 使用率較低的node優先配置

  • 使用者可自行定義此分配模式

  • Service Constraints (服务约束)

       参考:https://www.cnblogs.com/caoweixiong/p/12382282.html

  • Service Modes(服务模式)

    • 默认是replicated(副本),例如replica=10,docker swarm會執行10個container並盡可能分散到各個node上,但不能確保每個node都會配置到該task

    • Global(全局)是replica的相反,能確保每个节点都有一个任务

    • Global適用於host agents(monitoring, backup, proxy…)

    • 目前僅限於 service create 時設定

docker service create --mode=global portiner

  • Placement Preferences(安置偏好)

    • 目前只有spread這個策略

      • spread tasks among all values of a Label
      • 適用availablility zones, datacenters, racks, subnets > things where you want to spread workload out amongst various type of infrastructure
    • 可用於service create/update

            示例:Lable all nodes with availability zone

docker node update --label-add=azone=1 node1
docker node update --label-add=azone=2 node2
docker node update --label-add=azone=3 node3

根據這個Label加以分散:

docker service create --placement-pref spread=node.labels.azone --replicas 3 masl