利用 GitHub Actions 和 Jenkins 实现持续集成
1. 问题背景与解决方案
在容器化环境中运行 Jenkins 构建时,由于 Jenkins 控制器和代理以容器形式运行,并非完整的虚拟机,若要在容器内进行 Docker 构建,需以特权模式运行容器,但这存在安全风险,因为特权模式会使主机文件系统暴露给容器。为解决此问题,可使用如 Kaniko 这样的容器构建工具。Kaniko 由 Google 提供,能在无需访问 Docker 守护进程的情况下构建容器,甚至无需在容器中安装 Docker,是在 Kubernetes 集群中运行构建并创建可扩展 CI 环境的理想选择。
1.1 准备工作
- 注册 Google Kubernetes Engine(GKE) :Google Cloud 提供价值 300 美元、为期 90 天的免费试用,可在 此处 注册。
- 启动 GKE :注册并登录控制台后,打开 Google Cloud Shell CLI 执行以下命令:
- 启用 Kubernetes Engine API:
gcloud services enable container.googleapis.com
- 创建一个两节点的自动伸缩 GK