服务编排容器重新调度


容器服务支持对 Docker 容器的重新调度:当一个节点失效时,容器可以被自动调度到其他可用节点自动运行。
缺省情况下,容器的重新调度策略是关闭的。根据需要,您可以用如下配置来让重调度策略生效。
容器服务提供兼容 Docker Swarm 的容器重新调度策略,可以通过环境变量方式或者 label 方式启动。
[backcolor=transparent]环境变量:

  1. [backcolor=transparent]redis[backcolor=transparent]:
  2. [backcolor=transparent]  image[backcolor=transparent]:[backcolor=transparent] redis
  3. [backcolor=transparent]  environment[backcolor=transparent]:
  4. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] reschedule[backcolor=transparent]:[backcolor=transparent]on[backcolor=transparent]-[backcolor=transparent]node[backcolor=transparent]-[backcolor=transparent]failure

[backcolor=transparent]Label:
  1. [backcolor=transparent]web[backcolor=transparent]:
  2. [backcolor=transparent]  image[backcolor=transparent]:[backcolor=transparent] nginx
  3. [backcolor=transparent]  restart[backcolor=transparent]:[backcolor=transparent] always
  4. [backcolor=transparent]  environment[backcolor=transparent]:
  5. [backcolor=transparent]    [backcolor=transparent]-[backcolor=transparent] aaaaa[backcolor=transparent]=[backcolor=transparent]aaaaa
  6. [backcolor=transparent]  labels[backcolor=transparent]:
  7. [backcolor=transparent]    aliyun[backcolor=transparent].[backcolor=transparent]scale[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"3"
  8. [backcolor=transparent]    com[backcolor=transparent].[backcolor=transparent]docker[backcolor=transparent].[backcolor=transparent]swarm[backcolor=transparent].[backcolor=transparent]reschedule[backcolor=transparent]-[backcolor=transparent]policies[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"[\"on-node-failure\"]"

展开
收起
反向一觉 2017-10-30 09:20:37 1925 分享 版权
阿里云 AI 助理回答

阿里云容器服务确实支持对Docker容器的自动重新调度功能,以确保高可用性。当集群中的某个节点发生故障时,该功能可以自动将运行在该节点上的容器重新调度到其他健康的节点上继续运行,从而减少服务中断的风险。

您提到了两种配置方式来启用容器的重新调度策略:

1. 环境变量方式

通过在容器的定义中添加特定的环境变量来开启重新调度策略。例如,在您的Redis容器定义中,通过设置环境变量reschedule:on-node-failure来指示容器服务在节点失败时重新调度容器。

redis:
  image: redis
  environment:
    - reschedule:on-node-failure

2. Label方式

另一种方法是使用标签(Labels)来指定重新调度策略。在Docker Swarm兼容模式下,可以通过添加特定的标签来实现这一功能。比如在Nginx容器的例子中,通过设置标签com.docker.swarm.reschedule-policies["on-node-failure"]来激活节点故障时的重调度机制。

web:
  image: nginx
  restart: always
  environment:
    - aaaaa=aaaaa
  labels:
    aliyun.scale: "3"
    com.docker.swarm.reschedule-policies: ["on-node-failure"]

请注意,上述示例假设您正在使用的是支持Docker Swarm特性的阿里云容器服务或类似系统。在实际操作中,具体配置可能需要根据您使用的阿里云产品(如ACK - 阿里云容器服务Kubernetes版)和其管理界面或YAML配置文件的具体要求进行调整。

对于ACK,推荐使用Kubernetes原生的重启策略(如restartPolicy: Always)以及StatefulSet、Deployment等资源对象来管理应用的高可用性和容错能力,这些高级功能提供了更灵活和强大的容器管理能力。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

国内唯一 Forrester 公共云容器平台领导者象限。

还有其他疑问?
咨询AI助理