本文以部署 Bookinfo 书评应用为例,为您介绍如何通过应用交付的 OAM 应用功能,简单快速地部署一个云原生应用。
在云计算时代,云原生应用越来越受企业欢迎。然而,上手云原生应用需要学习复杂的 Kubernetes YAML 知识,给传统企业带来很大挑战。另一方面,云原生应用通常由多个微服务组件构成,各组件需要正确结合在一起才能对外提供完整服务,又进一步增加了传统业务上云的门槛。持续交付的 OAM 应用功能,一方面提供了可视化组件编排能力,有效降低传统企业的原生上手难度;另一方面支持多组件多阶段部署,帮助企业轻松上手多组件复杂应用,可以很好地解决上述问题。
本文以在容器服务 VKE 部署 Bookinfo 书评应用为例,为您演示 OAM 类型应用的使用流程。
该应用由以下 4 个微服务构成:
容器服务
已开通火山引擎容器服务。
已创建容器服务集群,具体操作请参见 创建集群。
如果希望通过公网访问该服务,请提前安装 ingress-nginx 组件。详细操作,请参见 ingress-nginx 组件。
持续交付
已准备好应用各组件使用的 Docker 镜像。
登录 持续交付控制台。
在概览页面的工作区区域,选择目标工作区名称,进入该工作区。
在当前工作区页面,选择左侧导航栏的 应用交付 > 应用管理,单击 创建应用。
在创建应用页面,按要求填写应用的相关配置信息。
填写完成后,单击 确定,弹出 应用初始化配置 下一步指引框。
为当前应用预置一个环境。系统预置了 开发、测试、预发、生产 共四个环境等级。每个环境等级可选择预置一个环境。建议至少预置一个环境,便于后续应用编排及配置管理使用。
根据界面引导,单击 初始化 2:环境管理。
在环境管理页面,勾选需要预置环境的环境等级。默认预置 开发、测试、生产 环境,本示例保持默认。
单击 确定,弹出 应用初始化配置 下一步指引框。单击 返回应用详情。
可视化编排 OAM 应用的组件内容及各组件的部署顺序。Bookinfo 书评应用由 Productpage、Details、Reviews、Ratings 共 4 个组件组成。根据各组件间的依赖关系,需分 3 个部署阶段:部署阶段一并行部署 Details 和 Ratings,部署阶段二部署 Reviews,部署阶段三部署 Productpage。
在当前应用的应用编排页签,单击部署阶段一区域的 添加组件。
在添加组件页面,编排部署阶段一的组件内容。填写完成后,单击 确定。
部署阶段一包含 Details 和 Ratings 两个组件。一次只能添加一个组件,需分两次添加。
基本信息
配置管理
提取所引用的组件模板中的变量,生成可视化表单,方便开发人员填写。 本组件模板需开发人员填写服务实例的副本数、服务所部署的命名空间、服务监听的端口号。每个参数都已填充默认值,开发人员可根据实际需要进行调整。本示例保持默认。
环境变量管理
按需设置容器中的 env 环境变量。您可将不同环境下的差异化配置设为环境变量,例如数据库的 IP 地址、各种账号、依赖的服务域名等。本示例不使用环境变量。
插件管理
支持按需添加多个 运维插件。本示例不使用插件。
重复上述步骤,编排部署阶段二、部署阶段三的组件。参数配置同上,仅需修改组件名称。
为预置环境关联待部署的集群,完成环境初始化。本示例对预置的 开发环境 1 进行初始化。
在当前应用的环境页签,选择 开发环境 1 卡片,单击 环境初始化。
在编辑环境页面,配置环境信息。
部署资源:为开发环境 1 关联前提条件中准备的容器服务集群。
Namespace 覆盖:勾选,本示例名称填写为 demo-ns。后续部署当前环境时,将部署至 demo-ns 命名空间下。
其他配置保持默认,单击 确定。
将 Bookinfo 书评应用部署至开发环境 1。
在当前应用的环境页签,选择 开发环境 1 卡片,单击 立即部署。
在立即部署页面,配置各组件使用的镜像地址及应用的部署策略。
镜像:依次填写每个组件使用的镜像地址。镜像地址格式为:host/namespace/repo:tag
。
部署策略:本示例选择原生部署,基于 Kubernetes 原生的滚动升级能力。
其他配置保持默认,单击 确定,应用开始部署。
阶段内组件并行部署,不同阶段的组件按顺序串行部署。
一个阶段部署成功后,单击右上角 继续部署,部署下一个阶段的组件。
所有阶段的组件都部署成功后,部署完成。
将集群公网 kubeconfig 保存至本地默认路径:~/.kube/config
。
打开命令终端,将 Bookinfo 服务端口映射至本地端口 8090。
kubectl port-forward -n demo-ns svc/productpage 8090:80
在浏览器中输入http://localhost:8090/productpage
,可访问到以下页面。
配置 Nginx Ingress 对外暴露 Bookinfo 服务。具体操作可参见 配置 Nginx Ingress。
使用具有公网访问权限的 PC,在浏览器中输入 nginx 的 VIP + 路由规则/productpage
,可访问到以下页面。