Tích hợp ArgoCD với Clusters Kubernetes trên Magalu Cloud
Giới thiệu
Trong các nhóm phát triển sử dụng Kubernetes, việc đảm bảo môi trường sản xuất luôn đồng bộ với các manifest được version hóa trên Git là một thách thức phổ biến. Việc cập nhật thủ công, thiếu khả năng truy vết các thay đổi và sự khác biệt giữa các môi trường có thể gây rủi ro cho tính ổn định của ứng dụng. Khi nhiều cụm (clusters) và đội ngũ tham gia vào quy trình, việc áp dụng một giải pháp tự động hóa, an toàn và có thể kiểm tra là cực kỳ cần thiết.
Bài viết này sẽ hướng dẫn bạn cách sử dụng ArgoCD để giải quyết những thách thức này, tự động hóa quá trình triển khai liên tục (Continuous Delivery) trên các cụm Kubernetes, dựa vào một nguồn thông tin duy nhất: kho Git. Bạn sẽ học cách cấu hình ArgoCD trên Magalu Cloud bằng cách sử dụng Helm, tích hợp các kho Git (qua HTTPS hoặc SSH), tạo ứng dụng qua giao diện người dùng hoặc dòng lệnh, và sử dụng các plugin như ArgoCD Vault Plugin để xử lý bí mật một cách an toàn.
Mục tiêu bài viết
- Cung cấp hướng dẫn chi tiết về cách thiết lập ArgoCD trên Magalu Cloud.
- Tìm hiểu cách tích hợp Git với ArgoCD qua hai phương pháp: HTTPS và SSH.
- Hướng dẫn cách tạo và quản lý các ứng dụng Kubernetes thông qua ArgoCD.
Nội dung chính
1. Các yêu cầu cần thiết
Để bắt đầu, bạn cần cài đặt một số công cụ sau:
argocd
kubectl
helm
kubie
2. Truy cập vào cụm MGC
Để tương tác với cụm Kubernetes được cung cấp trên Magalu Cloud (MGC), bạn cần lấy tệp cấu hình truy cập (kubeconfig). Tệp này chứa thông tin về quyền truy cập, điểm cuối và ngữ cảnh cần thiết để thực hiện các lệnh kubectl
hoặc quản lý cụm bằng các công cụ như kubie
.
2.1 Cách lấy kubeconfig
- Đăng nhập vào bảng điều khiển của MGC.
- Chọn cụm Kubernetes mà bạn muốn truy cập.
- Nhấp vào tùy chọn “Download Config” trong menu bên trái.
Khi đã có tệp .yaml
, bạn có thể kích hoạt quyền truy cập vào cụm qua terminal bằng lệnh:
$ kubie ctx -f /caminho/para/config.yaml
Lệnh này sẽ thiết lập ngữ cảnh thích hợp để bạn thực hiện các thao tác tiếp theo trên cụm chính xác.
3. Cài đặt ArgoCD bằng Helm
ArgoCD là một công cụ triển khai liên tục (CD) cho Kubernetes, tự động đồng bộ trạng thái của cụm với các manifest được lưu trữ trong kho Git. Để cài đặt ArgoCD trên cụm Kubernetes của Magalu Cloud, bạn có thể sử dụng Helm.
3.1 Cách cài đặt
- Lưu tệp cấu hình sau vào thư mục cục bộ và điều chỉnh theo nhu cầu: values.yaml.
- Thay đổi cấu hình Ingress và domain để phản ánh địa chỉ mà máy chủ ArgoCD sẽ được công khai.
Sau khi cấu hình xong, bạn có thể chạy các lệnh dưới đây để cài đặt ArgoCD:
$ helm repo add argo https://argoproj.github.io/argo-helm
$ helm install -f /caminho/para/values.yaml argocd argo/argo-cd
Lưu ý: Khi sử dụng cấu hình mặc định, một người dùng admin
sẽ được tạo tự động, với mật khẩu lưu trữ trong một Secret trong namespace argocd
. Bạn có thể lấy lại mật khẩu bằng lệnh:
$ kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath='{.data.password}' | base64 -d
3.2 Cập nhật ArgoCD
Nếu cần cập nhật ArgoCD, chỉ cần chỉnh sửa tệp values.yaml
và chạy lệnh:
$ helm upgrade -f /caminho/para/values.yaml argocd argo/argo-cd
4. Thêm kho Git vào ArgoCD (SSH và HTTPS)
Để ArgoCD có thể giám sát và đồng bộ hóa ứng dụng từ kho Git, bạn cần cấu hình kho đó làm nguồn thông tin.
4.1 Sử dụng HTTPS
- Truy cập giao diện ArgoCD, chọn Settings > Repositories và nhấp vào Connect Repo.
- Nhập URL của kho Git (ví dụ:
https://github.com/usuario/repositorio.git
). ArgoCD sẽ cho phép xác thực ẩn danh hoặc bằng tên người dùng và mật khẩu hoặc token cá nhân (PAT) nếu kho là riêng tư.
4.2 Sử dụng SSH
Đối với kết nối an toàn, hãy sử dụng khóa SSH. Bạn cần tạo một cặp khóa (hoặc sử dụng khóa hiện có) và đăng ký khóa công khai làm Deploy Key trên kho Git của bạn.
Trong ArgoCD, cũng qua Settings > Repositories, chọn Connect Repo using SSH và nhập URL theo định dạng git@github.com:usuario/repositorio.git
, cùng với khóa riêng tương ứng.
5. Tạo Application trong ArgoCD
Một Application trong ArgoCD đại diện cho một tập hợp các tài nguyên Kubernetes sẽ được đồng bộ hóa từ kho Git. Nó xác định đích đến (cụm và namespace), nguồn (kho và đường dẫn) và phương pháp đồng bộ hóa.
5.1 Tạo Application qua giao diện Web (UI)
- Để tạo một Application mới, bạn cần nhập các thông số sau:
- Tên Application: tên của ứng dụng.
- Project:
default
(hoặc khác). - Sync Policy:
Automatic
(khuyến nghị cho CD). - Repository URL: Git HTTPS hoặc SSH.
- Revision: ví dụ:
main
. - Path: apps/airflow/
- Cluster URL: thường là
https://kubernetes.default.svc
. - Namespace:
default
.
5.2 Tạo Application qua CLI (argocd)
Nếu bạn đã cài đặt ArgoCD và muốn tự động hóa việc tạo ứng dụng, CLI của ArgoCD rất hữu ích. Bạn có thể đăng nhập vào máy chủ ArgoCD và tạo ứng dụng mới bằng lệnh:
argocd app create app-demo \
--repo https://github.com/user/repository.git \
--path apps/airflow/ \
--dest-server https://kubernetes.default.svc \
--dest-namespace default \
--sync-policy automated
6. Quản lý các ứng dụng và bí mật
Khi đã định nghĩa một ứng dụng trong ArgoCD, bạn sẽ thường phải xử lý các thông tin nhạy cảm như mật khẩu, token hoặc khóa API. Để bảo mật các thông tin này mà vẫn giữ chúng đồng bộ với phiên bản, ArgoCD hỗ trợ sử dụng Vault Plugin (AVP), cho phép tiêm động các bí mật vào manifest mà không tiết lộ chúng trong kho Git.
6.1 Sử dụng AVP Plugin trong manifest
Ví dụ sử dụng trong manifest:
apiVersion: v1
kind: ConfigMap
metadata:
name: exemplo-configmap
data:
DB_PASSWORD: <path:secret/data/postgres#password>
Sau khi thực hiện các thay đổi, bạn cần thực hiện Hard Refresh cho ứng dụng trong ArgoCD để đảm bảo các giá trị mới được áp dụng đúng.
Kết luận
ArgoCD là một công cụ mạnh mẽ giúp tự động hóa quá trình triển khai và quản lý ứng dụng trong môi trường Kubernetes, nhất là khi làm việc với nhiều cụm và kho Git. Việc tích hợp ArgoCD với Magalu Cloud sẽ giúp bạn giảm thiểu rủi ro và nâng cao tính ổn định của ứng dụng. Hãy bắt đầu triển khai ngay hôm nay!
FAQ
ArgoCD là gì?
ArgoCD là một công cụ quản lý triển khai cho Kubernetes, cho phép bạn tự động hóa quá trình đồng bộ hóa ứng dụng từ kho Git.
Tại sao nên sử dụng ArgoCD?
ArgoCD giúp quản lý và kiểm soát phiên bản của các ứng dụng Kubernetes một cách hiệu quả, đồng thời giảm thiểu rủi ro khi triển khai.
Làm thế nào để cài đặt ArgoCD?
Bạn có thể cài đặt ArgoCD thông qua Helm hoặc các phương pháp khác như kubectl. Hãy tham khảo tài liệu chính thức để biết thêm chi tiết.
Tài nguyên tham khảo
Hãy bắt đầu trải nghiệm ArgoCD ngay hôm nay để tối ưu hóa quy trình phát triển của bạn!