Kubernetes dan Private Cloud
Where in the admin: Kubernetes: Infrastructure › Cloud provider › CloudStack › Kubernetes (CKS) (
/infra/cloudstack?tab=k8s), lalu Services › Kubernetes (Overview, Clusters, Versions, Policy). Private Cloud: Services › Private Cloud (Overview/vpc, VPC/vpc/list, Plans & pricing/vpc/plans). Aktifkan kedua modul di bawah System › Admin › License & updates.
Fungsi
- Kubernetes. Pelanggan membuat klaster Kubernetes terkelola di CloudStack Anda dengan CloudStack Kubernetes Service (CKS). Control plane gratis; pelanggan membayar untuk node worker. NexCMP membuat jaringan terpisah dan IP publik untuk setiap klaster serta memisahkan klaster tiap pelanggan.
- Private Cloud. Pelanggan mendapatkan jaringan privat (CloudStack VPC) dengan router, subnet (tier), aturan firewall (network ACL), dan mesin virtual di dalamnya. Ini dijual berdasarkan paket bandwidth dengan kecepatan dedikasi tanpa meteran (misalnya 50, 100, 500 Mbps, 1 dan 3 Gbps). Setiap pelanggan dapat memiliki satu VPC secara default.
Keduanya dibangun di atas CloudStack dan menggunakan API-nya melalui koneksi yang sama.
Persyaratan
Kubernetes
| Item | Persyaratan |
|---|---|
| CloudStack | 4.23 (diuji). CKS harus diaktifkan (cloud.kubernetes.service.enabled = true). |
| Akun | Akun Domain Admin di domain khusus, agar NexCMP dapat membuat project CloudStack untuk setiap pelanggan dan batas sumber daya di dalamnya. Lihat CloudStack. |
endpoint.url | Setelan global CloudStack harus mengarah ke API manajemen Anda, yang dapat dijangkau dari VM cluster. NexCMP menampilkan nilai dan hasil pemeriksaan endpoint. |
| Versi | Setidaknya satu entri versi Kubernetes yang didukung beserta ISO binernya, dalam status Enabled. Versi yang sudah melewati batas akhir masa pakai (end of life) tidak dapat dijual. |
| Offering control-plane | Service offering gratis dengan tepat 2 vCPU, 2048 MB RAM dan batasan CPU (limitcpuuse = true), yang terlihat oleh akun tersebut. Server menolak hal lainnya dengan cp_offering_invalid. |
| Jaringan | Network offering terisolasi yang mendukung CKS dan dalam keadaan aktif. |
| IPs | Alamat IPv4 publik gratis dalam rentang yang dapat dijual; setiap cluster menggunakan satu. |
| Kapasitas | Setiap cluster memakan 2 hingga 4 GB RAM untuk control plane dan satu VM router kecil. Perhatikan tab kapasitas. |
Private Cloud
| Item | Persyaratan |
|---|---|
| CloudStack | 4.23 (diuji) dengan VPC diaktifkan. |
| VPC offering | Satu VPC offering. Offering dual-stack juga memberikan IPv6 /64 ke setiap tier. |
| Network offering tier | Satu network offering per paket bandwidth, dibuat untuk VPC, dengan network rate (Mbps) yang sama dengan paket tersebut, ditambah satu offering terkunci sebesar 1 Mbps yang diterapkan saat VPC dikunci karena keterlambatan pembayaran. |
| Akun | Akun khusus (disarankan Domain Admin). Jaringan VPC berada di dalam akun, bukan di dalam project. |
| IPs | Alamat IPv4 publik gratis (setiap VPC menggunakan satu untuk NAT sumber). |
| Ruang alamat | Setiap VPC menerima /16 dari 10.128.0.0/9. Jaga agar rentang tersebut tetap tidak digunakan pada jaringan Anda sendiri. |
| Bergantung pada | CloudStack terhubung; modul Private Cloud. |
Siapkan infrastruktur
Kubernetes: aktifkan CKS dan tambahkan versi
Aktifkan service dan tetapkan endpoint, lalu mulai ulang server manajemen:
bashcmk 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-managementendpoint.urldipanggil kembali oleh controller cluster, sehingga harus berupa alamat yang dapat dijangkau oleh VM cluster.Bangun ISO biner Kubernetes untuk versi yang ingin Anda jual, dengan skrip
create-kubernetes-binaries-iso.shdari pohon sumber CloudStack, host di web server, dan daftarkan:bashcmk 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,isostateTunggu hingga status ISO menjadi Ready dan versinya menjadi Enabled.
Buat control-plane offering, dibatasi untuk domain NexCMP:
bashcmk create serviceoffering name=K8S-CP-2-2 displaytext="Kubernetes control plane" \ cpunumber=2 cpuspeed=1000 memory=2048 limitcpuuse=true offerha=false domainid=<domain-id>Periksa apakah network offering CKS sudah diaktifkan:
bashcmk list networkofferings state=Enabled forvpc=false filter=id,name
Private Cloud: buat offering
Di UI CloudStack (Service Offerings › Network Offerings › Add network offering) atau dengan cmk:
Daftar apa yang Anda miliki:
bashcmk list vpcofferings filter=id,name,state cmk list networkofferings forvpc=true filter=id,name,networkrate,stateGunakan VPC offering yang aktif (dual-stack jika Anda ingin IPv6). Jika Anda memerlukan yang baru, klon VPC offering default CloudStack dan aktifkan.
Untuk setiap paket bandwidth yang Anda jual, buat network offering untuk VPC (klon "isolated network offering for VPC networks" default) dan tetapkan Network rate (Mb/s) ke kecepatan paket tersebut:
50,100,500,1000,3000. Aktifkan setiap offering.Buat satu offering lagi dengan network rate 1 (
VPC-LOCKED-1M) untuk VPC yang dikunci: pelanggan masih dapat menjangkau server mereka melalui SSH, tetapi kecepatannya dibatasi.Catat UUID dari setiap offering. NexCMP membutuhkannya pada bagian berikutnya.
ID offering yang disertakan tidak ada di cloud Anda
Formulir Private Cloud telah terisi sebelumnya dengan UUID offering yang milik instalasi CloudStack lain. Ganti setiap bagian dengan milik Anda sendiri, atau pesanan VPC pertama akan gagal.
Hubungkan di NexCMP
Kubernetes
Buka Infrastructure › Cloud provider › CloudStack dan pilih tab Kubernetes (CKS). Kartu di sebelah kanan CKS status on CloudStack (read-only) menampilkan
kubernetesserviceenabled,endpoint.urldengan Endpoint check, offering jaringan CKS, pengaturancloud.kubernetes.*serta daftar ISO dan versi. Klik Recheck setelah Anda memperbaiki sesuatu.Di Sales config, pilih Control plane Offering (peringatan akan muncul jika tidak persis 2 vCPU / 2048 MB / batas CPU), tentukan Max workers per cluster (1 hingga 9: CKS mengizinkan 10 node termasuk node kontrol), aktifkan tombol Enable CKS for this backend dan klik Save. Tombol akan tetap nonaktif hingga offering dipilih.

Buka Services › Kubernetes › Versions dan klik Sync from CloudStack. Aktifkan tombol Available for new clusters untuk versi yang Anda jual, tentukan versi default dan, jika Anda mau, tanggal End of life (EOL).
Buka Services › Kubernetes › Policy. Di Worker plans tambahkan paket dengan Plan code (A-Z, 0-9, tanda hubung, maksimal 16 karakter). Tentukan NVMe per worker (GB), Min and max workers serta batas cluster (cluster aktif per akun, pembuatan per 24 jam, batas global, operasi CKS bersamaan). Kemudian aktifkan tombol Sell Kubernetes (CKS). Setidaknya satu paket harus tetap dijual.

Private Cloud
Buka Services › Private Cloud (Ikhtisar). Di kartu kebijakan, ganti VPC offering dan Locked offering tier dengan UUID Anda sendiri. Periksa batas (VPC per akaun, tier, VM, dan aturan ACL per VPC, saldo dalam jam biaya paket yang diperlukan untuk membuat, perubahan paket per 24 jam, operasi bersamaan di mana 0 adalah penghentian darurat) serta server DNS. Klik Save (alasan akan diminta).

Buka Services › Private Cloud › Plans & pricing. Untuk setiap paket, klik Edit dan tentukan VND price per month, On sale, serta UUID CloudStack tier offering yang nilai bandwidth-nya setara dengan Mbps paket tersebut. Baris ini menampilkan biaya dan keuntungan pada penggunaan penuh, sehingga Anda dapat melihat paket mana yang berada di bawah biaya Anda.

Aktifkan tombol Sell Private Cloud. Untuk mencobanya terlebih dahulu, tambahkan ID akun pengujian ke Beta accounts: akun tersebut dapat menggunakan layanan saat tombol penjualan nonaktif.
Verifikasi
- Kubernetes: kartu status menampilkan
kubernetesserviceenabled: true, pemeriksaan endpoint yang baik, dan versi yang diaktifkan. Buat cluster uji coba satu worker sebagai pelanggan; cluster tersebut harus mencapai status berjalan dankubectl get nodesharus menunjukkan status siap. Hapus setelahnya: jaringan dan IP akan dikembalikan ke pool. - Private Cloud: buat VPC dengan paket terkecil sebagai pelanggan uji coba. VPC menampilkan status aktif, tier mendapatkan subnet-nya, VM dalam tier dapat mengakses internet melalui router VPC, dan Change plan ke paket yang lebih besar akan diterapkan dalam sekitar 20 detik tanpa memutus koneksi.
Batasan dan catatan
- Kubernetes: worker ditagih seperti VM berdasarkan harga paket dan dihitung sebagai VM dalam batas VM. Sebuah cluster dapat memiliki maksimal 9 worker karena batasan CKS yang membatasi hingga 10 node.
- Kubernetes: control plane, router, dan IP publik dari sebuah cluster digratiskan untuk pelanggan; Anda yang menanggung biayanya.
- Private Cloud: semua paket bersifat unmetered. Harga dalam formulir adalah Dong Vietnam per bulan; kolom biaya menggunakan harga referensi yang bukan milik Anda, jadi gunakan angka Anda sendiri.
- VPC yang terkunci dibatasi hingga 1 Mbps, tidak ditagih, dan tidak dihapus secara otomatis.
- Private Cloud menggunakan satu router per VPC, bukan pasangan redundan. Jika host-nya gagal, CloudStack akan membangunnya kembali dalam beberapa menit.
Pemecahan Masalah
| Gejala | Penyebab | Solusi |
|---|---|---|
cp_offering_invalid / "Offering ini bukan 2 vCPU / 2048 MB / limitcpuuse" | Offering control-plane memiliki ukuran lain atau tidak memiliki batas CPU | Buat offering seperti pada langkah 3 dan pilih kembali. |
| Tombol Enable CKS nonaktif | Tidak ada offering control-plane yang dipilih | Pilih salah satu terlebih dahulu. |
kubernetesserviceenabled: false | CKS nonaktif di CloudStack | Aktifkan dan mulai ulang management server. |
| Pemeriksaan endpoint gagal | endpoint.url tidak dapat dijangkau dari VM kluster | Atur URL yang dapat dijangkau, mulai ulang management server, klik Recheck. |
| "EOL: tidak dapat diaktifkan untuk dijual" | Tanggal akhir masa pakai versi telah lewat | Daftarkan versi yang lebih baru. |
| "Tidak ada versi: klik Sync dari CloudStack" | Tidak ada versi Kubernetes yang terdaftar | Daftarkan versi dan lakukan sinkronisasi. |
| "Backend CKS MATI: pelanggan tidak dapat membuat klaster meskipun flag penjualan diaktifkan" | Tombol penjualan aktif tetapi backend CKS nonaktif | Aktifkan CKS pada tab CloudStack. |
| "Setidaknya 1 plan harus dijual" | Plan pekerja terakhir dihapus | Pertahankan setidaknya satu plan, atau nonaktifkan penjualan Kubernetes. |
| Kluster macet saat dibuat | Kapasitas tidak mencukupi atau ISO tidak ada | Periksa tab kapasitas dan status ISO versi tersebut. |
| VPC baru gagal pada langkah pertama | Offering VPC atau offering tier ID tidak valid | Ganti setiap UUID offering dengan yang ada di CloudStack Anda. |
| "cs_offering_id harus berupa UUID" | ID offering bukan berupa UUID | Tempel ID dari cmk list networkofferings. |
| Perubahan plan gagal | Offering tier baru tidak ada atau network rate salah | Periksa UUID offering dan network rate-nya. |