Tech Stack
- Kubernetes
- Terraform
- Github Actions
- ArgoCD
- Kustomize
- Java/Node/Ruby/Python ...
本教程希望基于案例,通过学习 Terraform、ArgoCD 等技术来掌握 IaC、CI/CD 的实现方式,了解 I0 阶段如何搭建自动化、可重复执行、易于管理的不可变基础设施
此处使用 Minikube 搭建的本地集群来模拟线上集群,部分服务采用集群内搭建(如 Mongodb、Mysql、Jenkins)
- Github Fork 当前代码仓库
- 配置 Github Token,
export CR_PAT="ghp_xxxxxxxxx"
./scripts/setup_macos
安装必要工具和软件- 修改
config.properties
内容
通过 terraform 启动集群 和 安装必要软件
layer0,layer1
- 创建 manifest 文件
Github Actions
- image registry: Github Packages
- manifest repo: Github Repository
- 创建 namespace
- 部署 mysql (用 terraform 控制 k8s 文件)
- 将连接信息暴露成 secrets
通过 argocd 管理应用服务
- 进入 argocd,sync
qa 环境,不同的环境变量
stg 环境, mongo,不同的资源数量
- 管理多环境
prod 环境,使用 AWS/aliyun 作为底层 provider