Knative提供了简单的应用模型,并且支持流量管理能力,支持根据流量百分比进行灰度发布。您可以通过云效实现Knative服务的持续交付,简化应用部署、灰度发布等操作,让您专注于业务开发。本文以基于Java代码构建Docker镜像、推送至ACR镜像仓库并部署到ACK集群为例,介绍如何通过云效实现Knative服务的持续交付。
前提条件
已在集群中部署Knative,请参见部署Knative。
已创建ACR镜像仓库,请参见创建个人版实例、使用企业版实例构建镜像、个人版和企业版实例差异化说明。
为了能够快速拉取镜像,建议ACK集群与ACR处于同一地域。若不在同一地域,请选择VPC公网地址。
步骤一:创建流水线
登录云效工作台,单击云效产品区域的流水线。
在流水线 Flow页面,单击新建流水线。在选择流水线模板对话框,选择如下模板,单击创建。
步骤二:配置代码源
在添加流水线源面板,选择代码源,单击添加。本文选择Flow提供的示例代码源。
步骤三:配置镜像构建任务
在构建区域,单击Java 构建Docker镜像并推送镜像仓库。在编辑面板,配置相关配置项。示例如下所示。
单击镜像构建并推送至阿里云仓库镜像个人版,选择地域和仓库,本示例选择的镜像仓库为个人版实例。
在标签文本框输入${DATETIME},表示以流水线触发时的时间戳作为镜像的标签,您也可以将分支名或者Tag作为镜像的标签。
在Dockerfile路径文本框输入Dockerfile。
在任务输出区域,您可以看到该任务输出的变量,这些变量会在后续的任务中引用。
步骤四:配置部署任务
在部署区域,单击Kubernetes发布。
在编辑面板,单击任务步骤下的Kubectl发布。单击集群连接右侧的新建连接。
在连接到Kubernetes集群对话框,集群类型选择容器服务集群,选择需要连接的集群,然后单击保存。
如果您没有进行过授权,可以单击去授权,完成集群授权后,再进行集群选择。
配置YAML路径。本文配置为app-configs/knative。
配置变量。单击变量右边的添加,选择上游任务 制品/镜像 下载地址,输入名称为image,选择镜像的VPC地址作为变量值。
在运行时,Flow会把YAML路径下所有文件中的${image}都替换成镜像的地址,然后再进行kubectl发布。
步骤五:运行流水线
单击页面右上方的保存并运行触发流水线。
在Knative产品页面,查看服务是否部署成功。
登录容器服务管理控制台。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
使用以下命令进行验证。
$ curl -H "Host: spring-boot-knative.default.example.com" http:{访问网关的地址}
预期输出结果如下所示,表明服务已经部署成功。
Greetings from Spring Boot! V4
相关文档
关于使用Knative时可能遇到的常见问题及对应的解决方案,请参见Knative FAQ。