DevOps

ArgoCD ApplicationSet Container Orchestration

argocd applicationset container orchestration
ArgoCD ApplicationSet Container Orchestration | SiamCafe Blog

โดย อ. บอมกิตติทัศน์เจริญพนาสิทธิ์ | อัปเดต 24 ก. พ. 2026 | อ่าน 16 นาที

GitOps คืออะไร — แนวคิดพื้นฐาน

GitOps เป็นแนวคิดที่ Weaveworks นำเสนอในปี 2017 หลักการคือใช้ Git Repository เป็น Single Source of Truth สำหรับ Infrastructure และ Application ทุกการเปลี่ยนแปลง (Deploy, Config Change, Scale) ต้องผ่าน Git Commit โดยส่ง Pull Request, Code Review, Approve แล้ว Merge จากนั้น GitOps Operator จะ Sync ให้ Cluster ตรงกับ Git อัตโนมัติ

ข้อดีของ GitOps ได้แก่ Audit Trail ทุกการเปลี่ยนแปลงมี Git History, Rollback ง่าย แค่ Revert Git Commit, Consistency ทุก Environment ตรงกับ Git, Security ไม่ต้องให้ CI/CD เข้าถึง Cluster โดยตรง (Pull-based) และ Self-healing ถ้ามีคนแก้ Cluster โดยตรง ArgoCD จะ Sync กลับให้ตรง Git

ArgoCD คืออะไร — GitOps CD สำหรับ Kubernetes

ArgoCD เป็น Declarative GitOps Continuous Delivery Tool สำหรับ Kubernetes เป็น CNCF Graduated Project ที่นิยมที่สุดในหมวด GitOps ทำงานโดยเปรียบเทียบ Desired State (ใน Git) กับ Actual State (บน Cluster) ถ้าต่างกันจะแสดงว่า OutOfSync และ Sync ให้ตรงกันอัตโนมัติ (ถ้าตั้ง Auto-sync) หรือรอ Manual Sync

ArgoCD มี Web UI ที่สวยงามมากแสดง Application Status, Resource Tree, Diff ระหว่าง Git กับ Cluster, Sync History และ Rollback ได้จาก UI เลยนอกจากนี้ยังมี CLI, gRPC API และ Webhook สำหรับ Automation

ติดตั้ง ArgoCD บน Kubernetes

# ติดตั้งด้วย kubectl
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# หรือติดตั้งด้วย Helm (แนะนำ)
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd \
 --namespace argocd \
 --create-namespace \
 --set server.service.type=LoadBalancer

# ดึง Admin Password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

# ติดตั้ง CLI
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/

# Login
argocd login <ARGOCD_SERVER> --username admin --password <PASSWORD>

สร้าง Application แรก — Sync จาก Git

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
 name: my-api
 namespace: argocd
spec:
 project: default
 source:
 repoURL: https://github.com/myorg/k8s-manifests.git
 targetRevision: main
 path: apps/my-api/overlays/production
 destination:
 server: https://kubernetes.default.svc
 namespace: production
 syncPolicy:
 automated:
 prune: true # ลบ Resource ที่ไม่มีใน Git
 selfHeal: true # แก้ไข Manual Change กลับให้ตรง Git
 allowEmpty: false
 syncOptions:
 - CreateNamespace=true
 - PrunePropagationPolicy=foreground
 retry:
 limit: 5
 backoff:
 duration: 5s
 factor: 2
 maxDuration: 3m

Sync Policy — Auto vs Manual

Policyลักษณะเหมาะกับ
Manual Syncต้องกด Sync เองProduction ที่ต้อง Approval ก่อน Deploy
Auto SyncSync อัตโนมัติเมื่อ Git เปลี่ยนDev/Staging ที่ต้องการ Deploy ทันที
Auto Sync + Pruneลบ Resource ที่ไม่มีใน Git ด้วยต้องการ Git เป็น Truth 100%
Auto Sync + Self-healแก้ Manual Change กลับป้องกัน Drift จาก kubectl edit

ApplicationSet — สร้างหลาย Application จาก Template

ApplicationSet เป็น CRD ที่สร้าง ArgoCD Application หลายตัวจาก Template เดียวแทนที่จะเขียน Application YAML ซ้ำๆสำหรับทุก Service หรือทุก Cluster

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
 name: microservices
 namespace: argocd
spec:
 generators:
 - list:
 elements:
 - name: user-api
 namespace: user
 - name: order-api
 namespace: order
 - name: payment-api
 namespace: payment
 - name: notification-api
 namespace: notification
 template:
 metadata:
 name: '{{name}}'
 spec:
 project: default
 source:
 repoURL: https://github.com/myorg/k8s-manifests.git
 targetRevision: main
 path: 'apps/{{name}}/overlays/production'
 destination:
 server: https://kubernetes.default.svc
 namespace: '{{namespace}}'
 syncPolicy:
 automated:
 prune: true
 selfHeal: true

ApplicationSet นี้สร้าง 4 Application (user-api, order-api, payment-api, notification-api) จาก Template เดียวถ้าเพิ่ม Service ใหม่แค่เพิ่ม Element ใน List

Generator Types — List, Cluster, Git, Matrix

GeneratorSourceUse Case
ListStatic List ใน YAMLจำนวน Service/Cluster น้อยและคงที่
ClusterArgoCD Cluster SecretsDeploy ไปทุก Cluster ที่ลงทะเบียนกับ ArgoCD
Git DirectoryDirectory ใน Git RepoMonorepo ที่แต่ละ Directory คือ 1 Service
Git FileJSON/YAML File ใน GitConfig File กำหนด Parameter ต่อ Environment
MatrixCombine 2 GeneratorsDeploy ทุก Service ไปทุก Cluster (Cartesian Product)
MergeMerge หลาย GeneratorsOverride Parameter ต่อ Cluster
Pull RequestGitHub/GitLab PRสร้าง Preview Environment ต่อ PR

Multi-cluster Deployment ด้วย ApplicationSet

# Deploy ทุก Service ไปทุก Cluster ด้วย Matrix Generator
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
 name: multi-cluster-apps
 namespace: argocd
spec:
 generators:
 - matrix:
 generators:
 # Generator 1: Clusters
 - clusters:
 selector:
 matchLabels:
 env: production
 # Generator 2: Services
 - git:
 repoURL: https://github.com/myorg/k8s-manifests.git
 revision: main
 directories:
 - path: apps/*
 template:
 metadata:
 name: '{{path.basename}}-{{name}}'
 spec:
 project: default
 source:
 repoURL: https://github.com/myorg/k8s-manifests.git
 targetRevision: main
 path: '{{path}}/overlays/{{metadata.labels.env}}'
 destination:
 server: '{{server}}'
 namespace: '{{path.basename}}'

Container Orchestration Concepts

Container Orchestration คือการจัดการ Container จำนวนมากให้ทำงานร่วมกัน Kubernetes เป็น Orchestrator ที่นิยมที่สุดจัดการ Scheduling (วาง Pod บน Node ที่เหมาะสม), Scaling (เพิ่ม/ลด Pod ตาม Load), Networking (Service Discovery, Load Balancing), Storage (Persistent Volume), Health Check (Restart Pod ที่ล่ม) และ Rolling Update (อัปเดตทีละ Pod ไม่ Downtime)

ArgoCD เป็นส่วนสำคัญของ Container Orchestration เพราะจัดการ Deployment Lifecycle ทั้งหมดตั้งแต่ Desired State ใน Git จนถึง Actual State บน Cluster ทำให้ Deployment เป็น Declarative, Auditable และ Reproducible

Rolling Update, Blue-Green, Canary

Argo Rollouts — Progressive Delivery

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
 name: my-api
spec:
 replicas: 5
 strategy:
 canary:
 steps:
 - setWeight: 10
 - pause: {duration: 5m}
 - setWeight: 30
 - pause: {duration: 5m}
 - setWeight: 60
 - pause: {duration: 5m}
 - setWeight: 100
 canaryService: my-api-canary
 stableService: my-api-stable
 trafficRouting:
 nginx:
 stableIngress: my-api-ingress
 analysis:
 templates:
 - templateName: success-rate
 startingStep: 2
 args:
 - name: service-name
 value: my-api-canary
 selector:
 matchLabels:
 app: my-api
 template:
 metadata:
 labels:
 app: my-api
 spec:
 containers:
 - name: api
 image: my-api:v2.0
 ports:
 - containerPort: 8080

ArgoCD กับ Helm และ Kustomize

ArgoCD รองรับหลาย Config Management Tool

# Helm Source
source:
 repoURL: https://charts.bitnami.com/bitnami
 chart: postgresql
 targetRevision: 13.4.0
 helm:
 values: |
 primary:
 persistence:
 size: 50Gi
 auth:
 postgresPassword: secret

# Kustomize Source
source:
 repoURL: https://github.com/myorg/k8s-manifests.git
 path: apps/my-api/overlays/production
 kustomize:
 images:
 - my-api=registry.example.com/my-api:v2.0

RBAC และ SSO

ArgoCD มี RBAC ในตัวกำหนดว่าใครทำอะไรกับ Application/Project ไหนได้รองรับ SSO ผ่าน OIDC, SAML, LDAP, GitHub, GitLab, Okta, Keycloak

# argocd-rbac-cm ConfigMap
policy.csv: |
 p, role:dev, applications, get, */*, allow
 p, role:dev, applications, sync, dev/*, allow
 p, role:ops, applications, *, */*, allow
 g, dev-team, role:dev
 g, ops-team, role:ops

Monitoring และ Notifications

Best Practices และสรุป

ArgoCD + ApplicationSet เป็นเครื่องมือ GitOps ที่ทรงพลังสำหรับ Container Orchestration บน Kubernetes ทำให้ Deployment เป็น Declarative, Auditable และ Self-healing ลดความผิดพลาดจาก Manual Deployment ได้อย่างมากติดตามบทความใหม่ๆได้ที่ SiamCafe.net

อ. บอมกิตติทัศน์เจริญพนาสิทธิ์
IT Infrastructure Expert | Thaiware Award | ประสบการณ์กว่า 25 ปี — ผู้ก่อตั้ง SiamCafe.net Since 2000-2026

Q: ArgoCD คืออะไร

GitOps CD Tool สำหรับ Kubernetes ใช้ Git เป็น Source of Truth เปรียบเทียบ Git กับ Cluster แล้ว Sync ให้ตรงกันอัตโนมัติ

Q: ApplicationSet คืออะไร

CRD สร้าง Application หลายตัวจาก Template เดียวเหมาะกับ Multi-cluster, Multi-service ลด YAML Duplication

Q: GitOps คืออะไร

ใช้ Git เป็น Source of Truth ทุกการเปลี่ยนแปลงผ่าน Git Commit → PR → Review → Merge → Auto Sync ไป Cluster

Q: ArgoCD ต่างจาก FluxCD อย่างไร

ArgoCD มี Web UI สวยแสดง Resource Tree/Diff ได้ | FluxCD เป็น CLI-first Lightweight กว่าเลือกตามความชอบของทีม

บทความแนะนำ:

ทำความเข้าใจ ArgoCD ApplicationSet Container Orchestration อย่างละเอียด

การเรียนรู้ ArgoCD ApplicationSet Container Orchestration อย่างลึกซึ้งนั้นต้องอาศัยทั้งความรู้ทางทฤษฎีและการปฏิบัติจริงจากประสบการณ์การทำงานด้าน IT Infrastructure มากว่า 30 ปีผมพบว่าเทคโนโลยีที่ดีที่สุดคือเทคโนโลยีที่ลงมือทำจริงไม่ใช่แค่อ่านหรือดูวิดีโอเพียงอย่างเดียว ArgoCD ApplicationSet Container Orchestration เป็นหนึ่งในเทคโนโลยีสำคัญในวงการ IT ที่ช่วยเพิ่มประสิทธิภาพการทำงานลดความผิดพลาดจากมนุษย์และสร้างความมั่นคงให้กับระบบโครงสร้างพื้นฐานขององค์กร

ในปี 2026 ความสำคัญของ ArgoCD ApplicationSet Container Orchestration เพิ่มขึ้นอย่างมากเนื่องจากองค์กรทั่วโลกกำลังเร่งปรับตัวสู่ Digital Transformation ที่ต้องอาศัยเทคโนโลยีที่ทันสมัยและเชื่อถือได้ไม่ว่าจะเป็นองค์กรขนาดเล็กหรือขนาดใหญ่ล้วนต้องการผู้เชี่ยวชาญด้าน ArgoCD ApplicationSet Container Orchestration ที่สามารถวางแผนติดตั้งดูแลรักษาและแก้ไขปัญหาได้

สิ่งสำคัญที่ต้องเข้าใจก่อนเริ่มต้นใช้งาน ArgoCD ApplicationSet Container Orchestration คือพื้นฐานด้าน Linux command line เครือข่ายคอมพิวเตอร์และแนวคิด DevOps เบื้องต้นผู้ที่มีพื้นฐานเหล่านี้จะสามารถเรียนรู้ ArgoCD ApplicationSet Container Orchestration ได้อย่างรวดเร็วและมีประสิทธิภาพการลงทุนเวลาเพียง 2-4 สัปดาห์ในการศึกษาอย่างจริงจังก็เพียงพอที่จะเริ่มใช้งานจริงได้

ขั้นตอนการตั้งค่า ArgoCD ApplicationSet Container Orchestration แบบ Step-by-Step

ในส่วันนี้ี้จะอธิบายขั้นตอนการตั้งค่า ArgoCD ApplicationSet Container Orchestration อย่างละเอียดทุกขั้นตอนเพื่อให้ผู้อ่านสามารถนำไปปฏิบัติตามได้จริงโดยทุกคำสั่งได้ผ่านการทดสอบบน Ubuntu Server 22.04 LTS และ 24.04 LTS เรียบร้อยแล้ว

# ขั้นตอนที่ 1: อัพเดทระบบปฏิบัติการ
sudo apt update && sudo apt upgrade -y

# ขั้นตอนที่ 2: ติดตั้ง dependencies ที่จำเป็น
sudo apt install -y curl wget gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release

# ขั้นตอนที่ 3: ตรวจสอบ system requirements
echo "CPU cores: $(nproc)"
echo "RAM: $(free -h | awk '/^Mem/{print $2}')"
echo "Disk: $(df -h / | awk 'NR==2{print $4}') available"
echo "OS: $(lsb_release -ds)"

# ขั้นตอนที่ 4: ตั้งค่า firewall
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable
sudo ufw status verbose

หลังจากติดตั้งเรียบร้อยแล้วควรตรวจสอบว่าระบบทำงานได้ถูกต้องด้วยการทดสอบเบื้องต้นเช่นตรวจสอบว่า service ทำงานอยู่ตรวจสอบ log files และทดสอบการเข้าถึงจากภายนอกการทดสอบอย่างละเอียดก่อน deploy จริงจะช่วยลดปัญหาที่อาจเกิดขึ้นในภายหลัง

# ตรวจสอบสถานะ service
sudo systemctl status --no-pager

# ดู log ล่าสุด
sudo journalctl -u argocd --no-pager -n 50

# ตรวจสอบ port ที่เปิดอยู่
sudo ss -tlnp | grep -E '80|443|22'

# ทดสอบ connectivity
curl -I http://localhost:80

Best Practices สำหรับ ArgoCD ApplicationSet Container Orchestration ในปี 2026

การปฏิบัติตาม Best Practices เหล่านี้อาจดูเป็นงานหนักในตอนแรกแต่จะช่วยป้องกันปัญหาที่อาจเกิดขึ้นในอนาคตได้อย่างมากและทำให้ระบบมีความเสถียรและเชื่อถือได้มากขึ้นอย่างมีนัยสำคัญ

เปรียบเทียบ ArgoCD ApplicationSet Container Orchestration กับทางเลือกอื่นในปี 2026

เกณฑ์เปรียบเทียบArgoCD ApplicationSet Container Orchestrationทางเลือกอื่น
ความง่ายในการติดตั้งปานกลาง-ง่ายแตกต่างกันไป
ราคาฟรี / Open Sourceฟรี-แพง
Community Supportแข็งแกร่งมากแตกต่างกันไป
Enterprise Readyใช่บางตัว
Documentationดีมากแตกต่างกันไป
ความเสถียรสูงปานกลาง-สูง
Learning Curveปานกลางต่ำ-สูง
ความนิยมในไทยสูงมากปานกลาง

จากตารางเปรียบเทียบจะเห็นว่า ArgoCD ApplicationSet Container Orchestration เป็นตัวเลือกที่สมดุลในทุกด้านทั้งความง่ายในการใช้งานราคาและ community support จึงเป็นเหตุผลที่องค์กรจำนวนมากเลือกใช้ ArgoCD ApplicationSet Container Orchestration เป็นเครื่องมือหลัก

Q: ArgoCD ApplicationSet Container Orchestration เหมาะกับผู้เริ่มต้นไหม?

A: เหมาะครับถ้ามีพื้นฐาน Linux command line และ networking เบื้องต้นสามารถเริ่มเรียนรู้ ArgoCD ApplicationSet Container Orchestration ได้ทันทีแนะนำให้เริ่มจาก official documentation แล้วลองทำ lab จริงกับ Virtual Machine หรือ Docker containers ที่สำคัญคือต้องลงมือทำจริงไม่ใช่แค่อ่านอย่างเดียวการฝึกฝนอย่างสม่ำเสมอจะช่วยให้เข้าใจ concepts ได้ลึกซึ้งกว่า

Q: ArgoCD ApplicationSet Container Orchestration ใช้ในองค์กรไทยมากไหม?

A: มากครับในปี 2026 องค์กรไทยทั้งภาครัฐและเอกชนใช้ ArgoCD ApplicationSet Container Orchestration อย่างแพร่หลายโดยเฉพาะธนาคารโทรคมนาคมและบริษัทเทคโนโลยีตลาดแรงงานสาย IT ในไทยมีความต้องการบุคลากรที่มีทักษะด้านนี้สูงมากเงินเดือนเริ่มต้น 35,000-55,000 บาทสำหรับผู้มีประสบการณ์ 70,000-150,000 บาทขึ้นไป

Q: ใช้เวลาเรียนนานเท่าไหร่จึงจะใช้งานจริงได้?

A: สำหรับพื้นฐานการใช้งานใช้เวลาประมาณ 1-2 สัปดาห์สำหรับระดับ intermediate ที่สามารถ deploy production ได้ใช้เวลา 1-3 เดือนสำหรับระดับ expert ที่สามารถ optimize และ troubleshoot ปัญหาซับซ้อนได้ใช้เวลา 6-12 เดือนขึ้นไปทั้งนี้ขึ้นอยู่กับพื้นฐานที่มีและเวลาที่ทุ่มเทให้กับการเรียนรู้ด้วย

Q: ต้องมี Certification ไหม?

A: ไม่จำเป็นแต่มีข้อดี Certification ช่วยพิสูจน์ความรู้กับนายจ้างและเพิ่มโอกาสในการได้งานสำหรับสาย IT ทั่วไปแนะนำ CompTIA Linux+ หรือ RHCSA สำหรับสาย DevOps แนะนำ CKA หรือ AWS Solutions Architect สำหรับสาย Security แนะนำ CompTIA Security+ หรือ CEH ทั้งนี้ประสบการณ์จริงยังสำคัญกว่า cert เสมอ

ทรัพยากรสำหรับเรียนรู้ ArgoCD ApplicationSet Container Orchestration เพิ่มเติม

สำหรับผู้ที่ต้องการศึกษา ArgoCD ApplicationSet Container Orchestration อย่างจริงจังมีแหล่งเรียนรู้ที่แนะนำดังนี้อันดับแรกคือ official documentation ซึ่งเป็นแหล่งข้อมูลที่สมบูรณ์และอัพเดทที่สุดถัดมาคือคอร์สออนไลน์บน Udemy, Coursera, Linux Academy และ KodeKloud ที่มีทั้งแบบฟรีและเสียเงินสำหรับการฝึกปฏิบัติจริงแนะนำให้สร้าง home lab ด้วย Proxmox VE หรือ VirtualBox แล้วทดลองตั้งค่าระบบจริง

นอกจากนี้ YouTube เป็นแหล่งเรียนรู้ที่ดีมากมีทั้งช่องภาษาไทยและภาษาอังกฤษที่สอนเรื่อง IT infrastructure ช่อง YouTube ของอาจารย์บอม (@icafefx) ก็มีเนื้อหาด้าน IT และ Network ที่เป็นประโยชน์มากสำหรับ community ภาษาไทยสามารถเข้าร่วม Facebook Group, Discord Server หรือ LINE OpenChat ที่เกี่ยวข้องกับ IT ได้

สุดท้ายนี้ ArgoCD ApplicationSet Container Orchestration เป็นเทคโนโลยีที่มีอนาคตสดใสในปี 2026 และปีต่อๆไปการลงทุนเวลาศึกษาเรื่องนี้จะให้ผลตอบแทนที่คุ้มค่าอย่างแน่นอนไม่ว่าจะเป็นในแง่ของโอกาสในสายอาชีพเงินเดือนที่สูงขึ้นหรือความสามารถในการจัดการระบบ IT ขององค์กรได้

บทความที่เกี่ยวข้อง

SOPS Encryption Edge Deployment Raid 6 คืออะไร oracle database คือ cách đầu tư vàng thông minh TensorFlow Serving Disaster Recovery Plan