How is VIP swapping + CNAMEs better than IP swapping + A records?
作为上述内容的延续 - 我非常接近恢复由于issues I'm having在Azure中使用CNAME而导致的A记录。
来自Azure docs,声明:
但请注意,因为IP地址的生命周期是相关联的 如果要进行部署,请务必不要删除部署 你需要IP地址才能坚持下去。方便的是,一个的IP地址 给定的部署槽(生产或暂存)在使用时保持不变 Windows Azure中的两种升级机制:VIP交换和就地 升级。
我有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确实保持不变。我会等到比我更可靠的人在这里作为答案张贴之前可以在这里说话。
答案 0 :(得分:4)
VIP交换不会改变您的公共IP。这就是说,如果您的应用程序已部署在带有1.1.1.1的prod插槽中,而beta版部署在2.2.2.2的暂存插槽中,即使在VIP交换后,您的公共IP仍将是1.1.1.1。这是因为VIP只是负载平衡配置的变化。您可以安全地从IP为2.2.2.2的临时插槽(最初的prod插槽)中删除原始应用程序。
希望这有帮助,