CodePipeline流水线实现自动发布Serverless Kubernetes

本文涉及的产品
简介: 本文档以构建一个 Java 软件项目并部署到 阿里云容器服务Serverless Kubernetes集群 为例说明如何使用 CodePipeline。 使用说明 开通使用 CodePipeline 产品。

本文档以构建一个 Java 软件项目并部署到 阿里云容器服务Serverless Kubernetes集群 为例说明如何使用 CodePipeline。

使用说明

  • 开通使用 CodePipeline 产品。
  • 前往 RAM 进行 CodePipeline 默认角色的授权。

73c24c555b6904a5.png

操作步骤

新建项目

单击 新建,输入项目名称,选择 构建一个Java的软件项目 ,单击 下一步

代码构建配置

本页所有默认配置为CodePipeline为您提供的示例,快速体验可以直接单击 下一步

  • Repository 中配置的是仓库地址和证书,默认值是CodePipeline公开的Code仓库地址。
    1
  • Branches to build 中配置的是代码分支,默认值是master分支。
    2
  • 构建 中配置的是代码构建命令,默认值是mvn package -B -DskipTests
    3
  • 测试 中配置的是单元测试命令,默认值是mvn test。如果您不需要做单元测试,可以不填写测试命令。
    4

选择部署方式

选择部署方式,单击 部署到Kubernetes

配置 镜像构建和发布

  • 镜像仓库名称。镜像仓库名格式为namespace/镜像仓库名。
    repo
  • 镜像版本号。如果为空,则默认是latest。
    version
  • Registry地址。Registry地址 用来配置docker registry地址,如果为空,默认使用Docker hub registry ,https://index.docker.io/v1/;如果使用阿里云registry, 请填写https://registry.cn-beijing.aliyuncs.com/v2/,其中地域cn-beijing根据用户实际的镜像仓库地域来修改。
    registry
  • Registry证书。用来添加授权信息,请添加Registry授权类型的证书。
    registry credentials
  • Dockerfile路径。填写Dockerfile文件在该项目工作空间的相对路径。如果该配置为空,则默认使用工作空间目录下命名为Dockerfile的文件。
    Dockerfile

配置 部署Kubernetes

  • 选择 认证方式
    Serverless Kubernetes集群 均使用 证书认证 方式。

1

  • 填写 API服务器地址
    请输入 Serverless Kubernetes集群API服务器地址,您可以通过 阿里云容器服务控制台 -> Kubernetes集群列表 -> ${Serverless Kubernetes集群名称} -> 管理,找到 API Server连接端点。例如,c264313085e994df****508afcd25eee6.serverless-1.kubernetes.cn-shanghai.aliyuncs.com:6443。在该字符串头部添加https:// 作为Codepipeline的API服务器地址。例如,https://c264313085e994df****508afcd25eee6.serverless-1.kubernetes.cn-shanghai.aliyuncs.com:6443

1

  • 添加并使用 Docker授权 类型的证书。
    3.png

如果是阿里云容器服务Serverless Kubernetes集群,请把控制台提供的 集群凭据 保存到本机 ~/.kube/config。如下图所示内容。
2

接着在本机执行cat ~/.kube/config |grep client-key-data |awk -F ' ' '{print $2}' | base64 -d > client.key,把client.key文件的内容填入 客户端Key 对话框。

执行cat ~/.kube/config |grep client-certificate-data |awk -F ' ' '{print $2}' | base64 -d > client.crt, 把client.crt文件的内容填入 客户端证书 对话框。

  • 添加 部署配置文件

输入yaml格式的Kubernetes部署配置文件。
如果文件在当前项目的workspace下,请直接输入文件名,如果在项目workspace的子目录中,请输入 ..子目录/文件名。
不支持位于当前项目的workspace之外的文件。
6

  • 添加 状态检查配置

支持检验的 Kubernetes Kind: pods,deployments
请用 ":" 分隔 Kubernetes Kind 和 Kind name, 用 "," 分隔多个 Kind name。每一行描述一种 Kubernetes Kind。
示例配置:

pods:pods1,pods2
deployments:ds1,ds2

3

注意:

  1. 请严格按照说明填写单词,不要删减字母;请勿填写多余的空格或者换行。
  2. Serverless Kubernetes集群只支持default namespace。
  3. 更多Serverless Kubernetes集群功能支持请参考 Serverless Kubernetes集群文档
  • 添加 变量申明配置

支持系统环境变量,可以通过 ${JENKINS_URL}/env-vars.html/ 查看。
如果使用了多个变量,请用","分隔。
您可以在上文的部署配置文件中使用变量,请以 ${BUILD_NUMBER} 格式严格填写,其他格式插件将忽略。
示例:
BUILD_NUMBER,JOB_NAME
8

  • 单击 下一步
  • 检查所有配置信息,单击 提交

参数化构建配置

如果需要在构建过程中使用一些动态变量,请参考 注入环境变量文档。下面我们将具体描述如何使用注入环境变量插件,来配置时间戳作为镜像标签。

  • 首先,在代码根目录下准备一个 env.properties 文件。
  • 添加一个 执行shell脚本 的构建步骤 作为构建步骤的第一步,使用鼠标拖拽到最前面。添加如下脚本:
TIME=`date +%Y%m%d%H%M%S`
echo TAG=$TIME >> env.properties
cat env.properties

15

  • 添加一个 注入环境变量 的构建步骤 作为构建步骤的第二步,同样使用鼠标拖拽到第二个位置。配置 env.properties 作为变量文件。
    16
  • 修改 镜像构建和发布 构建步骤配置。把 镜像版本号 改成上文中设置的参数$TAG
    17
  • 修改 部署Kubernetes(新)构建步骤配置。在 变量申明配置 中把BUILD_NUMBER 修改成 TAG。
    18
  • 修改 源代码中 部署配置文件 中的镜像版本号为${TAG}。例如:
    19

执行构建

  • 完成项目的任务配置后,可以单击左侧导航栏中的 立即构建,开始执行配置中的构建及部署命令。
    build
  • 您可以在构建队列及构建历史中查看构建状态。单击 构建序号,进入该次构建具体信息页面。
    history
  • 然后在侧导航中,单击 控制台输出,可以查看该次构建日志。
    output
相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
2天前
|
Kubernetes 前端开发 Serverless
Serverless 应用引擎产品使用合集之如何调用Kubernetes集群内服务
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
29天前
|
Kubernetes 安全 Serverless
破茧成蝶 - Serverless Kubernetes 的思考与征程(二)
本文将针对 Serverless Container 技术的特殊性,分享其对 Kubernetes 的架构影响,以及阿里云在Serverless Kubernetes方面架构选择。
138 1
|
29天前
|
Kubernetes 安全 Serverless
没有银弹,只有取舍 - Serverless Kubernetes 的思考与征程(一)
Kubernetes作为云原生计算的基础项目,已经在开发者和企业中获得广泛的支持。然而其自身复杂性和陡峭的学习曲线依然让人望而生畏。在 CNCF 2020年度调研报告中,在Kubernetes技术落地过程中面临最大的挑战就是复杂性。
|
29天前
|
人工智能 监控 Serverless
如何基于ACK Serverless快速部署AI推理服务
通过上述步骤,可以在ACK Serverless上快速部署AI推理服务,实现高可用、弹性扩展的服务架构。
234 1
|
29天前
|
弹性计算 Kubernetes Serverless
Serverless 版 ACK Serverless 是
阿里云容器服务 Serverless 版 ACK Serverless 是一种基于弹性计算基础架构的容器服务,它兼容 Kubernetes 生态,允许用户在无需管理和维护集群的情况下,快速创建和部署容器化应用程序。ACK Serverless 根据应用程序实际使用的 CPU 和内存资源量进行按需付费,使您能够更专注于应用程序本身,而无需担心底层基础设施。
126 2
|
12天前
|
Kubernetes 微服务 容器
Aspire项目发布到远程k8s集群
Aspire项目发布到远程k8s集群
47 2
Aspire项目发布到远程k8s集群
|
16天前
|
存储 运维 监控
Kubernetes 集群监控与日志管理实践
【5月更文挑战第28天】在微服务架构日益普及的当下,容器编排工具如 Kubernetes 已成为运维工作的核心。有效的集群监控和日志管理是确保系统稳定性和服务可靠性的关键。本文将深入探讨 Kubernetes 集群的监控策略,以及如何利用现有的工具进行日志收集、存储和分析,以实现对集群健康状况的实时掌握和问题快速定位。
|
17天前
|
存储 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【5月更文挑战第27天】 在微服务架构日益普及的当下,容器化技术与编排工具如Kubernetes已成为现代云原生应用的基石。然而,随着集群规模的不断扩大和复杂性的增加,如何有效监控和管理这些动态变化的服务成为了维护系统稳定性的关键。本文将深入探讨Kubernetes环境下的监控策略和日志管理的最佳实践,旨在为运维人员提供一套系统的解决思路,确保应用性能的最优化和问题的快速定位。
|
2天前
|
Kubernetes 数据处理 调度
天呐!部署 Kubernetes 模式的 Havenask 集群太震撼了!
【6月更文挑战第11天】Kubernetes 与 Havenask 集群结合,打造高效智能的数据处理解决方案。Kubernetes 如指挥家精准调度资源,Havenask 快速响应查询,简化复杂任务,优化资源管理。通过搭建 Kubernetes 环境并配置 Havenask,实现高可扩展性和容错性,保障服务连续性。开发者因此能专注业务逻辑,享受自动化基础设施管理带来的便利。这项创新技术组合引领未来,开启数据处理新篇章。拥抱技术新时代!
|
13天前
|
运维 Kubernetes 调度
【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路
【kubernetes】关于k8s集群的污点、容忍、驱逐以及k8s集群故障排查思路

热门文章

最新文章

相关产品

  • 函数计算
  • 推荐镜像

    更多