如何在零停机时间内删除Azure Traffic Manager安装程序?

问题描述 投票:1回答:1

为了减少我们的Azure成本,我们正在寻求删除未使用的资源。

我们有一项应用服务是流量管理器设置的一部分,当用户在浏览器中键入x.com时可以访问。存在两个应用程序服务:

eus-x-com.azurewebsites.net
wus-x-com.azurewebsites.net

这些已添加到流量管理器配置文件,并且当它们添加到TM时,将它们的自定义域都配置为x.com

x.com的DNS指向x-com.trafficmanager.net,即管理这两个站点的流量管理器的名称。

这意味着现在有:

//sites under Traffic Manager control of x.com

EastUS App Service Plan 1
      eus-x-com.azurewebsites.net

WestUS App Service Plan 1
      wus-x-com.azurewebsites.net


//sites not assigned to a traffic manager

EastUS App Service Plan 2
      y-com.azurewebsites.net
      z-com.azurewebsites.net

[几年后,似乎eus-x-com.azurewebsites.net从未失败,并且使用不多,所以我们正在考虑让East US Service Plan 2托管一个x.com实例,以及它托管的其他站点,并摆脱它。交通经理,以及东西方服务计划1,只剩下服务计划2

这个主意是:

  • 在EastUS App Service Plan 2中创建一个名为x-com.azurewebsites.net的新站点>
  • 将代码部署到它,以便它可以正常工作
  • 给它一个x.com的自定义域(即相当于在IIS中添加主机头)
  • 将DNS更改为指向x-com.azurewebsites.net,以便随着世界各地的DNS服务器更新,流量逐渐开始进入新的Web应用程序>]
  • 在某些时候删除整个TM基础结构
  • [我遇到了一个问题:即使我可以验证DNS域所有权(它看到cname指向流量管理器),但我遇到了一个限制,即两个不同的应用程序服务(即使在不同的应用程序服务计划中)也不能具有相同的自定义域设置,除非它们是流量管理器设置的一部分。尝试将自定义域添加到x-com.azurewebsites.net]时,出现“在应用程序服务eus-x-com.azurewebsites.net上已经使用了x.com自定义域”

    这有点烦人,因为我预见到没有理由在技术上不可能在不同计划中的两个应用程序服务上具有相同的自定义域,如果全部(在旧IIS中)是主机标头/绑定;实际使用哪种应用服务取决于基于DNS到达的IP地址流量。自定义域绑定是一种路由机制,用于在到达托管多个站点的IIS时知道将流量传递给哪个网站]

    相反,我看着这样做:

    • 在EastUS App Service Plan 2中创建一个名为x-com.azurewebsites.net的新站点>
    • 将代码部署到它,以便它可以正常工作
  • 将其添加到流量管理器,以便TM可以在其上设置x.com的自定义域
  • 更改DNS,以便流量逐渐开始直接绕过TM进入新的Web应用程序
  • 在某些时候删除整个TM基础结构
  • 这是我遇到另一个问题的地方:

    同一区域中的两个应用程序服务(无论它们是否处于不同的应用程序服务计划中)不能属于相同的流量管理器配置文件。即使这些站点位于不同的应用程序服务计划上,这些计划也位于同一地区(EUS),并且门户中的错误消息为:

    流量管理器配置无效,因为一个或多个域不属于订阅'xxx'

    [A github discussion,来自MSFT员工,这是一个虚假的错误消息,应解释为“您不能在同一区域内将两个应用程序服务作为同一TM的一部分”。如果其中之一是外部端点,则可以使用它,但是它不会为您添加自定义域,这是我想要将新站点添加到TM之外的唯一目的。

    然后我发现我可以编辑TM并更改端点指向的位置:

//existing setup
TM 
  east-us-x-endpoint -> eus-x-com.azurewebsites.net
  west-us-x-endpoint -> wus-x-com.azurewebsites.net

//proposed setup
TM 
  east-us-x-endpoint -> x-com.azurewebsites.net      //edit it to point to the new x-com
                                            //delete the west US one

我已经完成了此操作,并编辑了终结点以针对其他应用程序服务。尽管门户网站说更改已经完成,但是仍然存在问题:

  • 流量管理器肯定仍在将流量发送到旧的应用程序服务,因为即使新的应用程序服务上没有任何代码,该站点仍可以正常工作
  • 停止旧的eus-x-com.azurewebsites.net站点(不再在任何TM端点中进行配置)会导致该站点停止使用HTTP 503的工作

    我现在被困住了;我基本上需要在相同区域,不同服务计划上的两个应用程序服务,以便在一段时间内拥有相同的自定义域,以便我可以切换DNS然后拆除其中一个。或者,我需要另一种方法来设置新的应用程序服务,以使其准备占用流量,获取所有流量以开始使用它,然后删除旧的设置

    我可以采取哪些步骤来启动和运行新的应用程序服务,为其提供自定义域,然后切换DNS,以便所有流量都流向新站点,而不会造成任何停机?

    为了减少我们的Azure成本,我们正在寻求删除未使用的资源。我们提供的应用程序服务是流量管理器设置的一部分,当用户在浏览器中键入x.com时可以访问该服务。两个...

  • 据我所知,Traffic Manager或App服务的DNS名称是全局唯一的。我们不能将相同的自定义域用于两个不同的应用程序服务。读取ICANN

    因此,当您要使用相同的自定义域时,您仍然需要负载均衡器来为后端应用程序服务路由较高的DNS级别的传入流量。我也认为如果没有流量管理器,您无法在Azure中切换DNS以用于应用服务。如果要将流量路由到同一区域中的应用程序服务,则可以使用nested Traffic Manager profiles。阅读this answer了解更多详情。

azure azure-web-app-service azure-app-service-plans azure-traffic-manager
1个回答
0
投票

据我所知,Traffic Manager或App服务的DNS名称是全局唯一的。我们不能将相同的自定义域用于两个不同的应用程序服务。读取ICANN

因此,当您要使用相同的自定义域时,您仍然需要负载均衡器来为后端应用程序服务路由较高的DNS级别的传入流量。我也认为如果没有流量管理器,您无法在Azure中切换DNS以用于应用服务。如果要将流量路由到同一区域中的应用程序服务,则可以使用nested Traffic Manager profiles。阅读this answer了解更多详情。

© www.soinside.com 2019 - 2024. All rights reserved.