0

Series ArgoCD Thực chiến #2: "Triệu hồi" ArgoCD lên K8s & Cú bắt tay lịch sử với Git

1. Triệu hồi ArgoCD vào cụm Kubernetes

Để thực hành bài này, tôi giả định bạn đã có sẵn một cụm K8s (có thể là Minikube, Docker Desktop trên máy Local, hoặc một cụm EKS/GKE thật trên Cloud) và đã cài đặt công cụ kubectl trên Terminal.

ArgoCD được cài đặt cực kỳ gọn gàng. Bạn chỉ cần chạy đúng 2 dòng lệnh sau:

Bước 1: Tạo một "khu phố" (Namespace) riêng cho ArgoCD:

kubectl create namespace argocd

Bước 2: Triển khai toàn bộ bản vẽ kiến trúc của ArgoCD từ kho chính thức:

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Ngay sau khi chạy lệnh này, Kubernetes sẽ hối hả kéo các Docker Image của ArgoCD về và khởi chạy. Để xem tiến độ, bạn dùng lệnh:

kubectl get pods -n argocd -w

Khi thấy tất cả các Pod (đặc biệt là argocd-server, argocd-repo-server, argocd-application-controller) đều chuyển sang trạng thái Running, xin chúc mừng! ArgoCD đã chính thức "nhập trạch".

2. Mở cổng và lấy "Chìa khóa vạn năng" (Admin Password)

Mặc định, ArgoCD không mở cổng ra ngoài Internet để đảm bảo an toàn. Vì chúng ta đang ở bước thiết lập, hãy dùng tính năng Port-forward của K8s để đục một lỗ nhỏ từ máy tính của bạn thẳng vào trong cụm:

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

Lưu ý: Đừng tắt Terminal này, hãy mở một tab Terminal mới để làm các bước tiếp theo.

Bây giờ, bạn có thể mở trình duyệt và truy cập: https://localhost:8080. Màn hình đăng nhập siêu ngầu của ArgoCD sẽ hiện ra.

  • Username mặc định là: admin
  • Password đang bị giấu trong một Secret của K8s. Để lấy nó ra, bạn chạy lệnh sau (ở tab Terminal mới):
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

Lệnh này sẽ nhả ra một chuỗi ký tự ngẫu nhiên. Copy chuỗi đó, dán vào ô Password và đăng nhập!

(Mẹo thực chiến: Ngay khi vào được bên trong, hãy vào mục User Info để đổi lại mật khẩu cho dễ nhớ nhé).

3. Cú bắt tay bảo mật: Kết nối ArgoCD với Git Repository

ArgoCD đã sống, nhưng nó đang bị "mù". Nó chưa biết phải nhìn vào kho Git nào để lấy file cấu hình.

Giả sử dự án hệ thống soát vé Metro (AFC) của bạn đang nằm trên một Private Repo tại GitLab hoặc GitHub. ArgoCD cần một Personal Access Token (PAT) hoặc SSH Key để có quyền đọc kho code đó.

Hãy làm theo các bước kéo-thả cực kỳ trực quan trên UI:

  1. Ở thanh menu bên trái, chọn biểu tượng bánh răng Settings.
  2. Chọn Repositories ➔ Bấm nút + CONNECT REPO.
  3. Điền các thông tin sau:
  • Choose connection method: Chọn HTTPS (dễ dùng nhất cho người mới).
  • Type: git
  • Repository URL: Dán link kho code của bạn (VD: https://github.com/hieu-nguyen/afc-k8s-manifests.git).
  • Username: Tên đăng nhập GitHub/GitLab của bạn.
  • Password: Dán cái Personal Access Token (PAT) mà bạn đã tạo trên GitHub/GitLab vào đây (Tuyệt đối không dùng mật khẩu tài khoản thật).
  1. Bấm CONNECT.

Nếu kết nối thành công, ArgoCD sẽ hiển thị chữ Successful màu xanh lá cây cực kỳ thỏa mãn. Cú bắt tay lịch sử đã hoàn tất! Từ giây phút này, ArgoCD đã có đặc quyền "đọc trộm" mọi thay đổi bạn đẩy lên kho Git này.

Tổng kết Bài 2

Khởi đầu với GitOps thật sự nhẹ nhàng phải không? Chỉ với vài dòng lệnh kubectl, bạn đã dựng lên một bộ máy triển khai tự động (Continuous Deployment) cực kỳ xịn sò, an toàn và hoàn toàn tách biệt với hệ thống CI (Continuous Integration) bên ngoài.

Bây giờ, "Kẻ giám sát" đã vào vị trí và đã biết phải nhìn vào đâu. Nhưng nó vẫn chưa biết cần triển khai cái gì.

Ở Bài 3, chúng ta sẽ chính thức Deploy một ứng dụng lên Production. Để hệ thống AFC của bạn quản lý cấu hình một cách chuyên nghiệp (tách biệt môi trường Staging và Production), bạn muốn chúng ta đóng gói các file YAML bằng Kustomize (Ghi đè cấu hình đơn giản) hay Helm Chart (Đóng gói thành một Template động siêu mạnh mẽ)?


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí