## Argo
CD 搭配 Kustomize 實作 GitOps 部署 周育緯
## About me
• III DevOps contributor
•8 年 System, DevOps 與 Backend 開發與維護經驗
•資展國際、工研院: Kubernetes, DevOps 講師
## GitOps
•雲原生 Continuous Deployment
•所有部署都使用聲明式(declarative)腳本 •https://github.com/demoyuw/k8s-summit-
cd-repository.git
• Git clone
https://github.com/demoyuw/k8s-summit-
cd-repository.git
•
cd k8s-summit-
cd-repository
demoyuw@vm1:~/k8s-summit-
cd-repository$ tree
base
flask-api-deploy -
## 部署出dev deployment and service env
| demoyuw@vm1:~/k8s-summit-cd-repository$ | kubectl get all |
| NAME | READY | STATUS 0 码力 |
24 页 |
696.06 KB
| 2 年前 3 Аллокатор по другому выделяет память
> Сделали запрос конечным
> Выполняем в цикле
## Προ CI
## CI в ClickHouse раньше
## Внутренняя инсталляция Jenkins
> Железные хосты
> Сборки под разные Проблемы старого CI
## Недостатки Jenkins:
> Не тестировались внешние пулл реквесты
> Не было возможности запуска тяжелых тестов
> Сборки не сохранялись
## Проблемы старого CI
## Недостатки программирование на HTML
> Не самый приятный интерфейс
> Система плагинов
## Проблемы старого CI
## Недостатки Jenkins:
> Не тестировались внешние пулл реквесты
> Не было возможности запуска 0 码力 |
84 页 |
9.60 MB
| 2 年前 3 大中台意识薄弱,各业务线重复工作多
跨基础设施的集成与测试困难
## 基于Kubernetes平台概览
• IaaS : AWS、OpenStack与物理机
- PaaS:基于Kubernetes私有云平台,支持CI/CD、配置管理、基于Helm的服务编排等
API
Release Management
Logging
Monitoring
Security

## 基于Kubernetes的应用部署最佳实践
• 构建Docker镜像最佳实践
- 基于Helm的应用模板抽象
- 基于Kubernetes的 CI/CD
## 构建Docker镜像最佳实践
预期
快速构建镜像
更快拉取镜像
节约存储空间
实践
使用微镜像
减少镜像层数
避免不必要包安装
复用Cache
使用Volume
清理yum/apk name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:
## 基于Kubernetes的 CI/CD 从持续集成到持续交付过程图示
- 将源代码、配置、脚本放于Git做版本控制
- 各Repo做定期同步
- 通过promote tag筛选发布候选版本
• 服务部署后做自动化post check 0 码力 |
28 页 |
12.18 MB
| 2 年前 3 = IaC + MRs + CI/CD
## GitLab說的
## GitOps = IaC + MRs + CI/CD
## I nfrastructure as Code
Infrastructure
System Configuration
Application Configuration
## GitOps = IaC + MRs + CI/CD
## Merge Requests request approved. Approved by
## GitOps = IaC + MRs + CI/CD
Continuous Integration
## Continuous Delivery
And Automation
## GitOps = IaC + MRs + CI/CD
## DevOps
## 範例分享

檢查 .gitlab-ci.yml
產生 CI/CD Pipeline
Terraform
Ansible
Vault
Repository

## 上线
利用 Amphitheatre 配置文件,执行标准 CI/CD 工作流,轻松发布!
## 起因:开发者之痛
技术栈杂多
开发工程师需要在本机安装各种编程语言的运行时和相关的框架以及库,随着业务规模的增长,多语言多版本的维护和管理变得越来越复杂。
研发流程繁长 Action::requeue(Duration::from_secs(60)) }
## GitHub CI Runner 太慢?
## ← Build & Publish Images
![Image](/uploads/documents/1/2/c/7/12c724d64a98f917f 项目的依赖项;
• Github Actions Matrix 矩阵构建 amd64 / arm64 等多架构镜像;
- 利用 Github Actions Cache Management 缓存能力,加速 CI 执行速度;
• 跨多运行器分布式构建 Docker 镜像;
• Github Actions 自建运行器;
## 参考实例:
• https://github.com/amphitheat 0 码力 |
34 页 |
10.81 MB
| 2 年前 3
|