如何定制自己的 Jenkins 镜像
· ☕ 6 分钟
1. 如何部署 Jenkins 为了方面进行下面的测试,先介绍两种部署 Jenkins 的方式,这里使用的是 shaowenchen/jenkins:2.277.4 镜像。在生产环境中,需要替换为官方 jenkins/jenkins 镜像或自己定制的镜像。 1.1 docker-compose 运行 docker-compose.yaml 文件 version: '3' services: jenkins: image: shaowenchen/jenkins:2.277.4 container_name: jenkins restart: always network_mode: "bridge" environment: - JAVA_OPTS="-Xms1Gi -Xmx4Gi" ports: - 8080:8080 - 50000:50000 - 2222:2222 environment: TZ: Asia/Shanghai volumes: - /Volumes/Data/jenkins_home:/var/jenkins_home 在本地创建一个目录 /Volumes/Data/jenkins_home 用于存储 Jenkins 的数据

Jenkins 在 Kubernetes 上的最佳实践
· ☕ 3 分钟
1. 配置较大的 -Xms -Xmx 参数 Jenkins 是由 Java 编写的编排引擎,在 Full GC 时会 Stop The World(STW)。在大规模构建时,STW 可能会导致 Jenkins 无法处理新的请求。 为了避免频繁的 STW,同时增大并发量,建议设置较大的堆,-Xms3g -Xmx6g -XX:MaxRAM=6g。具体数值可

一个通用流水线设计
· ☕ 5 分钟
1. 解耦引擎释放流水线能力 在设计系统时,我们常面临两难。是内敛复杂度,对外提供单一易用的功能;还是释放复杂度,将灵活归还用户。这非常考验产品能力。 设计 CICD 系统时,我们可以直接将 Jenkinsfile、PipelineRun 等概念直接抛给用户,让

Kubernetes 之网络隔离(内附十多种使用场景)
· ☕ 6 分钟
1. Kubernetes 中的网络隔离 Kuberntes 自 1.3 引入了 Network Policy(网络策略) ,通过 ipBlock、podSelector、namespaceSelector 定义实体,控制其 From(Ingress)、To(Egress)的流量行为。 但 Kubernetes 只是定义了网络策略,具体实

珍惜你遇到的蓝鲸
· ☕ 5 分钟
1. 我的平台建设经历 毕业之后,我加入了腾讯蓝鲸,主要参与 SaaS 的开发。待了近三年之后,回武汉老家,加入青云,负责 DevOps 的研发。待了近两年之后,加入新的公司,参与业务支撑平台建设,思考业务侧对 Kubernetes 的落地实践。 我写过很多关于平台的文档,领域输出才是 PaaS 的核心