How is VIP swapping + CNAMEs better than IP swapping + A records?
作为上述内容的延续 - 由于 issues I'm having 和 Azure 中的 CNAME,我非常接近恢复到 A 记录。
从 Azure docs ,它说:
我有 myapp.cloudapp.net
,目前指向 1.1.1.1
的 VIP。如果我想将应用程序的某个版本部署到 Staging,我将使用我的应用程序旋转 Staging 插槽,进行一些测试,然后通过 VIP 交换进行无缝升级。应用程序现在将使用 2.2.2.2
- 尽管如果我此时再次进行 DNS 查找,myapp.cloudapp.net
的 A 记录仍将指向 1.1.1.1
,因为 VIP 交换对 DNS 没有影响,对吧?
如果是这样,那么当我终止临时部署以节省成本时会发生什么? 1.1.1.1
和 2.2.2.2
都会保留给我的服务吗?我希望如此,因为这意味着我可以始终将 A 记录指向 1.1.1.1,通过分阶段部署依赖它,而不必担心 CNAME 的麻烦。但这意味着 this answer 是不正确的。
如果没有,那么这意味着 VIP 交换确实对 DNS 记录有影响,对吗?否则,我将能够做到这一点:
最后一点没有任何意义,所以要么 DNS 记录得到更新,要么 3.3.3.3 永远不会出现,并且 1.1.1.1 和 2.2.2.2 总是在一起,只要我的云服务不被删除.
我对这件事很困惑 - 任何指导都会很棒。
更新 - 我刚刚用以下内容对此进行了测试:
CHECK DNS - get 1.1.1.1
READ PROD - get 1.1.1.1
DEPLOY STAGING
READ STAGING - get 2.2.2.2
VIP SWAP
READ PROD - get 1.1.1.1
READ STAGING - get 2.2.2.2
CHECK DNS - get 1.1.1.1
KILL STAGING DEPLOYMENT
READ PROD - get 1.1.1.1
因此似乎可以使用 A 记录 - 即使在登台/生产之间切换时,PROD VIP 保持不变,但部署被交换。删除暂存并重新部署暂存会获得一个新的次要 VIP,但主要 VIP 确实保持不变。我会等到比我更可靠的人可以在这里发表意见,然后再将其作为答案发布。
最佳答案
VIP 交换不会改变您的公共(public) IP。也就是说,如果您将应用程序部署在 1.1.1.1 的 prod 插槽中,并将 beta 部署在 2.2.2.2 的暂存插槽中,即使 VIP 交换后,您的公共(public) IP 仍将是 1.1.1.1。这是因为 VIP 只是负载平衡配置更改。您可以从 IP 为 2.2.2.2 的暂存槽(最初是 prod 槽)中安全地删除您的原始应用程序。
希望这可以帮助,
关于azure - VIP 交换和持久性 - VIP 什么时候被回收?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20864695/