Jenkins X 一瞥

时间:2022-06-26
本文章向大家介绍Jenkins X 一瞥,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

推出 Blue Ocean 之后,Jenkins 似乎沉默了很久,终于在 3.21 发布了名为Jenkins X的项目,这一项目对开发人员和云端的 CI/CD 环境之间的交互过程进行了审视和反思,结合自动化、工具链以及 DevOps 最佳实践。为开发团队提供了新的生产效率增长点。

项目动机

  • 作为一种发布形式,容器镜像因其精简、高效、低成本以及易用性等诸多好处,已经超越虚拟机成为首选的分发手段。
  • Kubernetes 成功的跨越各种平台、公有云的藩篱,成为容器云的标准,成为软件分发、安装和管理的工业标准的坚实基础。
  • 微服务和云原生应用成为主流,日益增长,需要有相对应的 CI/CD 提供支撑。

平台亮点

Jenkins X 解决的不仅仅是安装问题,其中还带有在云原生应用 CI/CD 平台方面的最佳实践。

强大的命令行工具

新的命令行工具jx,支持 OSX、Linux 平台,用接近 50 个命令,为用户提供了从集群安装、环境管理一直到应用发布的整个大环节的支持。甚至还贴心的提供了支持 Bash 以及 zsh 的自动完成能力。

列举几个有意思的命令:

  • jx create cluster:创建 Kubernetes 集群。
  • jx install:在 Kubernetes 上安装 Jenkins X。
  • jx create spring:创建 Spring boot 应用。
  • jx promote:将应用的制定版本升级到某环境。

完整的工具链整合

包括 Maven、Docker Registry、Monocular、CharMuseum 等工具的直接整合,并且内置了众多插件,各个服务之间的调用关系也已经设置完毕。常用的 Slave 构建、Mvn 构建、Git WebHook 等功能都会根据要求自动完成。

环境和 GitOps 支持

Jenkins X 将 Git 仓库、Kubernetes 命名空间、升级策略等内容结合在一起,成为了一个环境的定义,并且同 Github flow 结合在一起,让工作流程和环境切换有机结合,在工具链整合之外,又提供了工作流整合的完善支持。

例如 JX 的预览功能,在收到 Pull Request 时候,会根据这一请求构建镜像,并发布到用于预览的命名空间,同时还会在这一 Request 中注明预览环境就绪等待测试。

安装一下

先决条件

  • 工具
    • helm
    • kubectl
    • git
  • Kubernetes 集群
    • 互联网连接
    • Tiller
    • 公网 IP
  • github 账号

安装 jx

http://jenkins-x.io/getting-started/install/ 提供了几种系统下的安装说明:

  • OS X:brew tap jenkins-x/jx && brew tap jenkins-x/jx
  • Linux:curl -L https://github.com/jenkins-x/jx/releases/download/v1.1.10/jx-darwin-amd64.tar.gz | tar xzv && mv jx /usr/local/bin

jx install

jx create cluster 支持多种公有云的创建。

配置好集群和对应的 kubeconfig 访问之后,就可以使用jx install进行安装了。

过程中几个需要注意的点:

  • 如果 Tiller 的 SA 权限不足,会导致安装失败,可设置相应的 ClusterRole 进行解决。
  • 安装过程会修改 kubeconfig 文件,因此建议做好备份。
  • 为完整体验功能,建议听从安装器建议,安装 Ingress Controller。
  • Jenkins X 的环境管理以及代码拉取等功能需要和 Github 进行交互,因此会提问 GitHub 的 Token。
  • 安装过程相对较长,可以使用watch kubectl get pods -n jx查看进程状况。
  • 最后步骤会显示管理密码,注意复制保存。

安装完成

JX 会为用户建立三个环境分别是,Dev、Staging 以及 Production。

运行命令jx console,会打开浏览器进入 Jenkins 登录页面。

登录之后我们会看到正在进行构建,如果是一个排队状态,可能是因为正在创建 Worker Pod,可以使用kubectl查询具体情况。

构建完成,会看到这一示例中包含了拉取、构建、Helm、环境等几个步骤,可以作为工作的基础环节来进行使用。

应用

接下来就可以做几个善后工作

  1. jx 支持插件,可以通过jx get addons查看支持的插件列表,进行安装。
  2. 根据实际工作需要,对缺省环境进行调整,安装所需软件。
  3. 对 Jenkins X 中的软件、集群进行安全加固。
  4. 使用import或者create spring/create quickstart,进行项目工作。

最后要注意的一点是,Jenkins X 目前的升级频率非常高。不建议生产使用。