โลโก้ Argo CD
DevOps และ CI/CDApache License 2.0 (โอเพนซอร์ส)

Argo CD คืออะไร และวิธีติดตั้งบน Kubernetes

Argo CD คือเครื่องมือที่ทำให้สถานะของคลัสเตอร์ Kubernetes ตรงกับสิ่งที่เขียนไว้ใน Git เสมอ ทีมจึงเปลี่ยนระบบด้วยการแก้ไฟล์แล้ว Merge แทนการสั่งคำสั่งบนคลัสเตอร์โดยตรง

หมวดหมู่
DevOps และ CI/CD
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
Apache License 2.0 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Argo CD คืออะไร

แนวคิด GitOps คือให้ Git เป็นแหล่งความจริงเดียวของสิ่งที่ควรรันอยู่ในระบบ เมื่อมีคนแก้ไฟล์และรวมเข้าสายหลัก เครื่องมือจะนำการเปลี่ยนแปลงไปใช้กับคลัสเตอร์ให้เอง ไม่มีใครต้องสั่งงานบนเครื่องจริงด้วยมือ

ผลที่ได้คือความชัดเจนในการตรวจสอบ ทุกการเปลี่ยนแปลงมีคนอนุมัติและมีประวัติใน Git และเมื่อต้องย้อนกลับก็เพียงย้อน Commit ระบบจะปรับกลับให้เอง

Argo CD ยังตรวจจับความต่างระหว่างสิ่งที่อยู่ใน Git กับสิ่งที่รันจริงตลอดเวลา ถ้ามีคนแก้บนคลัสเตอร์โดยตรง ระบบจะแจ้งเตือนหรือปรับกลับให้ตรงกับ Git ตามที่ตั้งไว้

แผนผังการวางระบบ Argo CD บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 443 ตัว Argo CD และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Argo CD ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Argo CD

ซิงก์สถานะจาก Git อัตโนมัติ

คลัสเตอร์ตรงกับไฟล์ใน Git เสมอโดยไม่ต้องสั่งงานด้วยมือ

ตรวจจับความต่างจากสิ่งที่ประกาศไว้

แจ้งเตือนหรือปรับกลับเมื่อมีคนแก้คลัสเตอร์โดยตรง

ย้อนกลับได้ทันที

ย้อน Commit ใน Git แล้วระบบปรับคลัสเตอร์กลับให้เอง

หน้าจอเห็นภาพรวมของแอป

เห็นทุกทรัพยากรของแอปและสถานะสุขภาพในหน้าเดียว

รองรับหลายคลัสเตอร์

จัดการทั้งระบบทดสอบและระบบจริงจากศูนย์กลางเดียว

ใช้ Argo CD ทำอะไรได้บ้าง

  • ทีมที่ใช้ Kubernetes และต้องการให้การ Deploy ตรวจสอบย้อนหลังได้
  • องค์กรที่ต้องมีการอนุมัติก่อนเปลี่ยนแปลงระบบจริง
  • ระบบที่มีหลายสภาพแวดล้อมและต้องให้ตั้งค่าตรงกัน
  • ทีมที่ต้องการลดความเสี่ยงจากการสั่งคำสั่งบนคลัสเตอร์ด้วยมือ

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Argo CD 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 40 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ NVMe 100 GB ขึ้นไป โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
ทดสอบคลัสเตอร์ทดลองที่มีแอปไม่มาก2 vCPU4 GBNVMe 40 GB
แนะนำคลัสเตอร์งานจริงที่มีหลายสิบแอป4 vCPU8 GBNVMe 80 GB
หลายคลัสเตอร์ศูนย์กลางที่ดูแลหลายคลัสเตอร์พร้อมกัน8 vCPU ขึ้นไป16 GB ขึ้นไปNVMe 100 GB ขึ้นไป

ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ

วิธีติดตั้ง Argo CD บน Cloud Server ของ THAI DATA CLOUD

ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server

สิ่งที่ต้องเตรียม

  • คลัสเตอร์ Kubernetes ที่ใช้งานได้ เช่น K3s หรือ RKE2
  • เครื่องมือ kubectl ที่เชื่อมกับคลัสเตอร์ได้
  • ที่เก็บ Git ที่คลัสเตอร์เข้าถึงได้

ทดสอบบน Kubernetes บน Cloud Server

  1. 1

    สร้าง Namespace และติดตั้ง

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
  2. 2

    ดึงรหัสผ่านเริ่มต้น

    kubectl -n argocd get secret argocd-initial-admin-secret \
      -o jsonpath="{.data.password}" | base64 -d; echo
  3. 3

    เปิดหน้าจอผ่าน Ingress พร้อม HTTPS

    อย่าเปิดหน้าจอสู่อินเทอร์เน็ตโดยไม่มีการป้องกัน ควรจำกัดไอพีหรือให้เข้าผ่าน VPN เท่านั้น

  4. 4

    เชื่อมกับที่เก็บ Git

    เพิ่มที่เก็บพร้อมคีย์สำหรับอ่านอย่างเดียว ซึ่งเพียงพอเพราะ Argo CD ไม่ต้องเขียนกลับ

    argocd repo add [email protected]:ops/manifests.git --ssh-private-key-path ~/.ssh/argocd
  5. 5

    สร้างแอปแรก

    argocd app create my-app \
      --repo [email protected]:ops/manifests.git \
      --path apps/my-app/overlays/production \
      --dest-server https://kubernetes.default.svc \
      --dest-namespace production \
      --sync-policy automated
  6. 6

    ตั้งนโยบายการซิงก์ให้เหมาะกับแต่ละสภาพแวดล้อม

    ระบบทดสอบตั้งให้ซิงก์อัตโนมัติได้ ส่วนระบบจริงหลายองค์กรเลือกให้กดยืนยันก่อน เพื่อควบคุมช่วงเวลาที่เปลี่ยนแปลง

เก็บค่าลับไว้ใน Git ไม่ได้โดยตรง ควรใช้เครื่องมือเข้ารหัสค่าลับหรือดึงจากระบบจัดการความลับอย่าง Vault

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
443TCPหน้าจอและ API ผ่าน Ingress (ควรจำกัดการเข้าถึง)

สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ

  • เปลี่ยนรหัสผ่านผู้ดูแลระบบและผูกกับระบบยืนยันตัวตนขององค์กร
  • ไม่เปิดหน้าจอสู่อินเทอร์เน็ตโดยไม่จำกัดไอพีหรือไม่ผ่าน VPN
  • ให้สิทธิ์เข้าถึงที่เก็บ Git แบบอ่านอย่างเดียว
  • ไม่เก็บค่าลับเป็นข้อความธรรมดาใน Git
  • กำหนดสิทธิ์ตามบทบาทให้แต่ละทีมเห็นเฉพาะแอปของตัวเอง

ทำไมควรรัน Argo CD บน Cloud Server ของ THAI DATA CLOUD

Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง

ใช้กับคลัสเตอร์ K3s หรือ RKE2 ที่รันบน Cloud Server ในไทยได้โดยตรง

ดึงไฟล์จาก GitLab ที่ติดตั้งเองในวงเดียวกัน ทำให้กระบวนการ Deploy ไม่ต้องออกอินเทอร์เน็ต

จัดการคลัสเตอร์หลายชุดทั้งทดสอบและจริงจากศูนย์กลางเดียวในประเทศ

คำถามที่พบบ่อยเกี่ยวกับ Argo CD

Argo CD ต่างจาก Jenkins อย่างไร

Jenkins เป็นเครื่องมือสั่งงานทั่วไปที่มักใช้ทั้งบิลด์และ Deploy ส่วน Argo CD ทำเฉพาะการนำสถานะจาก Git ไปใช้กับ Kubernetes ทีมส่วนใหญ่ใช้คู่กันโดยให้ CI บิลด์และอัปเดตไฟล์ใน Git แล้วให้ Argo CD จัดการส่วน Deploy

ต้องใช้ Kubernetes ไหม

ต้องใช้ เพราะออกแบบมาสำหรับ Kubernetes โดยเฉพาะ ถ้าระบบยังรันบนเครื่องธรรมดา ควรใช้เครื่องมืออย่าง Ansible หรือไปป์ไลน์ CI ที่ Deploy ผ่าน SSH แทน

ควรตั้งให้ซิงก์อัตโนมัติไหม

ระบบทดสอบตั้งอัตโนมัติได้เต็มที่ ส่วนระบบจริงหลายองค์กรเลือกให้กดยืนยันก่อน เพื่อควบคุมช่วงเวลาที่เปลี่ยนแปลงและลดผลกระทบต่อผู้ใช้

ให้เราติดตั้ง Argo CD ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด