BpFile(id=297, bpId=165, name=基于k8s多集群隔离环境下的devops实现, author=null, keyword=ACK、DevOps、混合云、kubernetes、容器、ACR, description=DevOps是一组过程、方法与系统的统称,并通过工具实现自动化部署,确保部署任务的可重复性、减少部署出错的可能性。随着微服务、中台架构的兴起,devops重要性日益显著。 本方案使用两个独立的k8s集群:用户已有的k8s模拟测试,ack集群模拟生产环境,保证环境的高度隔离,互不影响。通过gitlab+Jenkins的黄金组合,实现实现容器应用的自动化构建和持续部署,提高迭代效率。, position=null, ossUrl=bp-K8DE6USPABUHV5VG.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=1, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
场景描述
DevOps是一组过程、方法与系统
的统称,并通过工具实现自动化部署,
确保部署任务的可重复性、减少部署出
错的可能性。随着微服务、中台架构的
兴起,devops重要性日益显著。
本方案使用两个独立的k8s集群:
用户已有的k8s模拟测试,ack集群模
拟生产环境,保证环境的高度隔离,互
不影响。通过gitlab+Jenkins的黄金组
合,实现容器应用的自动化构建和持续
部署,提高迭代效率。
解决问题
1.微服务应用的CI/CD。
2.测试和生产环境的高度隔离。
3.自动化的测试与部署。
4.现有CI对接ACK。
产品列表
⚫专有网络VPC
⚫容器服务ACK
⚫容器镜像服务ACR
⚫弹性公网IP
⚫负载均衡SLB
, templateId=IV4URH23XKA0363F, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=IV4URH23XKA0363F, partner=null, partnerUrl=null, partnerLogo=null, cooperation=96, cooperationList=null)
1
基于 K8S多集群隔离环境下的 DevOps实现 最佳实践
业务架构 场景描述
DevOps 是一组过程、方法与系统的统
称,并通过工具实现自动化部署,确保部署任
务的可重复性、减少部署出错的可能性。随着
微服务、中台架构的兴起,devops重要性日
益显著。
本方案使用两个独立的 k8s集群:用户已
有的 k8s模拟测试,ack集群模拟生产环境,
保证环境的高度隔离,互不影响。通过
gitlab+Jenkins的黄金组合,实现容器应用的
自动化构建和持续部署,提高迭代效率。
解决问题
产品列表
1. 微服务应用的 CI/CD。
⚫ 专有网络 VPC
2. 测试和生产环境的高度隔离。
⚫ 容器服务 ACK
3. 自动化的测试与部署。
⚫ 容器镜像服务 ACR
4. 现有 CI对接 ACK。
⚫ 弹性公网 IP
⚫ 负载均衡 SLB
阿里云最佳实践技术分享群
最佳实践频道
2
阿里云
企业上云实践
基于 K8S多集群隔离环境下的
DevOps实现
最佳实践
文档版本:20210813
文档版本:20150122(发布日期) II
3基于 K8S多集群隔离环境下的 DevOps实现 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 基于 K8S多集群隔离环境下的 DevOps实现
文档编号 165
文档版本 V1.0
版本日期 2021-08-13
文档状态
制作人 川知
审阅人 -
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2021-08-13 川知 - 创建
文档版本:20210813 I
4基于 K8S多集群隔离环境下的 DevOps实现 前言
前言
概述
本文简介了使用传统的 Gitlab+jenkins的组合实现持续集成,并对接阿里云的容器服
务 ACK,实现应用的自动化部署、升级,同时满足测试与生产环境的高度隔离。本文
以第三方开源项目 Piggymetrics为例,提供了从源码编译、镜像构建、应用测试、生
产上线的全流程,同时也介绍了如何通过 ACK管理自有 kubernetes集群。帮助用户
更快、更灵活的上云解决方案。
名词解释
⚫ 容器服务 Kubernetes版(ACK):简化集群的搭建和扩容等运维工作,整合阿里云
虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes容器化应用运行环
境,为您提供专业的容器支持和服务。
详情请参见:https://www.aliyun.com/product/kubernetes
⚫ 容器镜像服务(ACR):安全的应用镜像托管能力、精确的镜像安全扫描功能、稳
定的国内外镜像构建服务以及便捷的镜像授权功能,从而方便用户进行镜像全生
命周期管理。
详情请参见:https://www.aliyun.com/product/acr
⚫ VPC:Virtual Private Cloud,简称 VPC。基于阿里云创建的自定义私有网络, 不
同的专有网络之间二层逻辑隔离,可以在自己创建的专有网络内创建和管理云产
品实例,比如 ECS、负载均衡、RDS等。在创建前,您需要结合具体业务,规划
VPC和交换机的数量及网段等。
详情请参见:https://www.aliyun.com/product/vpc
⚫ 弹性公网 IP(EIP):独立的公网 IP资源,可以绑定到阿里云专有网络 VPC类型
的 ECS、NAT网关、私网负载均衡 SLB上,并可以动态解绑,实现公网 IP和
ECS、NAT网关、SLB的解耦,满足灵活管理的要求。
详情请参见:https://www.aliyun.com/product/eip
文档版本:20210813 III
5基于 K8S多集群隔离环境下的 DevOps实现 目录
目录
文档版本信息 .............................................................................................................................................................. I
法律声明 ..................................................................................................................................................................... II
前言 ............................................................................................................................................................................ III
目录 ............................................................................................................................................................................ IV
最佳实践概述 ............................................................................................................................................................. 1
前置条件 ..................................................................................................................................................................... 3
准备工作 ..................................................................................................................................................................... 4
1. 通过 CADT创建资源...................................................................................................................................... 4
2. 安装指定版本的 docker ................................................................................................................................ 5
3. GitLab安装及配置 .......................................................................................................................................... 7
4. Jenkins安装及配置 ......................................................................................................................................... 8
1. 创建容器镜像服务 ........................................................................................................................................... 11
1.1. 创建命名空间 ................................................................................................................................... 11
1.2. 创建镜像仓库 ................................................................................................................................... 11
1.3. 访问凭证配置 ................................................................................................................................... 13
2. 托管 K8S集群 ................................................................................................................................................... 14
2.1. 创建 VPC ............................................................................................................................................ 14
2.2. 创建注册集群代理 ........................................................................................................................... 16
2.3. 注册托管集群 ................................................................................................................................... 17
2.4. 创建镜像拉取密钥 ........................................................................................................................... 18
3. 项目源码准备 ................................................................................................................................................... 20
3.1. PiggyMetrics简介.............................................................................................................................. 20
3.2. PiggyMetrics项目结构及改造 .......................................................................................................... 20
4. 持续集成及持续部署 ....................................................................................................................................... 29
4.1. Jenkins pipeline配置 ......................................................................................................................... 29
4.1.1. Jenkins插件安装 ....................................................................................................................... 29
4.1.2. 配置 Gitlab hook ........................................................................................................................ 29
4.1.3. 邮件通知配置 ........................................................................................................................... 32
4.2. 凭据配置 ........................................................................................................................................... 33
4.3. Pipeline脚本编写 ............................................................................................................................. 35
4.3.1. 脚本逻辑架构 ........................................................................................................................... 35
4.3.2. 流水线配置 pipeline ................................................................................................................. 38
4.4. 持续构建、部署 ............................................................................................................................... 39
文档版本:20210813 IV
6基于 K8S多集群隔离环境下的 DevOps实现 最佳实践概述
最佳实践概述
场景描述
DevOps 是一组过程、方法与系统的统称,并通过工具实现自动化部署,确保部署任
务的可重复性、减少部署出错的可能性。随着微服务、中台架构的兴起,devops重要
性日益显著。
本方案使用两个独立的 kubernetes集群,模拟测试、生产环境,保证环境的高度隔离,
互不影响。通过 gitlab+Jenkins的黄金组合,实现容器应用的自动化构建和持续部署,
提供了从源码编译、镜像构建、应用测试、生产上线的全流程示例。
适用描述
⚫ 微服务 CI/CD
⚫ 自动化测试/部署
⚫ 自有 k8s集群托管
方案架构
文档版本:20210813 1
7基于 K8S多集群隔离环境下的 DevOps实现 最佳实践概述
资源架构
ᅳ ecs_ci:部署 jenkins、gitlab等 CI组件;
ᅳ manual-k8s-ecs:模拟自建 k8s,用于托管集群示例;
ᅳ devops-release:ACK容器集群,用于模拟生产的容器的集群。
方案优势
⚫ 全自动化构建、部署,提高部署效率,提高交付效率;
⚫ 应用容器化部署,做到一次构建、四处运行;
⚫ 多 k8s集群,保证测试、生产环境的完全隔离。
文档版本:20210813 2
8基于 K8S多集群隔离环境下的 DevOps实现 前置条件
前置条件
为了顺利完成本实践,您需要提前完成以下准备工作:
⚫ 注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页
面(https://account.console.aliyun.com/v2/#/authc/home)查看是否已经完成实名
认证。
⚫ 阿里云账户余额大于 100 元。您可以登录阿里云控制台,并前往账户总览页面
(https://expense.console.aliyun.com/#/account/home)查看账户余额。
文档版本:20210813 3