熟悉Azure的朋友应该都知道,Azure中提供多种使用容器的选项,比如可以使用Azure Container Instance来运行容器实例、使用Azure App Service运行网站或API容器,或者可以使用Azure容器注册表来存储和管理容器镜像。对于需要完整的容器编排、服务发现、自动缩放或更复杂的使用场景来说,Azure中的AKS服务是一个比较好的选择。AKS是Azure中托管的K8S群集服务,也就意味着群集由Azure帮宅男深夜性福导航进行管理,宅男深夜性福导航只需要负责使用即可,虽然如此,我遇到一些开发人员在实际的使用过程中还是遇到了不少问题的,使用起来还是有些困难,要求开发人员必须掌握一些运维相关的知识。那是否有一种即可让开发人员构建Kubernetes 风格的应用程序,并且不需要直接访问所有原生 Kubernetes API 和群集管理的方法呢,答案肯定是有的。
现在Azure容器家族中又有了一个新的成员,叫做Azure Container App,Azure Container App提供位于AKS之上的无服务器托管服务,允许用户部署多个容器,而无需关系底层的基础结构。也就是说如果你想要构建 Kubernetes 风格的应用程序,并且不需要直接访问所有原生 Kubernetes API 和群集管理,则 Container Apps 可提供基于最佳做法的完全托管体验。
使用Azure Container App可以在无服务器平台上允许微服务和容器化应用程序,Azure Container App有如下常见用途:
部署 API 终结点承载后台处理应用程序处理事件驱动的处理运行微服务当宅男深夜性福导航在Azure Container App中部署或更改容器时,Container App会自动对容器进行快照以用于版本修订,同时会创建一个Pod来运行容器工作负载。和宅男深夜性福导航在AKS中一样,这些容器共享相同的应用程序生命周期、网络和磁盘,他们之间可以互相通信。此外因为Container App与K8S的基于事件驱动的容器自动缩放相集成,所以服务会根据请求并发数等指标进行判断,根据情况自动增加/减少与修订相关的Pod数量和内存使用。
宅男深夜性福导航可以将多个Container App部署在同一个环境中,这也就意味着宅男深夜性福导航可以将多个Container App部署在同一个虚拟网络内部。同时每个环境都有自己的Log Analytics Workspace,宅男深夜性福导航可以对每个环境进行监控。
当在Container App中部署或更改容器时,Container App会自动获取Azure Container Instance的不可变快照,然后会将新版本部署在一个单独的Pod中。需要注意的是,并不是所有的更改都是如此,Container App中的更改主要分类两种类型
**修订范围更改:**当使用修订范围的更改更新容器应用时,会创建一个新修订。 更改仅限于部署它们的修订,不会影响其他修订。**应用范围更改:**部署具有应用程序范围的更改的容器应用时更改将全局应用于所有修订且不会创建新修订。容器应用修订通过在你每次对应用进行修订范围的更改时创建一个新修订,来帮助管理容器应用的更新发布。 默认情况下,创建新版本时,旧版本的流量会完全转移到新版本。当然也可以使用流量拆分规则来定义它们之间的流量平衡方式。这些包括将一定比例的流量引导到特定的修订版。
通过上述的内容大家可以看到,Azure Container App的使用复杂度相对于AKS来说要简单很多,并且从定价的角度来看,Azure Container App也颇具优势,相信随着时间的推移,其使用的人会越来越多。