如果启用 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/