Kubernetes e Private Cloud
Dove nel pannello di amministrazione: Kubernetes: Infrastructure › Cloud provider › CloudStack › Kubernetes (CKS) (
/infra/cloudstack?tab=k8s), quindi Services › Kubernetes (Overview, Clusters, Versions, Policy). Private Cloud: Services › Private Cloud (Overview/vpc, VPC/vpc/list, Plans & pricing/vpc/plans). Attiva entrambi i moduli in System › Admin › License & updates.
Descrizione
- Kubernetes. I clienti creano cluster Kubernetes gestiti sul tuo CloudStack tramite CloudStack Kubernetes Service (CKS). Il control plane è gratuito; i clienti pagano per i nodi worker. NexCMP crea una rete separata e un IP pubblico per ciascun cluster, mantenendo isolati i cluster dei diversi clienti.
- Private Cloud. I clienti ottengono una rete privata (un VPC di CloudStack) con router, subnet (tier), regole firewall (network ACL) e macchine virtuali all'interno. Viene venduto tramite piano di banda con velocità dedicata e illimitata (ad esempio 50, 100, 500 Mbps, 1 e 3 Gbps). Ciascun cliente può avere un VPC per impostazione predefinita.
Entrambi sono basati su CloudStack e utilizzano la sua API tramite la stessa connessione.
Requisiti
Kubernetes
| Elemento | Requisito |
|---|---|
| CloudStack | 4.23 (testato). CKS deve essere abilitato (cloud.kubernetes.service.enabled = true). |
| Account | Un account Domain Admin nel dominio dedicato, in modo che NexCMP possa creare un progetto CloudStack per ciascun cliente e i relativi limiti di risorsa. Vedi CloudStack. |
endpoint.url | L'impostazione globale di CloudStack deve puntare alla tua API di gestione, raggiungibile dalle VM del cluster. NexCMP mostra il valore e l'esito di un controllo dell'endpoint. |
| Versioni | Almeno una voce di versione supportata per Kubernetes con la relativa ISO dei binari, in stato Enabled. Le versioni giunte a fine vita non possono essere messe in vendita. |
| Offerta del piano di controllo | Un'offerta di servizio gratuita con esattamente 2 vCPU, 2048 MB RAM e un limite CPU (limitcpuuse = true), visibile all'account. Il server rifiuta qualsiasi altra configurazione con cp_offering_invalid. |
| Rete | Un'offerta di rete isolata compatibile con CKS che sia abilitata. |
| IP | Indirizzi IPv4 pubblici gratuiti nell'intervallo vendibile; ogni cluster ne utilizza uno. |
| Capacità | Ciascun cluster richiede da 2 a 4 GB di RAM per il piano di controllo e una piccola VM router. Monitora le schede della capacità. |
Private Cloud
| Elemento | Requisito |
|---|---|
| CloudStack | 4.23 (testata) con VPC abilitato. |
| Offerta VPC | Un'offerta VPC. Un'offerta dual-stack assegna a ogni livello anche un IPv6 /64. |
| Offerte di rete per i livelli | Un'offerta di rete per ogni piano di banda, creata per VPC, con la velocità di rete (Mbps) pari a quella del piano, più un'offerta bloccata di 1 Mbps applicata quando un VPC viene bloccato per mancato pagamento. |
| Account | L'account dedicato (consigliato Domain Admin). Le reti VPC rimangono nell'account, non nei progetti. |
| IP | Indirizzi IPv4 pubblici gratuiti (ciascun VPC ne usa uno per il NAT di origine). |
| Spazio di indirizzamento | Ciascun VPC riceve un /16 da 10.128.0.0/9. Mantieni tale intervallo inutilizzato sulle tue reti. |
| Dipende da | CloudStack connesso; il modulo Private Cloud. |
Prepara l'infrastruttura
Kubernetes: abilita CKS e aggiungi le versioni
Abilita il servizio e imposta l'endpoint, quindi riavvia il server di gestione:
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.urlviene richiamato dal controller del cluster, quindi deve essere un indirizzo raggiungibile dalle VM del cluster.Crea un'ISO dei binari Kubernetes per la versione che desideri vendere, utilizzando lo script
create-kubernetes-binaries-iso.shdell'albero sorgente di CloudStack, ospitala su un server web e registrala: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,isostateAttendi che lo stato dell'ISO diventi Ready e la versione sia Enabled.
Crea l'offerta del piano di controllo, limitata al dominio 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>Verifica che un'offerta di rete CKS sia abilitata:
bashcmk list networkofferings state=Enabled forvpc=false filter=id,name
Private Cloud: crea le offerte
Nell'interfaccia utente di CloudStack (Service Offerings › Network Offerings › Add network offering) o tramite cmk:
Elenca quelle esistenti:
bashcmk list vpcofferings filter=id,name,state cmk list networkofferings forvpc=true filter=id,name,networkrate,stateUsa un'offerta VPC abilitata (dual-stack se desideri IPv6). Se te ne serve una nuova, clona l'offerta VPC predefinita di CloudStack e abilitala.
Per ciascun piano di banda che vendi, crea un'offerta di rete per VPC (clona l'offerta predefinita "isolated network offering for VPC networks") e imposta Network rate (Mb/s) sulla velocità del piano:
50,100,500,1000,3000. Abilita ciascuna offerta.Crea un'ulteriore offerta con network rate 1 (
VPC-LOCKED-1M) per i VPC bloccati: i clienti potranno comunque raggiungere i propri server via SSH, ma la velocità sarà limitata.Prendi nota dell'UUID di ogni offerta. NexCMP ne ha bisogno nella sezione successiva.
Gli ID delle offerte fornite non esistono nel tuo cloud
Il modulo Private Cloud è precompilato con gli UUID di offerta appartenenti a un'altra installazione CloudStack. Sostituisci ciascuno di essi con il tuo, altrimenti il primo ordine di VPC non andrà a buon fine.
Collega in NexCMP
Kubernetes
Apri Infrastructure › Cloud provider › CloudStack e scegli la scheda Kubernetes (CKS). La scheda a destra CKS status on CloudStack (read-only) mostra
kubernetesserviceenabled,endpoint.urlcon Endpoint check, l'offerta di rete CKS, le impostazionicloud.kubernetes.*e l'elenco di ISO e versioni. Fai clic su Recheck dopo aver risolto un problema.In Sales config, scegli Control plane Offering (viene visualizzato un avviso se non è esattamente 2 vCPU / 2048 MB / limite CPU), imposta Max workers per cluster (da 1 a 9: CKS consente 10 nodi incluso il nodo di controllo), attiva l'interruttore Enable CKS for this backend e fai clic su Save. L'interruttore rimane disabilitato finché non viene scelta un'offerta.

Apri Services › Kubernetes › Versions e fai clic su Sync from CloudStack. Attiva l'interruttore Available for new clusters per le versioni che vendi, imposta la versione predefinita e, facoltativamente, una data di End of life (EOL).
Apri Services › Kubernetes › Policy. In Worker plans aggiungi piani con un Plan code (da A a Z, da 0 a 9, trattino, fino a 16 caratteri). Imposta NVMe per worker (GB), Min and max workers e i limiti del cluster (cluster attivi per account, creazioni ogni 24 ore, limite globale, operazioni CKS simultanee). Quindi attiva Sell Kubernetes (CKS). Almeno un piano deve rimanere in vendita.

Private Cloud
Apri Services › Private Cloud (Panoramica). Nella scheda dei criteri, sostituisci VPC offering e Locked offering tier con i tuoi UUID. Verifica i limiti (VPC per account, tier, VM e regole ACL per VPC, saldo in ore di canone del piano necessario per la creazione, modifiche del piano ogni 24 ore, operazioni simultanee in cui 0 è un arresto di emergenza) e i server DNS. Fai clic su Save (viene richiesto un motivo).

Apri Services › Private Cloud › Plans & pricing. Per ogni piano fai clic su Edit e imposta VND price per month, On sale e l'UUID del CloudStack tier offering la cui velocità di rete corrisponde ai Mbps del piano. La riga mostra costi e profitti a pieno utilizzo, così puoi vedere quali piani sono al di sotto dei tuoi costi.

Attiva l'interruttore Sell Private Cloud. Per provarlo prima, aggiungi ID di account di test a Beta accounts: tali account possono utilizzare il servizio mentre l'interruttore di vendita è disattivato.
Verifica
- Kubernetes: la scheda dello stato mostra
kubernetesserviceenabled: true, un controllo dell'endpoint riuscito e una versione abilitata. Crea un cluster di test con un singolo worker come cliente; dovrebbe raggiungere lo stato di esecuzione ekubectl get nodesdovrebbe mostrarlo come pronto. Eliminalo in seguito: la rete e l'IP tornano nel pool. - Private Cloud: crea un VPC con il piano più piccolo come cliente di test. Il VPC risulta attivo, un tier ottiene la sua subnet, una VM nel tier raggiunge Internet tramite il router VPC e Change plan verso un piano più grande diventa effettivo in circa 20 secondi senza interrompere le connessioni.
Limiti e note
- Kubernetes: i worker vengono fatturati come le VM ai prezzi del piano e contano come VM nei limiti delle VM. Un cluster può avere al massimo 9 worker a causa del limite CKS di 10 nodi.
- Kubernetes: il piano di controllo, il router e l'IP pubblico di un cluster sono gratuiti per il cliente; i relativi costi sono a tuo carico.
- Private Cloud: tutti i piani sono unmetered. I prezzi nel modulo sono in dong vietnamiti al mese; la colonna dei costi utilizza un prezzo di riferimento che non è il tuo, quindi usa i tuoi numeri.
- Un VPC bloccato è limitato a 1 Mbps, non viene fatturato e non viene eliminato automaticamente.
- Private Cloud utilizza un router per VPC, non una coppia ridondante. Se il suo host si guasta, CloudStack lo ricostruisce in pochi minuti.
Troubleshooting
| Sintomo | Causa | Soluzione |
|---|---|---|
cp_offering_invalid / "Questa offering non è 2 vCPU / 2048 MB / limitcpuuse" | L'offencing del control-plane ha dimensioni diverse o nessun limite CPU | Crea l'offencing come al passaggio 3 e selezionalo di nuovo. |
| L'interruttore Enable CKS è disattivato | Nessun offencing del control-plane selezionato | Selezione prima uno. |
kubernetesserviceenabled: false | CKS è disattivato in CloudStack | Abilitalo e riavvia il server di gestione. |
| Il controllo dell'endpoint non è riuscito | endpoint.url non è raggiungibile dalle VM del cluster | Imposta un URL raggiungibile, riavvia il server di gestione e fai clic su Recheck. |
| "EOL: impossibile abilitare per la vendita" | La data di fine vita della versione è trascorsa | Registra una versione più recente. |
| "Nessuna versione: fai clic su Sync from CloudStack" | Nessuna versione Kubernetes registrata | Registra una versione ed esegui la sincronizzazione. |
| "Il backend CKS è OFF: i clienti non possono creare cluster anche se il flag di vendita è abilitato" | Il flag di vendita è attivo ma il backend CKS è disattivato | Abilita CKS nella scheda CloudStack. |
| "Almeno 1 piano deve essere in vendita" | Ultimo piano worker rimosso | Mantieni almeno un piano o disattiva la vendita di Kubernetes. |
| Cluster bloccato durante la creazione | Capacità insufficiente o ISO mancante | Controlla le schede di capacità e lo stato ISO della versione. |
| Un nuovo VPC non riesce nel primo passaggio | L'offencing VPC o l'ID dell'offencing tier non è valido | Sostituisci ogni UUID di offencing con uno del tuo CloudStack. |
| "cs_offering_id deve essere un UUID" | Un ID di offencing non è un UUID | Incolla l'id da cmk list networkofferings. |
| La modifica del piano non è riuscita | Il nuovo offencing tier non esiste o la velocità di rete non è corretta | Controlla l'UUID dell'offencing e la sua velocità di rete. |