---
title: Kubernetes และ Private Cloud
description: ขายคลัสเตอร์ Kubernetes (CKS) และ Private Cloud แบนด์วิดท์เฉพาะ (VPC) บน CloudStack: ข้อเสนอที่จำเป็นและจุดเชื่อมต่อ
url: https://nexcmp.com/th/docs/infrastructure/kubernetes-and-private-cloud/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Kubernetes และ Private Cloud {#kubernetes-and-private-cloud}

> **ตำแหน่งในหน้าผู้ดูแลระบบ:** Kubernetes: Infrastructure › Cloud provider › CloudStack › Kubernetes (CKS) (`/infra/cloudstack?tab=k8s`) จากนั้นไปที่ Services › Kubernetes (Overview, Clusters, Versions, Policy) Private Cloud: Services › Private Cloud (Overview `/vpc`, VPC `/vpc/list`, Plans & pricing `/vpc/plans`) เปิดใช้งานทั้งสองโมดูลได้ที่ System › Admin › License & updates

## What it does {#what-it-does}

- **Kubernetes.** ลูกค้าสามารถสร้างคลัสเตอร์ Kubernetes แบบจัดการบน CloudStack ของคุณได้ด้วย CloudStack Kubernetes Service (CKS) Control plane ไม่มีค่าใช้จ่าย ลูกค้าชำระเงินสำหรับโหนด **worker** NexCMP จะสร้างเครือข่ายและ IP สาธารณะแยกต่างหากสำหรับแต่ละคลัสเตอร์ พร้อมแยกคลัสเตอร์ของลูกค้าแต่ละรายออกจากกัน
- **Private Cloud.** ลูกค้าจะได้รับเครือข่ายส่วนตัว (CloudStack VPC) พร้อมเราเตอร์, ซับเน็ต (tiers), กฎไฟร์วัล (network ACLs) และเครื่องเสมือนภายในนั้น ขายโดยอิงตาม **แผนแบนด์วิดท์** พร้อมความเร็วเฉพาะแบบไม่จำกัดปริมาณ (เช่น 50, 100, 500 Mbps, 1 และ 3 Gbps) ลูกค้าแต่ละรายสามารถมี VPC ได้ 1 รายการเป็นค่าเริ่มต้น

ทั้งสองระบบสร้างขึ้นบน [CloudStack](https://nexcmp.com/th/docs/infrastructure/cloudstack/) และใช้งาน API ผ่านการเชื่อมต่อเดียวกัน

## ข้อกำหนด {#requirements}

### Kubernetes {#kubernetes}

| Item | Requirement |
|---|---|
| CloudStack | 4.23 (ทดสอบแล้ว) CKS จะต้อง **เปิดใช้งาน** (`cloud.kubernetes.service.enabled = true`) |
| บัญชี | บัญชี **Domain Admin** ในโดเมนเฉพาะ เพื่อให้ NexCMP สามารถสร้างโปรเจกต์ CloudStack สำหรับลูกค้าแต่ละรายและกำหนดขีดจำกัดทรัพยากรภายในนั้น ดู [CloudStack](https://nexcmp.com/th/docs/infrastructure/cloudstack/#create-a-dedicated-account-and-api-key) |
| `endpoint.url` | การตั้งค่าส่วนกลางของ CloudStack ต้องชี้ไปยัง management API ของคุณ ซึ่งสามารถเข้าถึงได้จาก VM ของคลัสเตอร์ NexCMP จะแสดงค่าและผลลัพธ์ของการตรวจสอบ endpoint |
| เวอร์ชัน | รายการเวอร์ชัน Kubernetes ที่รองรับอย่างน้อยหนึ่งรายการพร้อม ISO ของไบนารี ในสถานะ **Enabled** เวอร์ชันที่พ้นกำหนดซัพพอร์ตแล้วจะไม่สามารถนำมาวางจำหน่ายได้ |
| คอนโทรลเพลนออฟเฟอริง | เซอร์วิสออฟเฟอริงฟรีที่ **มี vCPU 2 vCPU, RAM 2048 MB และจำกัด CPU พอดี** (`limitcpuuse = true`) ซึ่งมองเห็นได้สำหรับบัญชี เซิร์ฟเวอร์จะปฏิเสธค่าอื่นทั้งหมดด้วย `cp_offering_invalid` |
| Network | เน็ตเวิร์กออฟเฟอริงแบบ isolated ที่รองรับ CKS และเปิดใช้งานอยู่ |
| IP | แอดเดอร์ส IPv4 สาธารณะแบบฟรีในช่วงที่เปิดขาย โดยแต่ละคลัสเตอร์จะใช้งานหนึ่งไอพี |
| ความจุ | แต่ละคลัสเตอร์จะใช้ RAM ของคุณ 2 ถึง 4 GB สำหรับคอนโทรลเพลนและ router VM ขนาดเล็ก คอยสังเกตแท็บความจุ |

### Private Cloud {#private-cloud}

| Item | Requirement |
|---|---|
| CloudStack | 4.23 (ทดสอบแล้ว) โดยเปิดใช้งาน VPC |
| VPC ออฟเฟอริง | หนึ่ง VPC ออฟเฟอริง ออฟเฟอริงแบบ dual-stack จะทำให้แต่ละเทียร์ได้รับ IPv6 /64 ด้วยเช่นกัน |
| เทียร์เน็ตเวิร์กออฟเฟอริง | **หนึ่งเน็ตเวิร์กออฟเฟอริงต่อแพ็กเกจแบนด์วิดท์** สร้างขึ้นสำหรับ VPC โดยมี **network rate** (Mbps) เท่ากับแพ็กเกจ บวกกับออฟเฟอริงที่ **ถูกล็อก** ไว้ที่ **1 Mbps** ซึ่งจะถูกใช้งานเมื่อ VPC ถูกล็อกเนื่องจากค้างชำระ |
| บัญชี | บัญชีเฉพาะ (แนะนำให้ใช้ Domain Admin) เน็ตเวิร์ก VPC จะอยู่ในบัญชี ไม่ใช่ในโปรเจกต์ |
| IP | แอดเดอร์ส IPv4 สาธารณะแบบฟรี (แต่ละ VPC จะใช้หนึ่งไอพีสำหรับ source NAT) |
| พื้นที่แอดเดอร์ส | แต่ละ VPC จะได้รับ /16 จาก `10.128.0.0/9` โปรดเว้นช่วงดังกล่าวในเน็ตเวิร์กของคุณเองโดยไม่ใช้งาน |
| ขึ้นอยู่กับ | เชื่อมต่อ CloudStack แล้ว โมดูล **Private Cloud** |

## เตรียมโครงสร้างพื้นฐาน {#prepare-the-infrastructure}

### Kubernetes: เปิดใช้งาน CKS และเพิ่มเวอร์ชัน {#kubernetes-enable-cks-and-add-versions}

1. เปิดใช้งานบริการและตั้งค่า endpoint จากนั้นรีสตาร์ท management server:

   ```bash
   cmk update configuration name=cloud.kubernetes.service.enabled value=true
   cmk update configuration name=endpoint.url value=https://cloudstack.example.com/client/api
   sudo systemctl restart cloudstack-management
   ```

   `endpoint.url` จะถูกเรียกกลับโดยคอนโทรลเลอร์ของคลัสเตอร์ ดังนั้นจึงต้องเป็นแอดเดอร์สที่ VM ของคลัสเตอร์สามารถเข้าถึงได้

2. สร้าง ISO ของไบนารี Kubernetes สำหรับเวอร์ชันที่คุณต้องการขาย ด้วยสคริปต์ `create-kubernetes-binaries-iso.sh` จากซอร์สทรีของ CloudStack โฮสต์ไว้บนเว็บเซิร์ฟเวอร์แล้วลงทะเบียน:

   ```bash
   cmk add kubernetessupportedversion name="Kubernetes 1.35.0" semanticversion=1.35.0 \
     url=https://files.example.com/setup-v1.35.0-calico-amd64.iso zoneid=<zone-id> \
     mincpunumber=2 minmemory=2048
   cmk list kubernetessupportedversions filter=name,semanticversion,state,isostate
   ```

   รอจนกว่าสถานะของ ISO จะเปลี่ยนเป็น **Ready** และเวอร์ชันเป็น **Enabled**

3. สร้างคอนโทรลเพลนออฟเฟอริง โดยจำกัดไว้ที่โดเมนของ NexCMP:

   ```bash
   cmk create serviceoffering name=K8S-CP-2-2 displaytext="Kubernetes control plane" \
     cpunumber=2 cpuspeed=1000 memory=2048 limitcpuuse=true offerha=false domainid=<domain-id>
   ```

4. ตรวจสอบว่าเน็ตเวิร์กออฟเฟอริงของ CKS เปิดใช้งานอยู่:

   ```bash
   cmk list networkofferings state=Enabled forvpc=false filter=id,name
   ```

### Private Cloud: สร้างออฟเฟอริง {#private-cloud-create-the-offerings}

ใน UI ของ CloudStack (**Service Offerings › Network Offerings › Add network offering**) หรือด้วย `cmk`:

1. แสดงรายการสิ่งที่คุณมี:

   ```bash
   cmk list vpcofferings filter=id,name,state
   cmk list networkofferings forvpc=true filter=id,name,networkrate,state
   ```

2. ใช้ VPC ออฟเฟอริงที่เปิดใช้งานแล้ว (แบบ dual-stack หากคุณต้องการ IPv6) หากคุณต้องการรายการใหม่ ให้โคลน VPC ออฟเฟอริงเริ่มต้นของ CloudStack แล้วเปิดใช้งาน
3. สำหรับ **แต่ละ** แพ็กเกจแบนด์วิดท์ที่คุณขาย ให้สร้างเน็ตเวิร์กออฟเฟอริง **สำหรับ VPC** (โคลน "isolated network offering for VPC networks" เริ่มต้น) และตั้งค่า **Network rate (Mb/s)** เป็นความเร็วของแพ็กเกจ: `50`, `100`, `500`, `1000`, `3000` เปิดใช้งานออฟเฟอริงแต่ละรายการ
4. สร้างออฟเฟอริงเพิ่มอีกหนึ่งรายการที่มี **network rate 1** (`VPC-LOCKED-1M`) สำหรับ VPC ที่ถูกล็อก: ลูกค้ายังคงสามารถเข้าถึงเซิร์ฟเวอร์ของตนผ่าน SSH ได้ แต่ความเร็วจะถูกจำกัด
5. จดจำ UUID ของแต่ละแพ็กเกจบริการไว้ NexCMP จะต้องใช้งานในหัวข้อถัดไป

::: warning รหัส offering ที่ระบุไม่มีอยู่ในคลาวด์ของคุณ
แบบฟอร์ม Private Cloud จะถูกกรอกล่วงหน้าด้วย UUID ของ offering ที่เป็นของระบบ CloudStack อื่น ให้แทนที่**ทุก**รายการด้วยของคุณเอง มิฉะนั้นการสั่งซื้อ VPC แรกจะล้มเหลว
:::

## เชื่อมต่อใน NexCMP {#connect-in-nexcmp}

### Kubernetes {#kubernetes-1}

1. เปิด **Infrastructure › Cloud provider › CloudStack** แล้วเลือกแท็บ **Kubernetes (CKS)** การ์ดด้านขวา **CKS status on CloudStack (read-only)** จะแสดง `kubernetesserviceenabled`, `endpoint.url` พร้อม **Endpoint check**, network offering ของ CKS, การตั้งค่า `cloud.kubernetes.*` และรายการ ISO พร้อมเวอร์ชัน คลิก **Recheck** หลังจากที่คุณแก้ไขบางอย่างเสร็จ
2. ใน **Sales config** ให้เลือก **Control plane Offering** (จะมีคำเตือนปรากฏขึ้นหากไม่ใช่ 2 vCPU / 2048 MB / CPU cap พอดี), ตั้งค่า **Max workers per cluster** (1 ถึง 9: CKS อนุญาต 10 โนดรวมโนดควบคุม), เปิดสวิตช์ **Enable CKS for this backend** และคลิก **Save** สวิตช์จะยังคงปิดใช้งานอยู่จนกว่าจะมีการเลือก offering

      ![แท็บ Kubernetes (CKS) ที่เลือก control plane offering ไว้และการ์ดสถานะ CKS](https://nexcmp.com/th/docs/images/infrastructure/kubernetes-and-private-cloud-01-cks.webp)

3. เปิด **Services › Kubernetes › Versions** และคลิก **Sync from CloudStack** เปิดสวิตช์ **Available for new clusters** สำหรับเวอร์ชันที่คุณต้องการขาย กำหนดค่าเริ่มต้น และหากต้องการ ให้ระบุวันที่ **End of life (EOL)** ด้วย


4. เปิด **Services › Kubernetes › Policy** ในส่วน **Worker plans** ให้เพิ่มแผนโดยระบุ **Plan code** (A-Z, 0-9, ขีดกลาง, สูงสุด 16 ตัวอักษร) กำหนดค่า **NVMe per worker (GB)**, **Min and max workers** รวมถึงขีดจำกัดของคลัสเตอร์ (คลัสเตอร์ที่ใช้งานอยู่ต่อบัญชี, การสร้างต่อ 24 ชั่วโมง, ขีดจำกัดรวมทั่วโลก, การทำงาน CKS พร้อมกัน) จากนั้นเปิดสวิตช์ **Sell Kubernetes (CKS)** ต้องมีอย่างน้อยหนึ่งแผนที่เปิดขายอยู่

      ![นโยบาย Kubernetes พร้อมแผน worker และสวิตช์การขาย](https://nexcmp.com/th/docs/images/infrastructure/kubernetes-and-private-cloud-03-policy.webp)

### Private Cloud {#private-cloud-1}

1. เปิด **Services › Private Cloud** (ภาพรวม) ในการ์ดนโยบาย ให้แทนที่ **VPC offering** และ **Locked offering tier** ด้วย UUID ของคุณเอง ตรวจสอบขีดจำกัด (VPC ต่อบัญชี, เทียร์, VM และกฎ ACL ต่อ VPC, ยอดเงินคงเหลือเป็นชั่วโมงของค่าบริการแผนที่จำเป็นต้องใช้ในการสร้าง, การเปลี่ยนแผนต่อ 24 ชั่วโมง, การทำงานพร้อมกันโดย 0 หมายถึงการหยุดฉุกเฉิน) และเซิร์ฟเวอร์ DNS คลิก **Save** (ระบบจะถามเหตุผล)

      ![ภาพรวม Private Cloud พร้อมฟิลด์ VPC offering และ locked offering](https://nexcmp.com/th/docs/images/infrastructure/kubernetes-and-private-cloud-04-vpc-policy.webp)

2. เปิด **Services › Private Cloud › Plans & pricing** สำหรับแต่ละแผน ให้คลิก **Edit** แล้วกำหนด **VND price per month**, **On sale** และ UUID ของ **CloudStack tier offering** ที่มีอัตราเครือข่ายเท่ากับ Mbps ของแผนนั้น แถวจะแสดงต้นทุนและกำไรเมื่อใช้งานเต็มที่ เพื่อให้คุณเห็นว่าแผนใดอยู่ต่ำกว่าต้นทุนของคุณ

      ![หน้าต่างแก้ไขแผนสำหรับแผนแบนด์วิดท์ Private Cloud](https://nexcmp.com/th/docs/images/infrastructure/kubernetes-and-private-cloud-05-vpc-plan.webp)

3. เปิดสวิตช์ **Sell Private Cloud** หากต้องการทดสอบก่อน ให้เพิ่ม ID บัญชีทดสอบลงใน **Beta accounts**: บัญชีเหล่านั้นจะสามารถใช้บริการได้ในขณะที่สวิตช์การขายปิดอยู่

## ตรวจสอบ {#verify}

1. Kubernetes: การ์ดสถานะแสดง `kubernetesserviceenabled: true`, การตรวจสอบ endpoint ที่ถูกต้อง และเวอร์ชันที่เปิดใช้งาน ลองสร้างคลัสเตอร์ทดสอบแบบ 1 worker ในฐานะลูกค้า คลัสเตอร์ควรเปลี่ยนเป็นสถานะ running และ `kubectl get nodes` ควรแสดงว่าพร้อมใช้งาน ลบมันทิ้งทีหลัง: เน็ตเวิร์กและ IP จะถูกคืนกลับสู่พูล
2. Private Cloud: สร้าง VPC ด้วยแผนที่เล็กที่สุดในฐานะลูกค้าทดสอบ VPC จะแสดงสถานะ active, เทียร์ได้รับซับเน็ต, VM ในเทียร์สามารถเข้าถึงอินเทอร์เน็ตผ่าน VPC router ได้ และการใช้ **Change plan** ไปยังแผนที่ใหญ่ขึ้นจะมีผลภายในประมาณ 20 วินาทีโดยที่การเชื่อมต่อไม่หลุด

## ข้อจำกัดและหมายเหตุ {#limits-and-notes}

- Kubernetes: worker จะถูกเรียกเก็บเงินเหมือน VM ตามราคาของแผนและนับเป็น VM ในขีดจำกัดของ VM คลัสเตอร์สามารถมี worker ได้สูงสุด 9 ตัวเนื่องจากข้อจำกัด CKS ที่ 10 โนด
- Kubernetes: control plane, router และ public IP ของคลัสเตอร์ไม่มีค่าใช้จ่ายสำหรับลูกค้า โดยคุณจะเป็นผู้รับภาระต้นทุนส่วนนี้
- Private Cloud: ทุกแผนเป็นแบบ **unmetered** ราคาในแบบฟอร์มเป็นดองเวียดนามต่อเดือน คอลัมน์ต้นทุนจะใช้ราคาอ้างอิงที่ไม่ใช่ของคุณ ดังนั้นโปรดใช้ตัวเลขของคุณเอง
- VPC ที่ถูกล็อกจะถูกจำกัดความเร็วไว้ที่ 1 Mbps, ไม่มีการเรียกเก็บเงิน และไม่ถูกลบโดยอัตโนมัติ
- Private Cloud ใช้ router หนึ่งตัวต่อ VPC ไม่ใช่แบบคู่สำรอง หากโฮสต์ของมันล่ม CloudStack จะทำการสร้างขึ้นใหม่ภายในไม่กี่นาที

## การแก้ Problme {#troubleshooting}

| อาการ | สาเหตุ | วิธีแก้ปัญหา |
|---|---|---|
| `cp_offering_invalid` / "ข้อเสนอนี้ไม่ใช่ 2 vCPU / 2048 MB / limitcpuuse" | ข้อเสนอ control-plane มีขนาดอื่นหรือไม่มีการจำกัด CPU | สร้างข้อเสนอตามขั้นตอนที่ 3 และเลือกใหม่อีกครั้ง |
| สวิตช์ **Enable CKS** ถูกปิดอยู่ | ไม่ได้เลือกข้อเสนอ control-plane | โปรดเลือกหนึ่งรายการก่อน |
| `kubernetesserviceenabled: false` | CKS ถูกปิดใช้งานใน CloudStack | เปิดใช้งานและรีสตาร์ท management server |
| การตรวจสอบ Endpoint ล้มเหลว | `endpoint.url` ไม่สามารถเข้าถึงได้จาก VM ของคลัสเตอร์ | ตั้งค่า URL ที่เข้าถึงได้, รีสตาร์ท management server, แล้วคลิก **Recheck** |
| "EOL: ไม่สามารถเปิดใช้งานสำหรับการขายได้" | เลยกำหนดวันสิ้นสุดอายุ (end-of-life) ของเวอร์ชันนี้แล้ว | ลงทะเบียนเวอร์ชันใหม่กว่า |
| "ไม่มีเวอร์ชัน: คลิก Sync from CloudStack" | ยังไม่ได้ลงทะเบียนเวอร์ชัน Kubernetes | ลงทะเบียนเวอร์ชันและซิงค์ |
| "แบ็กเอนด์ CKS ปิดอยู่: ลูกค้าไม่สามารถสร้างคลัสเตอร์ได้แม้ว่าจะเปิดใช้งานแฟล็กการขายแล้วก็ตาม" | เปิดสวิตช์การขายไว้แต่แบ็กเอนด์ CKS ปิดอยู่ | เปิดใช้งาน CKS บนแท็บ CloudStack |
| "ต้องมีแผนอย่างน้อย 1 แผนที่วางจำหน่าย" | แผน worker ตัวสุดท้ายถูกลบออก | คงแผนไว้อย่างน้อยหนึ่งแผน หรือปิดการขาย Kubernetes |
| คลัสเตอร์ค้างอยู่ในสถานะกำลังสร้าง | ทรัพยากรไม่เพียงพอหรือ ISO หายไป | ตรวจสอบแท็บความจุและสถานะ ISO ของเวอร์ชัน |
| VPC ใหม่ล้มเหลวในขั้นตอนแรก | ข้อเสนอ VPC หรือข้อเสนอ tier ไม่ถูกต้อง | แทนที่ UUID ของข้อเสนอทั้งหมดด้วยค่าจาก CloudStack ของคุณ |
| "cs_offering_id ต้องเป็น UUID" | รหัสข้อเสนอไม่ใช่ UUID | วางรหัสจาก `cmk list networkofferings` |
| การเปลี่ยนแผนล้มเหลว | ข้อเสนอ tier ใหม่ไม่มีอยู่จริงหรืออัตราเครือข่ายไม่ถูกต้อง | ตรวจสอบ UUID ของข้อเสนอและอัตราเครือข่าย |


