บทนำ
Argo CD มีสองวิธีหลักในการจัดการ Deployment คือ CLI (Command Line Interface) และ Web UI ซึ่งแต่ละวิธีมีข้อดีและข้อเสียที่แตกต่างกัน บทความนี้จะอธิบายวิธีการใช้งาน Argo CD CLI และ Web UI พร้อมกับตัวอย่างคำสั่งและเมื่อควรใช้แต่ละวิธี
Argo CD CLI คืออะไร
Argo CD CLI เป็นเครื่องมือบรรทัดคำสั่งที่ให้คุณสามารถจัดการ Argo CD ได้จากเทอร์มินัล โดยสามารถทำการ Automation และ Integration กับ CI/CD Pipeline อื่น ๆ ได้อย่างง่ายดาย
การติดตั้ง Argo CD CLI
บน macOS
brew install argocd
บน Linux
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd
sudo mv argocd /usr/local/bin/
บน Windows
choco install argocd-cli
การเข้าสู่ระบบ (Login) ด้วย CLI
คำสั่ง Login พื้นฐาน
argocd login <ARGOCD_SERVER> --username <USERNAME>
ตัวอย่าง
argocd login argocd.example.com --username admin
หลังจากนั้นระบบจะขอให้คุณป้อน Password
Login ด้วย Token
argocd login <ARGOCD_SERVER> --auth-token <TOKEN>
Login โดยไม่ต้องตรวจสอบ SSL
argocd login <ARGOCD_SERVER> --insecure --username <USERNAME>
คำสั่ง Argo CD CLI หลัก
1. Application Management
สร้าง Application ใหม่
argocd app create <APP_NAME> \
--repo <GIT_REPO_URL> \
--path <PATH_IN_REPO> \
--dest-server <KUBERNETES_SERVER> \
--dest-namespace <NAMESPACE>
ตัวอย่าง:
argocd app create my-app \
--repo https://github.com/example/repo.git \
--path ./manifests \
--dest-server https://kubernetes.default.svc \
--dest-namespace default
ดูรายชื่อ Application ทั้งหมด
argocd app list
ดูรายละเอียด Application
argocd app get <APP_NAME>
ตัวอย่าง:
argocd app get my-app
ลบ Application
argocd app delete <APP_NAME>
หรือลบแบบ Force (ไม่รอ Cascading Delete):
argocd app delete <APP_NAME> --cascade=false
2. Synchronization
ทำการ Sync Application ด้วยตัวเอง
argocd app sync <APP_NAME>
ตัวอย่าง:
argocd app sync my-app
Sync แบบมี Timeout
argocd app sync <APP_NAME> --timeout 5m
Sync แบบ Dry Run (ดูเฉพาะการเปลี่ยนแปลง)
argocd app sync <APP_NAME> --dry-run
Sync ด้วยการสร้างใหม่ทั้งหมด
argocd app sync <APP_NAME> --replace
3. Repository Management
เพิ่ม Git Repository ใหม่
argocd repo add <REPO_URL> \
--username <USERNAME> \
--password <PASSWORD>
ตัวอย่าง:
argocd repo add https://github.com/example/repo.git \
--username myuser \
--password mypassword
เพิ่ม Repository แบบใช้ SSH Key
argocd repo add [email protected]:example/repo.git \
--ssh-private-key-path ~/.ssh/id_rsa
ดูรายชื่อ Repository ทั้งหมด
argocd repo list
ลบ Repository
argocd repo remove <REPO_URL>
4. Cluster Management
เพิ่ม Cluster ใหม่
argocd cluster add <CONTEXT_NAME>
ตัวอย่าง:
argocd cluster add minikube
ดูรายชื่อ Cluster ทั้งหมด
argocd cluster list
ลบ Cluster
argocd cluster remove <CLUSTER_SERVER_URL>
Argo CD Web UI
การเข้าถึง Web UI
สามารถเข้าถึง Web UI ได้โดยการ Port Forward:
kubectl port-forward svc/argocd-server -n argocd 8080:443
แล้วเข้าไปที่ https://localhost:8080 และป้อน Username และ Password
Dashboard
Dashboard ของ Argo CD Web UI จะแสดง:
- รายชื่อ Application ทั้งหมด
- สถานะ Sync ของแต่ละ Application
- สถานะของ Cluster ที่เชื่อมต่อ
- Recent Sync Activity
Application View
เมื่อคลิกเข้าไปที่ Application ตัวใดตัวหนึ่ง คุณจะเห็น:
- Application Details – ข้อมูลทั่วไปของ Application
- Resource Tree – โครงสร้างของ Resources ทั้งหมด
- Diff View – ความแตกต่างระหว่าง Git และ Cluster
- Logs – Logs ของ Container ต่าง ๆ
- Sync Status – สถานะของการ Sync ล่าสุด
การ Sync ผ่าน Web UI
- เข้าไปที่ Application ที่ต้องการ Sync
- คลิก “Sync” Button
- เลือก Sync Strategy (Automated หรือ Manual)
- คลิก “Synchronize”
- ดูสถานะการ Sync ในหน้า Application
Diff View
Diff View จะแสดงความแตกต่างระหว่าง Git Manifest กับสิ่งที่ Deploy อยู่ใน Cluster ในรูปแบบ Side-by-Side Comparison
Logs View
Logs View จะแสดง Logs จากทุก Container ของ Application ที่คุณสามารถ Filter และ Search ได้
CLI vs Web UI – เมื่อใช้แต่ละอัน
ควรใช้ CLI เมื่อ
- ต้องการ Automate การจัดการ Argo CD ใน Scripts
- ต้องการ Integrate กับ CI/CD Pipeline
- ต้องการ Batch Operation บนหลาย Applications
- ต้องการการทำงาน Remote บน Server ที่ไม่มี GUI
- ต้องการความเร็วในการทำงาน
- ต้องการสร้าง Custom Scripts
ควรใช้ Web UI เมื่อ
- ต้องการดูสถานะของ Application อย่างสดชื่น
- ต้องการ Visualize Resource Tree
- ต้องการดู Diff ระหว่าง Git และ Cluster แบบ Interactive
- ต้องการดู Logs ของ Container อย่างสะดวก
- ต้องการให้ Users ที่ไม่เข้าใจ CLI ใช้งาน Argo CD
- ต้องการการ Sync ด้วยสายตา (Visual Confirmation)
ตัวอย่างการใช้งาน
ตัวอย่างที่ 1: สร้างและจัดการ Application
# สร้าง Application
argocd app create demo-app \
--repo https://github.com/example/demo.git \
--path ./k8s \
--dest-server https://kubernetes.default.svc \
--dest-namespace default
# ดูรายละเอียด
argocd app get demo-app
# ทำการ Sync
argocd app sync demo-app
# ดูสถานะ
argocd app get demo-app
ตัวอย่างที่ 2: Automation ใน CI/CD Pipeline
#!/bin/bash
# Script สำหรับ GitLab CI/CD
argocd login $ARGOCD_SERVER --auth-token $ARGOCD_TOKEN
argocd app create $APP_NAME \
--repo $GIT_REPO \
--path ./manifests \
--dest-server https://kubernetes.default.svc \
--dest-namespace production
argocd app sync $APP_NAME --timeout 5m
การใช้งาน Argo CD กับ ผู้ให้บริการโฮสติ้ง Cloud VPS
หากคุณ Deploy Argo CD บน ผู้ให้บริการโฮสติ้ง Cloud VPS ของเรา คุณจะได้รับ:
- ความเสถียรของ Infrastructure ที่สูง
- Network Bandwidth ที่เพียงพอสำหรับ GitOps Workflow
- Computational Resources ที่สามารถ Scale ได้ตามความต้องการ
- Data Center ที่มีระบบความปลอดภัยขั้นสูง
- Support จากทีม ผู้ให้บริการโฮสติ้ง ที่มีความเชี่ยวชาญ
นอกจากนี้ ผู้ให้บริการโฮสติ้ง Cloud Hosting ยังสามารถใช้สำหรับเก็บ Git Repository ของคุณได้อย่างปลอดภัยและมีความเสถียรสูง
บทสรุป
Argo CD CLI และ Web UI ล้วนแต่เป็นเครื่องมือที่มีประสิทธิภาพในการจัดการ Deployment โดยแต่ละอันมีจุดแข็งของตัวเอง CLI เหมาะสำหรับ Automation และ Scripting ขณะที่ Web UI เหมาะสำหรับการ Visualization และการจัดการโดยตรง การรู้วิธีใช้ทั้งสองวิธี จะทำให้คุณสามารถจัดการ Argo CD ได้อย่างมีประสิทธิภาพและยืดหยุ่นที่สุด

