Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

[ArgoCD] ArgoCD Deployment từ Helm Repo


Trong phần này này, mình sẽ chỉ cho bạn cách sử dụng Argo CD để thiết lập triển khai ứng dụng từ Kho lưu trữ Helm.

I. Chúng ta có thể add thử 1 repo bằng cli như sau.

helm repo add stable https://charts.helm.sh/stable

Với stable là tên repo tự đặt theo ý mình, tham khảo thêm https://charts.helm.sh/stable. Verify bằng lệnh dưới.

root@loadbalancer3:~# helm repo list
NAME            URL
nginx-stable    https://helm.nginx.com/stable
stable          https://charts.helm.sh/stable

Theo list trên thì hiện tại mình đang có 2 repo.

Sau khi thêm repo chúng ta có thể thử search các chart có trong repo như sau.

root@loadbalancer3:~# helm search repo stable | grep grafana
stable/grafana                                  5.5.7           7.1.1                   DEPRECATED - The leading tool for querying and ...

Chúng ta có thể server 1 ứng dụng trong kho chứa, ví dụ mình đang search ứng dụng grafana.

II. Phần tiếp theo chúng ta bắt đầu thêm repo vào ArgoCD bằng giao diện.

image

Lần lượt thực hiện như hình để add repo trong ArgoCD

image

Bấm vào Connect repo using HTTPS

    1. Sử dụng type repo là helm
    1. Đặt tên repo bất kỳ
    1. Đặt project là default
    1. Link repo

Sau khi khai báo xong, bấm Connect.

image

Chúng ta thấy xuất hiện 1 repo mới ở đây. Trạng thái Successful cho ta biết repo đang hoạt động.

image

Tạo 1 app mới bằng cách bấm vào new app

image

Với 1 ứng dụng đơn giản chúng ta chỉ cần chú ý đến các tùy chọn sau:

Application Name: tên ứng dụng

Project Name: tên dự án

AUTO-CREATE NAMESPACE: Tùy chọn giúp tạo namespace nếu chúng không tồn tại

image

Chọn repo của helm đã thêm trước đó và mình sẽ sử dụng ứng dụng là prometheus-pushgateway, nhớ chọn version của prometheus-pushgateway tại mục 4 nhé.

Ở mục 5 chọn địa chỉ Kubernetes mà chúng ta sẽ triển khai ứng dụng lên đó.

Mục 6 chúng ta điền vào namespace để triển khai ứng dụng.

image

Ở phần chỉnh sửa value này mình sẽ thay đổi chút xíu ở phần service từ ClusterIP thành NodePort và chọn port forward là 30016 để lát chúng ta kiểm tra dịch vụ có hoạt động hay không.

image

Sau khi khai báo xong thông tin app, bấm create để tạo app, ta sẽ có màn hình như dưới.

image

Bấm vào app để thấy được sơ đồ tổng quan của app. Biểu tượng màu vàng cho thấy quá trình tạo app vẫn chưa diễn ra vì mình đã tắt tính năng deploy tự động, chúng ta sẽ deploy bằng tay.

image

Bấm vào sync và Synchronize để quá trình deploy app bắt đầu.

image

Ứng dụng đã triển khai xong, chúng ta thấy trạng thái có tích xanh Sync OK như hình dưới.

image

Vào cli kiểm tra lại những gì chúng ta đã triển khai.

  1. Ứng dụng được triển khai vào worker1

  2. Worker1 có địa chỉ ip là 192.168.13.210

  3. NodePort là 31943

  4. Namespace của ứng dụng là ns-prometheus-pushgateway

image

Vậy chúng ta có thể sử dụng trình duyệt ở 1 máy host nào đó truy cập http://192.168.13.210:31943 để kiểm tra dịch vụ có hoạt động hay không. Và dưới đây là kết quả cuối cùng.

image

III. Điều chỉnh parameters ứng dụng.

Phần tiếp theo chúng ta thử điều chỉnh 1 số thông số parameters của ứng dụng thử nhé.

Vào App details -> parameters -> edit

image

Ở đây mình sẽ chỉnh sửa thông số replica từ 1 pod thành 34 pod, sau đó lưu lại.

image

Do đã có 1 thay đổi mới nên trạng thái hiện tại sẽ chuyển thành Out of sync màu vàng.

image

Chúng ta vào App Diff để kiểm tra thử thay đổi.

image

Sau khi kiểm tra, nếu không có vấn đề gì chúng ta tiến hành sync ứng dụng.

image

Hình dưới cho ta thấy có 2 pod mới đang được triển khai.

image

Chúng ta cũng có thể vào cli để kiểm tra, kết quả đã có đầy đủ 3 pod như đã thay đổi.

image

Trên đây mình đã hướng dẫn triển khai 1 ứng dụng đơn giản bằng ArgoCD từ kho chứa helm. Chúc các bạn thành công.