该文档介绍了如何使用Jenkins、Rancher和kubectl来实现Kubernetes(K8S)环境中的自动化发布流程。主要涉及的工具版本包括Jenkins 2.164、Rancher v2.3.5和kubectl v1.15.0。
在Jenkins中,自动化运维通常涉及构建Maven项目。这里的操作是通过执行`clean install -pl qs-saas-service/qs-saas-service-bi-system-am -Dmaven.test.skip=true`命令来打包项目,跳过了测试阶段。一旦打包完成,会触发一个名为`build.sh`的shell脚本。
`build.sh`脚本的核心任务是:
1. 设置环境变量`ENV`,例如此处为`dev`,指定了部署的目标环境。
2. 定义了JAR包的路径`PATH_JAR`,用于后续操作。
3. 获取当前时间戳作为Docker镜像的标签`DOCKER_TAG`,确保每次构建都是唯一的。
4. 指定Harbor(私有Docker Registry)的URL。
5. 设置Rancher的API URL以及访问令牌`RANCHER_TOKEN`,用于与Rancher API进行交互。
6. 提供Rancher项目的ID,用于确定应用所在的集群和命名空间。
7. 脚本的主要步骤包括:
- 将Jenkins工作区中的JAR文件复制到指定目录。
- 使用Docker构建镜像。
- 推送镜像到Harbor仓库。
- 删除本地的Docker镜像。
- 使用Rancher CLI登录并更新服务。
通过这种方式,Jenkins可以自动化地构建、打包、推送Docker镜像,并通过Rancher更新K8S集群中的应用实例。这种方式极大地提高了DevOps的效率,使得软件部署更加自动化和标准化。
整个流程中,Jenkins负责持续集成和构建,Rancher则用于管理和部署K8S集群中的应用,而kubectl作为一个命令行工具,可以用来与Kubernetes集群进行交互,如查询、创建、更新和删除资源。这样的组合为DevOps团队提供了一套强大的自动化发布解决方案。