Jenkins X介绍及安装

2018/09/12 15:47
阅读数 196

 

Jenkins X 是一个高度集成化的 CI/CD 平台,基于 Jenkins 和 Kubernetes 实现,旨在解决微服务体系架构下的云原生应用的持续交付的问题,简化整个云原生应用的开发、运行和部署过程。

 

Jenkins X 核心组件

 

 

Jenkins

 

Jenkins X 不是一个全新的 Jenkins。

 

它依然使用 Jenkins 作为持续交付的核心引擎,实际上 Jenkins X 作为 Jenkins 的一个子项目存在,专注于云原生应用的 CI/CD 实现,同时也帮助 Jenkins 自身完成云原生应用的转型,毕竟现在越来越多的人在诟病单体应用的设计和文件存储系统。

 

HELM

 

Helm 是用于管理 Kubernetes 资源对象的工具,类似 APT,YUM 和 HOMEBREW,它通过将 Kubernetes 的资源对象打包成 Chart 的形式,完成复杂应用的部署和版本控制,是目前业界流行的解决方案

 

DRAFT

 

Draft 是自动化应用构建和运行在 Kubernetes 上面的工具,具有语言识别能力,能够自动生成构建脚本,依赖,环境并打包成 Docker 镜像并部署在 Kubernetes 集群上,加快代码开发节奏,而无需关心基础设施层面的技术实现

 

GitOps

 

GitOps 是 Weaveworks 推出的天才的应用部署解决方案,它将 Git 作为整个应用部署的单一可信数据源(SSOT),通过类似代码开发的 Pull Request 流程完成应用部署的 Review 和自动化实现,并且将部署配置信息纳入版本控制。

  

Jenkins X 部分新特性

1. 自动化一切:自动化CI/CD流水线

  1. 选择项目类型自动生成Jenkinsfile定义流水线

  2. 自动生成Dockerfile并打包容器镜像

  3. 自动创建Helm Chart并运行在Kubernetes集群

  4. 自动关联代码库和流水线,作为代码变更自动触发(基于Webhook实现)

  5. 自动版本号自动归档

2. Review代码一键部署应用:基于GitOps的环境部署

  1. 所有的环境,应用列表,版本,配置信息统一放在代码库中进行版本控制

  2. 通过Pull Request实现研发和运维的协同,完成应用部署升级(Promotion)

  3. 可自动部署和手动部署,在必要的时候增加手工Review

  4. 当然这些都封装在jx命令中实现

3. 自动生成预览环境和信息同步反馈

  1. 预览环境用于代码Review环节中临时创建

  2. 同Pull Request工作流程集成并实现信息同步和有效通知

  3. 验证完毕后自动清理

  4. 提交和应用状态自动同步到Github注释

  5. 自动生成release notes信息供验证

 

Jenkins X安装---以linux为例

1.在本地安装jx命令行工具

 

#curl -L https://github.com/jenkins-x/jx/releases/download/v1.1.40/jx-linux-amd64.tar.gz | tar xzv 
#mv jx /usr/local/bin

2.使用jx创建一个k8s集群,并自动安装Jenkins X(http://jenkins-x.io/getting-started/create-cluster/)或在已经存在的k8s集群上安装Jenkns x(http://jenkins-x.io/getting-started/install-on-cluster/)

  通过已存在的k8s上安装只需要执行 #jx install即可

这里说下使用JX创建一个k8s集群安装jenkins X的注意点:

.执行命令#jx create cluster minikube 会默认下载minikube,kubectl和helm到~/.jx/bin目录下,所以这里需要将该路径加入到系统PATH下;

.安装一款虚拟机软件支持kvm,virtualbox,no(使用docker的话选此选项,注意一定要为其指定专门的网桥)

.根据提示输入内存(默认4096M)输入CPU核数(默认3),选择虚拟机,确定会自动下载Minikube ISO(142.22M)并启动虚拟机加载该镜像。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部