本平台支持对各类应用的如下管理功能。
应用管理为容器应用提供了服务、应用域名、应用访问路径和网络策略四种对外提供服务的方式。
“服务”(即Service)是Kubernetes中应用提供服务的入口,是一个应用访问另一个应用的方式。Service代表一组Pod,由于Pod IP是随机的,且可能会因重启改变,因此不应该直接访问Pod IP。而集群IP是Service在集群中的具体实现,该IP地址一经创建便不会改变。Kubernetes负责建立和维护Service与Pod的映射关系,因此用户只需要访问Service的IP,无论后端Pod如何变化,对用户都不会有任何影响。Service提供了四种访问容器服务的方式:
集群外访问:
节点访问:请求通过节点IP、节点端口、Service端口和容器端口访问对应容器。
集群内访问(ClusterIP):通过集群IP、Service端口和容器端口访问对应容器。
图-1 Service架构图
“应用域名”(即Ingress)可以允许Kubernetes中一个应用通过域名访问另一个应用,相当于一种“路由规则”,即通过域名将访问流量路由到对应容器。使用应用域名作为访问方式,需首先在DNS上配置域名与容器所在集群VIP的对应关系。
可通过配置“IP(域名):端口号/path”的方式配置访问应用的路径,通过该路径访问应用。
网络策略为应用提供了基于策略的网络控制,以白名单的方式支持指定远端访问本端容器端口,用于隔离应用并减少攻击面。使用网络策略作为访问方式的集群需要安装网络插件如Calico、Romana、Weave Net和trireme,系统默认已安装了Weave Net插件。
对Pod实例的个数进行调整。根据用户的业务需求,通过设置伸缩来自动增加/缩减业务资源。这样灵活扩展或者收缩资源,提高资源利用效率,帮助企业降低运营成本。
支持自动伸缩、手动伸缩、定时伸缩、周期伸缩四种方式。
自动伸缩:通过对CPU/内存使用率或HTTP请求速率、最小/最大实例数等阈值的配置,使系统根据监控情况自动调整服务中Pod实例的个数,保证系统业务平稳健康的运行。
手动伸缩:用户可根据需求手动设置Pod实例的个数,系统会将实例数量调整至设置预期。
定时伸缩:系统将在到达设置的触发时间时自动将实例数量调整至设置的预期值。
周期伸缩:在所选择的日期范围内,每天到达触发时间时自动将实例数量调整至设置的预期值。
当前系统支持针对每个应用的域名创建功能,实现通过域名访问应用。同时,还可以创建全局通用的应用路由,方便用户通过一个规则一次性访问多个应用。
应用升级包括滚动升级和灰度升级两种策略。
· 部署到容器集群的应用仅支持滚动升级和灰度升级。 · 如需使用灰度升级需为应用配置应用域名作为访问方式。 |
滚动升级:默认的升级策略,通过新的服务实例逐个更新来实现零停机的部署升级,即先升级并启动一台新版本,再停止其老版本,使得在整个滚动过程期间,保证始终有可用的副本在运行,从而平滑地发布新版本。优点是节约资源,不需要同时运行两倍的实例个数,缺点是回滚过程困难。
灰度升级:在进行灰度升级时,不停止老版本,同时会部署一套新版本,用户可自定义配置新旧版本间的流量权重,新旧版本按照流量权重承担流量,同时对外提供服务。待新版验证完毕即可完成升级或取消升级,可以保证整体系统的稳定和平滑过渡。优点是无需停机,风险较小,回滚简单,缺点是同时运行新旧两套版本,需要两倍的资源。
升级后的应用会保留所有历史版本,您可以选择某个历史版本将应用回退到历史状态。
本系统提供应用报表,您可以浏览、查询和导出应用数据。