0
0
Lập trình
Thaycacac
Thaycacac thaycacac

[ArgoCD] Phần 1: Hướng Dẫn Cài Đặt và Giới Thiệu ArgoCD cho GitOps trên Kubernetes

Đăng vào 1 tuần trước

• 4 phút đọc

[ArgoCD] Phần 1: Hướng Dẫn Cài Đặt và Giới Thiệu ArgoCD cho GitOps trên Kubernetes

👋 Xin chào tất cả các bạn! Chào mừng các bạn đến với chuỗi bài viết về ArgoCD, nơi chúng ta sẽ tìm hiểu cách sử dụng ArgoCD để triển khai GitOps cho hệ thống Kubernetes của mình.

Giới Thiệu về GitOps

Trong phần này, chúng ta sẽ khám phá cách triển khai GitOps cho một cụm Kubernetes (K8s). GitOps là một phương pháp quản lý cấu hình hệ thống thông qua Git Repository. Phương pháp này cho phép chúng ta lưu trữ cấu hình hệ thống trong Git, bao gồm cả thông tin nhạy cảm, và tự động cập nhật hệ thống khi có thay đổi trong repository. Một số công cụ phổ biến hiện nay để thực hiện GitOps bao gồm: ArgoCDFluxCD. Trong bài viết này, chúng ta sẽ tập trung vào ArgoCD.

Yêu Cầu Cần Có

Trước khi bắt đầu, hãy đảm bảo bạn đã có:

  • Kiến thức cơ bản và thành thạo về GitGitHub.
  • Kiến thức cơ bản về Kubernetes.

ArgoCD Là Gì?

ArgoCD là một dự án mã nguồn mở trong hệ sinh thái Argo, đi kèm với các công cụ khác như Argo Workflows, Argo EventsArgo Rollouts. ArgoCD được thiết kế để triển khai GitOps cho Kubernetes, giúp thực hiện triển khai liên tục (Continuous Deployment) và tự động đồng bộ hóa cấu hình từ Git Repository, đảm bảo trạng thái của hệ thống K8s phù hợp với những gì đã được cam kết trên Git.

ArgoCD hỗ trợ nhiều công cụ khác nhau như Helm, Kustomize, jsonnet và các file YAML thông thường của K8s, đi kèm với giao diện người dùng trực quan giúp người dùng dễ dàng theo dõi trạng thái ứng dụng qua trình duyệt.

Cơ Chế Hoạt Động Của ArgoCD

ArgoCD hoạt động dựa trên mô hình client và server. Cụ thể:

  • Các file cấu hình (YAML, Helm Chart, Kustomize) được lưu trữ trên Git Repository.
  • Bạn sử dụng UI hoặc CLI (argocd) để khai báo Application cho ArgoCD Server.
  • Application là CRD (Custom Resource Definition) mô tả thông tin về source repo cần theo dõi.
  • ArgoCD tự động theo dõi trạng thái của source repo và cập nhật hệ thống theo cấu hình mong muốn.
  • Mặc định, ArgoCD sẽ kiểm tra thay đổi trên source repo mỗi 3 phút. Nếu bạn bật webhook, các thay đổi mới sẽ được áp dụng ngay lập tức.

Lưu Ý: Các thay đổi trên UI của ArgoCD sẽ không được lưu lên Git Repository. ArgoCD sẽ tự động cập nhật hệ thống theo cấu hình trong source repo.

Cài Đặt ArgoCD

Chúng ta sẽ thực hiện cài đặt ArgoCD vào K8s cluster sử dụng Helm. Cluster này được tạo bằng kind, bao gồm 1 control plane và 2 worker nodes. Để tạo cluster với kind, bạn có thể tham khảo bài viết trước của mình.

Cài Đặt ArgoCD Server

Sử dụng lệnh sau để cài đặt ArgoCD server qua Helm với các giá trị mặc định:

Copy
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
helm upgrade --install argocd argo/argo-cd -n argocd --create-namespace

Sau khi lệnh trên được thực hiện, hãy kiểm tra trạng thái của các pod trong namespace argocd:

Copy
kubectl -n argocd get pod

Sau khi cài đặt xong, bạn có thể lấy password để truy cập vào UI của ArgoCD:

Copy
kubectl get secret argocd-initial-admin-secret -ojsonpath={.data.password} | base64 --decode

Sử dụng port-forwarding để mở cổng truy cập vào UI tại https://localhost:8080:

Copy
kubectl port-forward -n argocd svc/argocd-server 8080:443

Cài Đặt ArgoCD CLI

Cài đặt ArgoCD CLI bằng Homebrew:

Copy
brew install argocd

Đăng nhập vào CLI:

Copy
argocd login localhost:8080

Kiểm tra thông tin ứng dụng:

Copy
argocd app list --grpc-web

Tạo Application

Chúng ta sẽ sử dụng một ứng dụng mẫu từ repository https://github.com/argoproj/argocd-example-apps.git. Để tạo Application cho guestbook, sử dụng lệnh sau:

Copy
argocd app create guestbook \
  --repo https://github.com/argoproj/argocd-example-apps.git \
  --path guestbook \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace default \
  --grpc-web

Sau khi tạo xong, màn hình sẽ hiển thị các trạng thái của ứng dụng. Chúng ta cần đồng bộ cấu hình từ Git về K8s bằng lệnh:

Copy
argocd app sync guestbook

Tổng Kết

  • Chúng ta đã cài đặt ArgoCD vào cluster với Helm.
  • Đã tạo Application tên là guestbook thông qua CLI.
  • Đồng bộ thành công các cấu hình về cluster bằng cách thủ công.

Bước Tiếp Theo

  • Cấu hình xác thực cho ArgoCD kết nối đến Private Repository.
  • Tạo Application để ArgoCD tự theo dõi và triển khai các ứng dụng trong cluster.

Cảm ơn các bạn đã theo dõi bài viết! Hãy ủng hộ mình bằng cách like và subscribe DevSuccess101 trên các nền tảng yêu thích của bạn nhé. Các liên kết tham khảo bên dưới:

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào