本文主要介绍云效 AppStack 环境的定义和生命周期管理功能。环境是应用在某个级别运行的载体,通常对应一组K8s资源实例或主机服务。在AppStack中,一个应用可以创建多个环境实例,用于开发、测试、生产等场景,用户可以分别管理和监控这些环境。
新建环境
进入 应用-环境 ,单击 新建环境 ,打开新建环境弹窗。
填写 环境名称 :应用下环境唯一标识,创建后不可修改。支持1-63个小写英文字母、数字或"-",不能以"-"开头或结尾。
填写 环境显示名 :环境显示名,创建后可在环境设置里按需修改。支持1-64个中英文字符、数字或符号。
选择 部署方式 :可选部署方式由应用编排方式决定,每个环境指定一种部署方式。
选择 资源 :环境实际部署时使用资源,根据部署方式可选指定类型资源。
Kubernetes部署 :则可选自己有权限的 K8s 集群资源。
主机部署:则可选自己有权限的主机集群。可以关联主机集群下的已有 部署组,也可以直接指定主机集群下的某几台机器。 (注意:指定机器,云效 AppStack 会自动为这几台机器创建一个部署组,部署组唯一名称为:
${应用名}-${环境名称}-group
,部署组显示名为:${应用名}-${环境显示名}-部署组
。你可以在主机集群的 关联部署组 列表里管理部署组)。
选择 变量组 :变量组用于环境部署时动态替换应用编排中占位符引用的变量,关联后可在环境设置里按需修改。
选择 标签 :键值对,用于环境等级划分。
填写 描述 :环境的描述信息。
单击 确认 即可新建环境,环境新建成功后将自动跳转至环境详情页面。
查看环境列表
进入 应用-环境 ,展示当前应用下的所有环境列表。
每个环境卡片上展示:环境名称、环境标签、环境最近变更信息、环境当前版本以及环境最近一次部署状态。
单击环境卡片上的 立即部署 可以提交新的部署工单。
单击环境卡片可以进入环境详情页面查看环境更多信息,具体参见查看环境详情。
单击环境列表上方 新建环境 ,具体操作参见新建环境 。
说明: 在新建应用时,AppStack 为应用预设三套开箱即用的环境:开发环境、测试环境、生产环境(对应企业三套标签:环境级别/开发环境、环境级别/测试环境、环境级别/生产环境)。 在环境卡片上通过 快速设置 关联资源后即可使用。预设环境可以修改或删除,也可以新建自定义环境使用。
查看环境详情
进入
,从环境列表选择目标环境卡片,单击进入环境详情页面。环境详情页面可以查看基础信息、环境部署的具体资源信息、部署版本、环境设置以及环境运维操作入口。
基础信息
环境概览:展示当前环境使用的应用编排、变量组、部署组等信息。
变更信息:展示环境最近一次的变更信息,包括:变更工单、变更人、变更时间、当前版本等。
基本信息:展示环境的基本信息,包括环境的创建人、创建时间、标签、描述信息。
Kubernetes 环境资源
环境详情可以查看本环境当前部署的所有资源信息,包含的具体资源由应用编排中定义的组件决定。当环境部署方式为 Kubernentes部署 时,可能包括的资源有工作负载、配置、网络、存储等。
工作负载
工作负载 tab页面,展示本环境下部署的所有工作负载资源。工作负载是在 Kubernetes 集群上运行的应用程序。截止当前 AppStack 仅支持无状态工作负载, 即 Deployment,适用于实例完全独立、功能相同的场景,如:nginx、wordpress 等。
可以查看工作负载下的实例信息。
实例名称
实例状态
部署版本
创建时间
容器信息
单击 YAML 可以查看 Deployment 组件的 YAML 信息。
单击 详情 可以查看更多Pod信息。
Pod信息
Pod状态 :Pod 的运行状态。
Pod IP :Pod 的 IP。
所在节点 :实例所在节点名称和节点 IP。
创建时间 :实例创建的时间。
运行时间 :实例从启动至今的时间。
容器信息
容器名称:容器的名称。
镜像:容器所使用的镜像。
容器状态:容器的运行状态。
重启次数:实例从启动至今实例中容器的重启次数之和。
关键事件
可以查看Pod的关键事件,包括事件时间、事件原因、事件详细信息。可以用于辅助 Pod 问题定位。
容器日志
可以查看容器的标准输出日志。
单击 日志 可以查看容器日志,用于辅助问题定位和排查。
配置
配置 tab页面,展示本环境下的所有配置资源信息,可能包括 ConfigMap 和 Secret。ConfigMap 可以用来将非机密性的数据保存到键值对中,使用时,可以将其用作 Pod 的环境变量、 命令行参数或者存储卷中的配置文件。Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 SSH 密钥等。配置将您的环境配置信息和容器镜像解耦,便于应用配置的修改。
ConfigMap
组件名称 :应用编排里定义的组件名称
部署状态 :组件的部署状态
部署版本 :最近部署的版本号
更新时间 :最近部署时间
YAML :单击可以查看 ConfigMap 组件的 YAML 信息。
Secret
组件名称 :应用编排里定义的组件名称
部署状态 :组件的部署状态
部署版本 :最近部署的版本号
更新时间 :最近部署时间
YAML :单击可以查看 Secret 组件的 YAML 信息。
网络
网络 tab页面,展示本环境下的所有网络资源信息,可能包括 Service 和 Ingress 。Service 可以用来为一组 Pod 提供固定的访问入口,并对这一组 Pod 做负载均衡。Ingress 用来管理集群外部访问集群内部服务的方式,您可以通过 Ingress 资源来配置不同的转发规则,从而达到根据不同的规则设置访问集群内不同的Service 后端 Pod 的目的。
Service
组件名称 :应用编排里定义的组件名称
类型 :可能为ClusterIP、NodePort、LoadBalancer、Headless Service、ExternalName等,具体由应用编排里定义的Service类型决定
集群IP
端点 :服务映射端点信息
部署状态 :组件的部署状态
部署版本 :最近部署的版本号
更新时间 :最近部署时间
单击 YAML ,可以查看 Service 组件的 YAML 信息。
Ingress
组件名称 :应用编排里定义的组件名称
路由规则数 :组件里定义的路由转发规则数,单击路由规则数,可以查看具体的转发规则:
域名
URL
目标服务
服务端口
URL匹配规则
部署状态 :组件的部署状态
部署版本 :最近部署的版本号
更新时间 :最近部署时间
单击 YAML 操作,可以查看 Ingress 组件的 YAML 信息。
存储
存储 tab页面,展示本环境下的所有存储资源信息。Kubernetes 抽象了PV(PersistentVolume)和PVC(PersistentVolumeClaim)来定义和使用存储。PV 描述的是持久化存储卷,主要定义的是一个持久化存储在宿主机上的目录,比如一个文件存储的挂载目录。 PVC 描述的是 Pod 所希望使用的持久化存储的属性,比如,Volume 存储的大小、可读写权限等等。通常在使用时,可以使用 PV 描述已有的存储资源,然后创建 PVC 使用存储。
PVC
组件名称 :应用编排里定义的组件名称
类型 :可读写权限类型,由应用编排里的组件定义,可能为:只读、读写
容量 :声明的使用Volume存储的大小
部署状态 :组件的部署状态
部署版本 :最近部署的版本号
更新时间 :最近部署时间
YAML :单击可以查看 PVC 组件的 YAML 信息
主机环境资源
展示当前主机环境下部署的机器
主机ID
主机名称
IP
连接状态:当前机器的 Agent 连接状态
设置环境
环境创建完后,你可以通过 环境设置 功能来修改环境的一些基本信息设置和部署配置。
基本设置 :可以修改 环境名称 、 标签 、 描述 。
部署设置:可以设置环境关联 变量组 。暂不支持修改环境 部署方式 和 资源。
锁定环境
日常研发流程中,经常会有抢占环境进行回归验证或因特殊原因发布窗口关闭的场景,此时可以使用 锁定 环境功能。环境锁定后无法再提交任何运维操作,但不影响已有工单的执行。 功能入口:环境详情页面,右上角操作区域后的更多操作里。环境锁定后需由锁定人去解锁环境后才可再次执行变更。
历史记录
环境部署运维中经常需要追溯环境历史,用于问题的定位排查或其他场景。环境管理提供了 历史记录 功能,记录了环境从创建开始的所有修改,包括生成运维工单的 变更记录 , 也包括环境基本信息、配置等元数据信息修改的 操作记录 。功能入口:环境详情页面,右上角操作区域 历史记录 。
变更记录
展示当前环境下所有运维变更记录,单条变更记录信息包括:
变更工单 :运维工单名称。
类型状态 :工单的类型和状态。
版本 :工单的部署版本。
提交信息 :工单提交人和提交时间。
操作记录
展示当前环境下所有操作记录,单条操作记录展示:
操作标题
操作内容
操作人
操作时间
删除环境
当环境不再使用时可以使用环境删除功能来销毁环境。环境删除将释放环境资源,应用将不可对外提供服务,数据不可恢复,请谨慎操作!
删除未部署环境
进入环境详情页面,右上角操作区域,单击 删除 按钮,打开 删除环境 二次确认弹窗。
单击 确定 删除,直接清理环境数据,即刻生效。
删除部署过的环境
提交环境删除单
进入环境详情页面,右上角操作区域,单击 删除 按钮,打开新建 删除环境 工单页面。
核对环境信息:工单页面会列出当前环境部署的所有 组件信息 ,以及环境 最近变更 信息,请仔细核对,确认环境是否不再使用。
输入 环境显示名 以确认删除 。
单击 提交 环境删除工单,跳转环境删除工单详情页面。
观察环境删除过程