Kubernetes y Private Cloud
En el panel de administración: Kubernetes: Infrastructure › Cloud provider › CloudStack › Kubernetes (CKS) (
/infra/cloudstack?tab=k8s), luego Services › Kubernetes (Overview, Clusters, Versions, Policy). Private Cloud: Services › Private Cloud (Overview/vpc, VPC/vpc/list, Plans & pricing/vpc/plans). Active ambos módulos en System › Admin › License & updates.
Qué hace
- Kubernetes. Los clientes crean clústeres gestionados de Kubernetes en su CloudStack con CloudStack Kubernetes Service (CKS). El plano de control es gratuito; los clientes pagan por los nodos worker. NexCMP crea una red y una IP pública independientes para cada clúster y mantiene separados los clústeres de cada cliente.
- Private Cloud. Los clientes obtienen una red privada (una VPC de CloudStack) con un router, subredes (tiers), reglas de firewall (network ACLs) y máquinas virtuales en su interior. Se comercializa por plan de ancho de banda con velocidad dedicada e ilimitada (por ejemplo 50, 100, 500 Mbps, 1 y 3 Gbps). Cada cliente puede tener una VPC de forma predeterminada.
Ambos se basan en CloudStack y utilizan su API a través de la misma conexión.
Requisitos
Kubernetes
| Elemento | Requisito |
|---|---|
| CloudStack | 4.23 (probado). CKS debe estar habilitado (cloud.kubernetes.service.enabled = true). |
| Cuenta | Una cuenta Domain Admin en el dominio dedicado, para que NexCMP pueda crear un proyecto de CloudStack para cada cliente y límites de recursos dentro de él. Consulte CloudStack. |
endpoint.url | El parámetro global de CloudStack debe apuntar a su API de administración, accesible desde las VM del clúster. NexCMP muestra el valor y el resultado de una comprobación del endpoint. |
| Versiones | Al menos una entrada de versión admitida de Kubernetes con su ISO de binarios, en estado Enabled. Las versiones que han alcanzado el final de su vida útil no se pueden poner a la venta. |
| Oferta de plano de control | Una oferta de servicio gratuita con exactamente 2 vCPU, 2048 MB de RAM y un límite de CPU (limitcpuuse = true), visible para la cuenta. El servidor rechaza cualquier otra cosa con cp_offering_invalid. |
| Red | Una oferta de red aislada compatible con CKS que esté habilitada. |
| IP | Direcciones IPv4 públicas libres en el rango comercializable; cada clúster utiliza una. |
| Capacidad | Cada clúster le cuesta entre 2 y 4 GB de RAM para el plano de control y una pequeña VM de enrutador. Supervise las pestañas de capacidad. |
Private Cloud
| Elemento | Requisito |
|---|---|
| CloudStack | 4.23 (probado) con VPC habilitado. |
| Oferta de VPC | Una oferta de VPC. Una oferta dual-stack proporciona a cada nivel un /64 de IPv6 también. |
| Ofertas de red de nivel | Una oferta de red por plan de ancho de banda, creada para VPC, con la tasa de red (Mbps) igual a la del plan, más una oferta bloqueada de 1 Mbps que se aplica cuando un VPC se bloquea por falta de pago. |
| Cuenta | La cuenta dedicada (se recomienda Domain Admin). Las redes VPC permanecen en la cuenta, no en proyectos. |
| IP | Direcciones IPv4 públicas libres (cada VPC utiliza una para source NAT). |
| Espacio de direcciones | Cada VPC recibe un /16 de 10.128.0.0/9. Mantenga ese rango sin usar en sus propias redes. |
| Depende de | CloudStack conectado; el módulo Private Cloud. |
Preparar la infraestructura
Kubernetes: habilitar CKS y añadir versiones
Habilite el servicio y configure el endpoint, luego reinicie el servidor de administración:
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-managementEl controlador del clúster invoca
endpoint.url, por lo que debe ser una dirección accesible para las VM del clúster.Cree una ISO de binarios de Kubernetes para la versión que desea vender con el script
create-kubernetes-binaries-iso.shdel árbol de código fuente de CloudStack, alójela en un servidor web y regístrela: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,isostateEspere a que el estado de la ISO sea Ready y a que la versión esté Enabled.
Cree la oferta de plano de control, limitada al dominio de 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>Compruebe que una oferta de red CKS esté habilitada:
bashcmk list networkofferings state=Enabled forvpc=false filter=id,name
Private Cloud: crear las ofertas
En la interfaz de usuario de CloudStack (Service Offerings › Network Offerings › Add network offering) o con cmk:
Enumere lo que tiene:
bashcmk list vpcofferings filter=id,name,state cmk list networkofferings forvpc=true filter=id,name,networkrate,stateUtilice una oferta de VPC habilitada (dual-stack si desea IPv6). Si necesita una nueva, clone la oferta de VPC predeterminada de CloudStack y habilítela.
Para cada plan de ancho de banda que venda, cree una oferta de red para VPC (clone la "isolated network offering for VPC networks" predeterminada) y establezca Network rate (Mb/s) a la velocidad del plan:
50,100,500,1000,3000. Habilite cada oferta.Cree una oferta más con network rate 1 (
VPC-LOCKED-1M) para VPC bloqueados: los clientes aún podrán acceder a sus servidores mediante SSH, pero la velocidad estará limitada.Anote el UUID de cada offering. NexCMP los necesita en la siguiente sección.
Los ID de offering incluidos no existen en su cloud
El formulario de Private Cloud viene precargado con UUID de offering que pertenecen a otra instalación de CloudStack. Reemplace cada uno con los suyos propios, o el primer pedido de VPC fallará.
Conectar en NexCMP
Kubernetes
Abra Infrastructure › Cloud provider › CloudStack y seleccione la pestaña Kubernetes (CKS). La tarjeta de la derecha CKS status on CloudStack (read-only) muestra
kubernetesserviceenabled,endpoint.urlcon Endpoint check, el network offering de CKS, la configuración decloud.kubernetes.*y la lista de ISO y versiones. Haga clic en Recheck después de corregir cualquier elemento.En Sales config, seleccione el Control plane Offering (aparecerá una advertencia si no tiene exactamente 2 vCPU / 2048 MB / CPU cap), defina Max workers per cluster (de 1 a 9: CKS permite 10 nodos incluyendo el nodo de control), active Enable CKS for this backend y haga clic en Save. El interruptor permanecerá deshabilitado hasta que se seleccione un offering.

Abra Services › Kubernetes › Versions y haga clic en Sync from CloudStack. Active Available for new clusters para las versiones que comercialice, defina la predeterminada y, si lo desea, una fecha de End of life (EOL).
Abra Services › Kubernetes › Policy. En Worker plans, agregue planes con un Plan code (A-Z, 0-9, guion, hasta 16 caracteres). Configure NVMe per worker (GB), Min and max workers y los límites del clúster (clústeres activos por cuenta, creaciones por 24 horas, límite global, operaciones concurrentes de CKS). Luego, active Sell Kubernetes (CKS). Debe permanecer a la venta al menos un plan.

Private Cloud
Abra Services › Private Cloud (Overview). En la tarjeta de política, reemplace VPC offering y Locked offering tier con sus propios UUID. Verifique los límites (VPC por cuenta, tiers, VM y reglas ACL por VPC, saldo en horas de tarifa del plan requerido para la creación, cambios de plan por 24 horas, operaciones concurrentes donde 0 es una parada de emergencia) y los servidores DNS. Haga clic en Save (se solicitará un motivo).

Abra Services › Private Cloud › Plans & pricing. Para cada plan, haga clic en Edit y configure VND price per month, On sale y el UUID de CloudStack tier offering cuya tasa de red equivalga a los Mbps del plan. La fila muestra el costo y la ganancia a uso completo, lo que le permite identificar qué planes están por debajo de su costo.

Active Sell Private Cloud. Para probarlo primero, agregue los ID de las cuentas de prueba a Beta accounts: esas cuentas podrán usar el servicio mientras el interruptor de ventas esté desactivado.
Verificación
- Kubernetes: la tarjeta de estado muestra
kubernetesserviceenabled: true, una verificación de endpoint correcta y una versión habilitada. Cree un clúster de prueba con un worker como cliente; debería pasar al estado running ykubectl get nodesdebería mostrarlo listo. Elimínelo después: la red y la IP volverán al grupo. - Private Cloud: cree una VPC con el plan más pequeño como cliente de prueba. La VPC se muestra activa, un tier obtiene su subred, una VM en el tier accede a Internet a través del router de la VPC y Change plan a un plan superior surte efecto en unos 20 segundos sin interrumpir las conexiones.
Límites y notas
- Kubernetes: los workers se facturan como VM a los precios del plan y cuentan como VM en los límites de VM. Un clúster puede tener como máximo 9 workers debido al límite de 10 nodos de CKS.
- Kubernetes: el control plane, el router y la IP pública de un clúster son gratuitos para el cliente; usted asume su costo.
- Private Cloud: todos los planes son unmetered. Los precios en el formulario están en dong vietnamitas por mes; la columna de costo utiliza un precio de referencia que no es el suyo, así que utilice sus propios números.
- Una VPC bloqueada está limitada a 1 Mbps, no se factura y no se elimina automáticamente.
- Private Cloud utiliza un router por VPC, no un par redundante. Si su host falla, CloudStack lo reconstruye en unos minutos.
Resolución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
cp_offering_invalid / "Esta oferta no es 2 vCPU / 2048 MB / limitcpuuse" | El offering del plano de control tiene otros tamaños o no tiene límite de CPU | Cree el offering como en el paso 3 y selecciónelo de nuevo. |
| El interruptor Enable CKS está desactivado | No se ha seleccionado ningún offering para el plano de control | Seleccione uno primero. |
kubernetesserviceenabled: false | CKS está desactivado en CloudStack | Actívelo y reinicie el management server. |
| Falla la comprobación del endpoint | endpoint.url no es accesible desde las VM del clúster | Configure una URL accesible, reinicie el management server y haga clic en Recheck. |
| "EOL: no se puede habilitar para la venta" | La fecha de fin de vida útil de la versión ya ha pasado | Registre una versión más reciente. |
| "Sin versiones: haga clic en Sync from CloudStack" | No hay ninguna versión de Kubernetes registrada | Registre una versión y sincronice. |
| "El backend de CKS está en OFF: los clientes no pueden crear clústeres aunque el indicador de venta esté habilitado" | El interruptor de venta está activado pero el backend de CKS está desactivado | Active CKS en la pestaña CloudStack. |
| "Al menos 1 plan debe estar a la venta" | Se ha eliminado el último plan de worker | Mantenga al menos un plan o desactive la venta de Kubernetes. |
| El clúster se queda bloqueado al crearse | Capacidad insuficiente o falta una ISO | Compruebe las pestañas de capacidad y el estado de la ISO de la versión. |
| Una nueva VPC falla en el primer paso | El ID del VPC offering o del tier offering no es válido | Sustituya cada UUID de offering por uno de su CloudStack. |
| "cs_offering_id debe ser un UUID" | El ID de un offering no es un UUID | Pegue el ID desde cmk list networkofferings. |
| Falla el cambio de plan | El nuevo tier offering no existe o la tasa de red es incorrecta | Compruebe el UUID del offering y su tasa de red. |