# Kubernetes on NIPA Cloud Space with Rancher

Kubernetes (K8s) ซึ่งเป็นแพลตฟอร์ม Container Orchestration ที่ได้รับความนิยมสูงสุดในปัจจุบัน ได้กลายเป็นเครื่องมือสำคัญสำหรับสถาปัตยกรรมแบบ Microservices และ Cloud-Native NIPA Cloud Space ได้นำเทคโนโลยีนี้มาให้บริการบนโครงสร้างพื้นฐานคลาวด์ที่ทันสมัยและมีประสิทธิภาพสูง เพื่อตอบโจทย์ความต้องการของธุรกิจในยุคดิจิทัล

#### สรุปสถาปัตยกรรม Kubernetes บน NIPA Cloud Space

<figure><img src="/files/71d15k0I86dmh0LyQN5d" alt=""><figcaption></figcaption></figure>

รูปนี้แสดงสถาปัตยกรรมของ Managed Kubernetes (KaaS) ที่ทำงานบน NIPA Cloud โดยมี Rancher เป็นเครื่องมือหลักในการบริหารจัดการ (Orchestrator) สามารถสรุปการทำงานเป็นส่วนๆ ได้ดังนี้:

### **ส่วนการจัดการ (Management Layer)**

* Admin/System Operation: คือผู้ดูแลระบบ ใช้ Rancher ในการสั่งการ, ติดตั้ง, และดูแล Cluster ทั้งหมด
* Rancher: ทำหน้าที่เป็นศูนย์กลางการจัดการ Kubernetes Cluster (Managed K8s) ทำให้ดูแล Cluster ได้ง่ายผ่าน UI
* RKE2: คือ Kubernetes Distribution ที่ Rancher ใช้ในการติดตั้ง ซึ่งมีความปลอดภัยและเสถียรภาพสูง
* Node Pools: คือการแบ่งกลุ่มของเซิร์ฟเวอร์ (VM) ตามหน้าที่อย่างชัดเจน:
  * Master Pool: สำหรับ Control Plane ของ Kubernetes (สมองของระบบ)
  * Worker Pool: สำหรับรันแอปพลิเคชันทั่วไป (Workloads)
  * Cronjob Pool: สำหรับรันงานที่ทำงานตามเวลา (Scheduled Tasks) เพื่อไม่ให้กระทบแอปหลัก
  * Special Node Pool: สามารถสร้าง Pool เฉพาะทางได้ เช่น GPU สำหรับงาน AI/ML หรือ Highmem สำหรับงานที่ต้องการ RAM สูง

### **ส่วนการเชื่อมต่อกับ Cloud (Cloud Integration)**

สถาปัตยกรรมนี้เชื่อมต่อกับบริการของ NIPA Cloud โดยตรงผ่าน:

* Cluster Autoscaler: สั่ง เพิ่ม/ลดจำนวน Node (VM) อัตโนมัติ ผ่าน Cloud API ตามปริมาณการใช้งานจริง ช่วยควบคุมค่าใช้จ่ายและรองรับโหลดที่พุ่งสูงขึ้น
* CSI (Container Storage Interface): ให้ Pod (Container) สามารถเชื่อมต่อกับ Cloud Block Storage (Premium-SSD, Standard-SSD, HDD) เพื่อเก็บข้อมูลแบบถาวร (Persistent Storage)
  * รองรับการใช้งานกับ Block Storage ของ  NIPA Cloud Space ทั้ง 3 Type ได้แก่ Standard-SSD, Premium-SSD, Standard-HDD ในรูปแบบของ ReadWriteOne
  * หากต้องการใช้งานรูปแบบ ReadWriteMany สามารถติดตั้ง NFS Server แล้วนำมาเชื่อมต่อเป็น Storage Class ได้
* CCI (Cloud Controller Interface): เมื่อมีการสร้าง Service Type `LoadBalancer` ใน Kubernetes ระบบจะไปสร้าง Cloud Load Balancer ของ NIPA Cloud ให้โดยอัตโนมัติ

### **ส่วนการทำงานภายใน Cluster (Internal Components)**

* Ingress Controller (APISIX/Nginx): เป็นประตูหลักในการรับ Traffic จากภายนอกเข้ามายัง Service ภายใน Cluster โดยมีการแบ่ง Ingress 2 ส่วนชัดเจน:
  * `ncs-ingress`: สำหรับ Traffic ของผู้ดูแลระบบ เพื่อเข้าถึงเครื่องมือ Monitoring
  * `app-ingress`: สำหรับ Traffic ของผู้ใช้งานทั่วไป เพื่อเข้าถึงแอปพลิเคชัน
* Monitoring & Logging (`ncs-monitor`):
  * Prometheus: เก็บ Metrics ต่างๆ ของระบบ
  * Grafana: แสดงผล Dashboard สวยงามจากข้อมูลของ Prometheus
  * Filebeat: รวบรวม Log จากทุกส่วนและส่งออกไปยัง Logging Service ภายนอก
* Networking (`kube-system`):
  * CNI (Cilium/Calico): จัดการเรื่อง Network ระหว่าง Pod และใช้บังคับ Network Policies (เหมือน Firewall ระหว่าง Pod) เพื่อเพิ่มความปลอดภัย
  * CoreDNS/NodeLocalDNS: ทำหน้าที่เป็น DNS ภายใน Cluster ช่วยให้ Service ต่างๆ คุยกันเองได้ผ่านชื่อ และมี Cache ที่แต่ละ Node เพื่อลดภาระ DNS กลาง

### **ส่วนของแอปพลิเคชัน (Application Workloads)**

* &#x20;namespace:`app-prod` เป็นพื้นที่สำหรับรันแอปพลิเคชันของผู้ใช้งานจริง เช่น NodeJS, PHP, .Net API Server ซึ่งจะถูกเรียกใช้งานผ่าน `app-ingress`

นี่คือสถาปัตยกรรม KaaS ที่สมบูรณ์และทันสมัย มีการแบ่งส่วนการทำงานชัดเจน (Separation of Concerns) ทำให้ดูแลรักษาง่าย มีระบบ Automation สูง (Autoscaling) เชื่อมต่อกับบริการ Cloud ได้อย่างสมบูรณ์ (CSI/CCI) และมีเครื่องมือ Monitoring ครบครัน พร้อมใช้งานได้ทันที จุดเด่นคือการใช้ Rancher ในการบริหารจัดการ และการออกแบบ Node Pools ที่ยืดหยุ่น ทำให้สามารถรองรับ Workload ได้หลากหลายรูปแบบอย่างมีประสิทธิภาพ


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-epc.gitbook.io/ncs-documents/tutorial/kubernetes-on-nipa-cloud-space-with-rancher.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
