代理节点上的 DCOS 升级 docker 版本

DCOS Upgrade docker version on agent nodes

我们在 Azure 云上是 运行 DC/OS 11.1,在我们的代理节点上有 Docker 引擎版本 17.09。我们想在每个代理节点上将 Docker 引擎升级到 17.12.1。

有没有人有过这样的程序的经验,它会导致 DC/OS 其他组件的任何不稳定/副作用吗?

我还没有在您 运行 所在的确切环境中亲自完成升级,但我不会非常担心。不用说,在生产环境中进行测试之前,先在非生产环境中进行测试。

我建议在进行 docker 升级之前清空代理节点。我所说的 draining 是指停止节点上的所有容器(任务)运行,这将确保 Mesos 代理停止任务,然后通知框架任务不再 运行ning 和框架将采取适当的行动。

排空节点运行

sudo sh -c 'systemctl kill -s SIGUSR1 dcos-mesos-slave && systemctl stop dcos-mesos-slave'

私人代理人

sudo sh -c 'systemctl kill -s SIGUSR1 dcos-mesos-slave-public && systemctl stop dcos-mesos-slave-public'

为public代理人

您会观察到代理从 UI 的节点部分消失,并且代理上的所有任务 运行 都标记为 TASK_LOST。理想情况下应该是 TASK_KILLED,但那是另一个话题了。

现在执行您的docker升级

升级后docker启动代理服务备份

sudo systemctl start dcos-mesos-slave

私人代理人

sudo systemctl start dcos-mesos-slave-public

为public代理人

节点现在应该开始出现在 UI 中并开始接受任务。

为了安全

  1. 在 prod 中执行此操作之前,请在非 prod 环境中验证这一点,以便 解决您可能遇到的任何操作问题
  2. 一次做 1 个或一部分代理,这样你就不会留下一个 执行升级时集群没有任何节点