azure - Docker:如何处理重启的节点?

标签 azure docker docker-machine docker-swarm

如果启用 docker 的虚拟机重新启动,例如由于 Azure 修补 VM 或出于任何原因,节点可以获得新的 IP 地址(VirtualBox 可能会导致这种情况,Azure 也是如此) 这反过来会导致证书不再有效并且 Docker 无法在该计算机上启动。

如果我使用 Docker Swarm,结果是重启的节点会无限期地卡在 Pending 状态。

如果我随后执行docker-machine regenerate-certs mymachine,那么它会再次开始工作。

我应该如何推理这个问题? 我想没有办法让节点重新启动,那么你如何处理这个问题?

最佳答案

对于 Azure,您可以使用“保留 IP”地址确保您的 VM 在重新启动后保留其公共(public) IP 地址。请注意,在 Azure 上使用保留 IP(与其他云提供商一样)可能会产生额外费用。 https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-reserved-public-ip/

处理此问题的另一种方法是使用发现。 Swarm 提供了支持etcd、consul 和zookeeper 的发现机制。在这里找到更多详细信息: https://docs.docker.com/swarm/discovery/

关于azure - Docker:如何处理重启的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35534012/

相关文章:

Azure 函数 blob 触发器 - 对不同主机名和新版本的函数使用相同的收据

azure - 如何在Azure Spark集群上通过Apache Livy设置spark.driver.extraClassPath?

azure - AKS 中状态为 CrashLoopBackOff 的容器

spring-boot - 从 Spring Boot POM 文件中删除私有(private) docker 注册表凭据

postgresql - 将容器连接到本地数据库

docker - 无法通过使用 hyper-v 在 docker-machines 上运行的 ip 访问 docker swarm 集群

python - 使用 Python 列出具有特定名称类型的 Azure 容器

docker - 如何实现微服务[Node.js]?

docker - 我如何使用 docker ecs 容器设置 aws cloudwatch 日志

macos - Docker for mac - 无法 curl 我的容器