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.

Tạo ứng dụng bằng cách tự định nghĩa tài nguyên


Bài viết này mình sẽ hướng dẫn các bạn triển khai 1 ứng dụng đơn giản bằng cách tự định nghĩa các tài nguyên của riêng mình trên file manifest được lưu ở 1 kho chứa nào đó ví dụ github. Và chúng ta sẽ dùng ArgoCD để đọc các file này từ kho chứa github, từ đó nó sẽ triển khai ứng dụng dựa vào các file manifest có trong kho chứa.

Chúng ta sử dụng lệnh sau để xem các crd của ArgoCD, các crd sẽ quản lý các tài nguyên tùy chỉnh của hệ thống, nó đã được triển khai khi chúng ta triển khai ArgoCD.

Chúng ta sẽ quan tâm đến 2 thành phần chính, đó là appprojects.argoproj.io và applications.argoproj.io.

root@loadbalancer3:~# kubectl get crds | grep argo
applications.argoproj.io                              2022-09-16T04:34:42Z
applicationsets.argoproj.io                           2022-09-16T04:34:42Z
appprojects.argoproj.io                               2022-09-16T04:34:42Z

Chúng ta thử get các project thì ta thấy hiện tại chỉ có 1 project default duy nhất được tạo khi chúng ta triển khai ArgoCD.

root@loadbalancer3:~# kubectl -n argocd get appprojects
NAME      AGE
default   4d3h

Điều này là phù hợp vì nó trùng khớp với giao diện web của ArgoCD.

image

Khi chúng ta list các application thì nó đang trống, đơn giản vì chúng ta chưa triển khai 1 application nào.

root@loadbalancer3:~# kubectl -n argocd get application
No resources found in argocd namespace.

Bây giờ chúng ta sẽ thêm 1 repo của github như hình dưới, bấm vào (1) để chọn phương thức kết nối là HTTPS.

image

Điền đầy đủ thông tin như hình, nếu kho chứa là public thì bỏ qua username và mật khẩu và ngược lại.

image
  1. Chọn type là Git.
  2. Project hiện có là Default
  3. Link của repo
  4. Bấm connect để thêm 1 này
image

Sau khi thêm chúng ta sẽ thấy xuất hiện thêm repo mới này có tích xanh với trạng thái kết nối thành công tại vị trí 1. Chúng ta có thể thêm ứng dụng tại màn hình này (2) nhé.

Đặt tên cho ứng dụng, chọn project và tích vào auto create namespace để ArgoCD tự động tạo namespace nếu nó chưa tồn tại nhé.

image

Chọn kho chứa đã thêm vào, chú ý mục path chọn đúng thư mục chứa các file manifest cần triển khai (xem hình 2). Sau khi đã khai báo xong thông tin, bạn chọn create để bắt đầu triển khai ứng dụng.

image

Hình 1: Nhập thông tin source và destination cho ứng dụng

image

Hình 2: Thư mục chứa file manifest để chèn vào mục path ở hình 1

Sau khi bấm create chúng ta có màn hình tổng quan chứa 1 số thông tin cơ bản như dưới. Chúng ta bấm vào Sync -> synchronized để quá trình deploy ứng dụng được bắt đầu.

image

Sau khi deploy xong, chúng ta có kết quả như hình dưới có tích xanh báo hiệu deploy thành công.

image

Chúng ta thử get applications thì đã có 1 project mới của ArgoCD vừa tạo.

root@loadbalancer3:~# kubectl -n argocd get applications
NAME                 SYNC STATUS   HEALTH STATUS
git-demo-wordpress   Synced        Healthy

View lại các thông tin nhé, ghi nhớ tên domain để chúng ta test ở bước tiếp theo.

image

Đã truy cập wordpress thành công.

image

Good luk ^^