应用部署与管理
概述
在应用引擎v2中部署的应用,除了Docker镜像相关信息,还包括以下的配置信息:
- 资源限制(内存)
- 实例数
- 环境变量
- 外部域名以及证书
访问方式
一个应用部署后,会自动分配一个内部域名,形式是<app-name>.<namespace>.svc.cluster.local
。其他部署到应用引擎v2的应用,可以通过这个域名来访问这个应用,支持TCP和UDP协议。 如果部署的是有状态应用,除了统一的内部访问域名外,每个实例还会有自己的内部域名,形式是`<app-name>-<index>.<app-name>-hd.<namespace>.svc.cluster.local
。其他部署到应用引擎v2的应用,可以通过这个域名来访问这个实例,支持TCP和UDP协议。
如果需要从外部访问,可选HTTP/HTTPS或者TCP/UDP形式。HTTP/HTTPS必须给应用指定域名,如果使用https,还必须配置secret证书。TCP/UDP形式需要选择要暴露的端口,每个公司都有一定的端口范围,一个端口只能供一个应用使用。TCP/UDP服务器IP请联系生态云团队获取。
创建应用
- 应用类型:无状态和有状态,有状态应用每个实例都有自己的网络标识,可以互相通信。无状态应用单个实例没有自己的网络标识,不可以互相通信。
- 应用名称:只允许小写字母和数字,以及连接符(-),只能以小写字母开头,长度不超过253
- Docker镜像:应用的镜像地址,可以是应用引擎可以访问到的任何地址;考虑到下载速度,建议使用生态云提供的镜像仓库来存放镜像,请联系生态云管理员开通。
- 镜像仓库Secrets:如果镜像仓库需要登录,在这里指定凭证信息(在Secrets管理里面创建)
- 启动命令:如果需要,以JSON数组的形式指定启动命令。建议直接在Dockerfile指定
ENTRYPOINT
或者CMD
- 启动命令参数:如果需要,以JSON数组的形式指定启动命令的参数
- 实例数:指定要启动的实例数(大于等于1的整数)
- 内存限额:范围是[64,4096],单位Mb
- 内部访问域名:根据应用名称和Namespace自动生成
- 服务:应用提供的服务的协议(TCP或者UDP),服务端口以及容器的端口。服务端口可以随意指定(HTTP服务建议使用80),容器端口是Docker镜像暴露的端口
- 外部服务类型:如果提供外部HTTP服务,需要绑定URL,如果提供外部TCP/UDP服务,需要选择端口
- 是否只允许HTTPS:如果是,HTTP请求会被自动重定向到HTTPS
- URLs:提供外部访问的URL(域名以及路径),可以绑定多个。如果只允许HTTPS,必须指定TLS证书(在Secrets管理中创建)
- 环境变量:应用运行时用到的环境变量,可以直接赋值,也可以引用在"配置管理"中创建的ConfigMap项
关于磁盘限额
目前应用引擎v2不限制磁盘大小,但不要在本地存储持久文件,需要使用FDS等后端存储服务;日志必须写到标准输出或者标准错误输出(stdout/stderr).
我们会监控磁盘的使用情况,占用过大(>5G)磁盘空间的应用会在通知一次后,强制重启.
应用详情
启动或停止停应用
在"应用详情"页面右上角,有启动/停止按钮,可以启动或者停止应用. 需要注意的是,应用停止后再启动,实例数会变成1
手动扩容
手动修改实例数后,实例的启动或者终止需要一定时间,所以"实例列表"中的实例信息需要一些时间,才会同步到设定的实例数
事件列表
"应用详情"的最下面,按照发生时间倒序,列出100条最近发生的事件
更新应用
更新应用,可以修改除应用名称,Namespace和实例数之外的其他信息。
灰度升级
灰度升级是平滑升级对外服务应用的一种方式. 一般流程如下:
应用上线,并绑定正式域名,对外提供服务
部署新版应用,绑定测试域名进行测试
测试通过后, 把正式域名从旧版应用移除并绑定到新版应用
停止或者删除旧版应用