2. NỘI DUNG CHƯƠNG TRÌNH
01
02
03
04
05
GITOPS LÀ GÌ?
NHỮNG TÁC DỤNG CỦA GITOPS
GITOPS HOẠT ĐỘNG NTN?
MÔ HÌNH TRIỂN KHAI THỰC TẾ VỚI ARGOCD
HỎI ĐÁP CÙNG CHUYÊN GIA
4. GIT LÀ GÌ?
Git là một hệ thống kiểm soát phân tán mã nguồn phân tán
(Open Source Distributed Version Control System/ hay DVCS).
Những tác dụng của Git:
▸ Quản lý code và lịch sử thay đổi
▸ Tiết kiệm thời gian
▸ Giúp làm việc nhóm hiệu quả hơn
5. GITOPS LÀ GÌ?
Quy trình triển khai gần với các nguyên tắc phát triển phần mềm
Là 1 phần mở rộng cho Infrastructure-as-Code, Continuous Delivery, GitOps tập
trung vào việc sử dụng Git làm source tin tưởng duy nhất cho hệ thống.
7. NHỮNG TÁC DỤNG CỦA GITOPS
Sử dụng các phương pháp hay nhất dành cho DevOps
Sử dụng các phương pháp hay nhất dành cho DevOps
Đơn giản hóa quản lý Kubernetes
Chuẩn hóa các quy trình cho doanh nghiệp
Xử lý và khôi phục lỗi dễ dàng và nhanh chóng hơn
Khả năng hiển thị tốt hơn trong vòng đời của các tính năng đã phát
triển
11. CÁC THÀNH PHẦN CỦA GITOPS
GitOps bao gồm 3 thành phần chính: GitOps = IaC + MRs + CI/CD
□ Infrastructure as Code
□ MRs
□ CI/CD
12. QUY TRÌNH LÀM VIỆC VỚI GITOPS
GitOps coi CI và CD là 2 quy trình riêng biệt, CI như là 1 quy trình phát triển còn CD như 1
quy trình triển khai. GitOps sẽ kết hợp cả 2 quy trình này lại với nhau.
Quy trình CD trong GitOps yêu cầu ít nhất 2 repo:
✔ Repo ứng dụng
✔ Repo cấu hình môi trường
15. TRIỂN KHAI THỰC TẾ VỚI ARGOCD
Argocd là gì?
Là GitOps CD tool dành riêng cho việc triển khai ứng dụng lên kubernetes. Argocd sử dụng mô
hình Pull-base Deployment, tập trung hoàn toàn vào quy trình Continuous Delivery (CD) tức là
tập trung vào quá trình triển khai ứng dụng lên các môi trường được định nghĩa sẵn. Đồng thời
hỗ trợ rất nhiều tính năng hữu ích của 1 công cụ GitOps:
✔ Hỗ trợ nhiều config management tool như Kustomize, helm, Ksonnet ... giúp cho việc triển
khai, quản lý trở nên dễ dàng hơn
✔ Có thể triển khai ứng dụng trên nhiều cluster. Tức là chỉ cần cài trên 1 cluster và có thể sử
dụng cho nhiều cluster
✔ Hỗ trợ rollback, roll-anywhere
✔ Hỗ trợ healthcheck, health status
✔ Hỗ trợ webhook
16. CÁC KHÁI NIỆM CẦN LƯU Ý KHI LÀM VIỆC VỚI ARGOCD
helm install release_name chart_path -f chart_path/values.yaml
❖ Name
❖ Sync policy
❖ Sync options
❖ Repository URL
❖ targetRevision
❖ Path
❖ Cluster URL
17. TRIỂN KHAI APPLICATION VỚI ARGOCD
Có thể triển khai application bằng cách thao tác trên giao diện web hoặc bằng kubernetes
manifest.
18. TRIỂN KHAI APPLICATION VỚI ARGOCD
Sau khi khởi tạo app xong, có thể tìm kiếm thông tin của app trên giao diện web hoặc qua giao
diện dòng lệnh như 2 hình minh họa dưới đây:
Tìm kiếm application thông qua
giao diện web
Tìm kiếm application thông qua
giao diện dòng lệnh
19.
20.
21. CÁC TRẠNG THÁI CỦA APPLICATION TRÊN ARGOCD
✔ OutOfSync
✔ Synced
✔ Unknown
22. THÊM CLUSTER MỚI
Các bước để thêm Cluster:
1. Download công cụ argocd
2. Đăng nhập vào argocd server bằng lệnh argocd login SERVER --username -- password
3. Thêm cluster bằng lệnh argocd cluster add CONTEXT
4. Kiểm tra đã thêm cluster thành công hay chưa
24. CÁC BƯỚC TRIỂN KHAI
1. Tạo repo chứa cấu hình hệ thống mong muốn (helm chart, kubernetes manifest) và
push cấu hình của ứng dụng lên git
2. Cài đặt Argocd trên 1 Kubernetes Cluster, có thể tích hợp với các Cluster khác nếu có
3. Tạo token trên git để Argocd có thể truy cập đến repo vừa tạo trên git (có thể sử dụng
ssh-key nhưng không được khuyến khích, khuyến khích sử dụng token với read-only)
4. Cấu hình Argocd kết nối đến repo trên git thông qua token vừa tạo
5. Tạo Application trên Argocd
6. Thiết lập CI cho repo chứa source code
25.
26. Khi quy trình CI chạy xong, 1 image mới sẽ được build và có 1 tag mới. Để Argocd có thể cập
nhật được image mới nhất cho ứng dụng, cần thay đổi cấu hình image của ứng dụng được lưu
trữ trên git.