问题描述
App service无法使用,返回500错误或一直没有响应的情况。
问题原因
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。
解决方法就是为App Service增加子网地址, 最少需要/26
子网网段地址。
App Service的子网要求: https://docs.azure.cn/zh-cn/app-service/overview-vnet-integration#subnet-requirements
创建子网时,Azure 子网从一开始就会使用 5 个 IP。
平台升级需要使用免费 IP 地址,以确保可以在不中断出站流量的情况下进行升级。
在纵向扩展、缩减或完成操作后,可能需要一小段时间才能释放 IP 地址。 在极少数情况下,此操作可能长达 12 小时
App Service 升级维护:https://docs.azure.cn/zh-cn/app-service/routine-maintenance#how-is-routine-maintenance-related-to-sla
App Service 的升级维护类型可以是性能改进、bug 修复、新功能或安全更新。
App 服务维护可以位于服务本身或基础操作系统上。
在正常情况下,用户对于多个实例的App Service 升级维护是无感的。
App Service升级过程中会对将要升级的实例进行graceful shutdown,同时新的实例会被拉起运行。
如果在新的实例被拉起的过程中,由于App Service 所配置的子网地址段 x.x.x.x/29 不满足所需IP数,导致底层的worker在启动后未能及时被分配内网IP而引起App Service无法使用。
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!