Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Referencia de la API/ Apéndice/ Especificación de complementos que se instalarán durante la creación de clústeres
Actualización más reciente 2023-04-13 GMT+08:00

Especificación de complementos que se instalarán durante la creación de clústeres

Al crear un clúster, puede agregar un par de clave y valor a annotations del campo metadata en el cuerpo de la solicitud para instalar un complemento en el clúster. La clave es cluster.install.addons/install y el valor es una matriz de JSON de AddonTemplate.

Tabla 1 Estructura de datos de valor

Parámetro

Obligatorio

Tipo

Descripción

Value

JSON array of AddonTemplate string

Complemento que se instalará en el clúster. Si no se especifica este parámetro, los complementos coredns y el controlador de almacenamiento se instalan de forma predeterminada para los clústeres de Kubernetes 1.13 y las versiones anteriores, y los complementos coredns, everest, y npd se instalan de forma predeterminada para los clústeres de Kubernetes 1.15 y las versiones posteriores. Para obtener más información, véase Tabla 2.

Tabla 2 Estructura de datos del campo AddonTemplate

Parámetro

Obligatorio

Tipo

Descripción

addonTemplateName

String

Nombre del complemento.

El valor puede ser coredns, autoscaler, gpu-beta o storage-driver.

version

No

String

Versión del complemento.

Para ver la información de la versión del complemento, inicie sesión en la consola de CCE y haga clic en Add-ons en el panel de navegación. Haga clic en el nombre del complemento de destino. En la página de ficha Version History, puede ver las versiones del complemento. Si este parámetro se deja en blanco, se utiliza la última versión de forma predeterminada.

values

No

Json Map

Parámetros que se establecerán para instalar un complemento.

  • coredns: Para obtener más información, véase Tabla 3.
  • autoscaler: Para obtener más información, consulte Tabla 7.
  • gpu-beta: Para obtener más información, consulte Tabla 9.
NOTA:

No es necesario establecer este parámetro al instalar el complemento del controlador de almacenamiento.

Tabla 3 Pares de clave y valor especiales de los parámetros de valores de coredns

Parámetro

Obligatorio

Tipo

Descripción

flavor

Objeto de flavor

Especificaciones de complementos.

custom

Objeto de custom

Parámetros de coredns personalizado.

Tabla 4 Estructura de datos del campo de variante

Parámetro

Obligatorio

Tipo

Descripción

description

String

Descripción de la especificación.

name

String

Nombre de la variante.

replicas

Integer

Número de pods.

resources

Objeto de resource

Recursos de complementos.

Tabla 5 Estructura de datos del campo de recursos

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre del recurso.

limitsCpu

String

Límite de la cuota de CPU.

limitsMem

String

Límite de cuota de memoria.

requestsCpu

String

CPU solicitada.

requestsMem

String

Memorización solicitada.

Tabla 6 Estructura de datos del campo personalizado

Parámetro

Obligatorio

Tipo

Descripción

stub_domains

No

Json Map

Mapa de JSON que utiliza la clave sufijo de DNS (como acme.local) y el valor compuesto por la matriz de JSON de la dirección IP de DNS.

upstream_nameservers

No

Json Array

El valor de este parámetro reemplaza el valor del servidor de nombres obtenido de /etc/resolv.conf del nodo de forma predeterminada. Restricción: Se puede especificar un máximo de tres servidores de los nombres ascendentes.

tenant_id

String

ID del proyecto.

Tabla 7 Pares de clave y valor especiales de los parámetros de valores del autoescalador

Parámetro

Obligatorio

Tipo

Descripción

flavor

Objeto de flavor

Especificaciones de complementos.

custom

Objeto de custom

Parámetros personalizados del autoescalador.

Tabla 8 Estructura de datos del campo personalizado

Parámetro

Obligatorio

Tipo

Descripción

coresTotal

Integer

Número máximo y mínimo de los núcleos de un clúster. El formato es <min>:<max>. El complemento del autoescalador realiza el ajuste del clúster dentro de este rango.

maxEmptyBulkDeleteFlag

Integer

Número máximo de los nodos vacíos que se pueden eliminar a la vez.

maxNodesTotal

Integer

Número máximo de los nodos en todos los grupos de nodos. El complemento del autoescalador realiza el ajuste del clúster dentro de este rango.

memoryTotal

Integer

Tamaño máximo y mínimo de la memoria de un clúster. El formato es <min>:<max>. El complemento del autoescalador realiza el ajuste del clúster dentro de este rango.

scaleDownDelayAfterAdd

Integer

Intervalo para realizar una evaluación de escala descendente después de una escala ascendente.

scaleDownDelayAfterDelete

Integer

Intervalo para realizar una evaluación de escala descendente después de eliminar los nodos. El valor predeterminado es scanInterval.

scaleDownDelayAfterFailure

Integer

Intervalo para realizar una evaluación de escala descendente después de una falla de escala descendente.

scaleDownEnabled

Boolean

Si se debe habilitar la reducción de escala del clúster.

scaleDownUnneededTime

Integer

Tiempo esperado para iniciar una escala descendente después de que un nodo haya alcanzado el umbral de escala descendente.

scaleDownUtilizationThreshold

Float

Porcentaje de umbral de la CPU o memoria total ocupada por todos los pods que se ejecutan en el nodo a los recursos asignables en el nodo. Cuando el porcentaje real es inferior a este umbral, se activa la reducción de escala de nodo.

scaleUpCpuUtilizationThreshold

Float

Umbral de uso de la CPU para activar el escalado.

scaleUpMemUtilizationThreshold

Float

Umbral de uso de memoria para activar la ampliación.

scaleUpUnscheduledPodEnabled

Boolean

La ampliación se activa cuando hay pods no programados.

scaleUpUtilizationEnabled

Boolean

La ampliación se activa cuando el uso de recursos alcanza el umbral.

tenant_id

String

ID del proyecto.

unremovableNodeRecheckTimeout

Integer

Intervalo para comprobar si se puede eliminar un nodo.

Tabla 9 Valor y clave especial en valores de AddonTemplate (GPU beta)

Parámetro

Obligatorio

Tipo

Descripción

custom

Objeto de custom

Parámetros del cliente de gpu-beta.

Tabla 10 Estructura de datos del campo personalizado

Parámetro

Obligatorio

Tipo

Descripción

is_driver_from_nvidia

Boolean

Si desea utilizar el controlador de NVIDIA.

Establezca este parámetro en true.

nvidia_driver_download_url

String

URL de descarga del controlador.

Tabla 11 Estructura de datos del campo de especificaciones

Parámetro

Obligatorio

Tipo

Descripción

type

String

Tipo del clúster. Valores posibles:

  • VirtualMachine: El clúster es un clúster híbrido.

    Un clúster híbrido gestiona un grupo de recursos de nodo basados en Kubernetes. Puede gestionar las máquinas virtuales, máquinas de metal desnudo o una combinación de ambos. Kubernetes programa automáticamente los contenedores en los nodos disponibles. Antes de crear una carga de trabajo en contenedores, debe tener un clúster disponible.

  • ARM64: El clúster es un clúster de Kunpeng.

    Los contenedores en los clústeres de Kunpeng de CCE pueden ejecutarse en los servidores de Kunpeng que usan la arquitectura ARM y los procesadores de Kunpeng. Los servidores en la nube acelerados por Kunpeng son fáciles de implementar y proporcionan un rendimiento de ajuste y programación comparable al de los servidores en la nube basados en x86.

flavor

String

La variante de clúster, que no se puede cambiar después de crear el clúster.

  • cce.s1.small: clúster híbrido de maestro único con escala pequeña (≤ 50 nodos).
  • cce.s1.medium: clúster híbrido de maestro único con escala media (≤ nodos 200).
  • cce.s1.large: clúster híbrido de maestro único con escala grande (≤ 1,000 nodos).
  • cce.s2.small: clúster híbrido de alta disponibilidad con escala pequeña (≤ 50 nodos).
  • cce.s2.medium: clúster híbrido de alta disponibilidad con escala media (≤ 200 nodos).
  • cce.s2.large: clúster híbrido de alta disponibilidad con escala grande (≤ 1,000 nodos).
NOTA:
  • s1: clúster híbrido de maestro único.
  • s2: clúster híbrido de alta disponibilidad.
  • dec: especificaciones de clúster híbrido dedicado. Por ejemplo, cce.dec.s1.small es un clúster híbrido dedicado, de maestro único y con la escala pequeña (≤ 50 nodos).
  • Por ejemplo, ≤ 50 nodes indica que el número máximo de los nodos que puede gestionar el clúster es 50.
  • Un clúster de maestro único solo tiene un nodo principal. Si el nodo principal está inactivo, el clúster dejará de estar disponible y dejará de servir nuevas cargas de trabajo. Sin embargo, las cargas de trabajo existentes en el clúster no se ven afectadas.
  • Un clúster de alta disponibilidad tiene los nodos de varios maestros. Los errores en un nodo de maestro único no eliminarán el clúster. Para obtener más información sobre cómo distinguir clústeres de alta disponibilidad de los clústeres regulares, consulte ¿Cómo puedo comprobar si un clúster es un clúster de alta disponibilidad?

version

No

String

Versión de Kubernetes de línea base del clúster. Se recomienda la versión más reciente.

  • Puede crear clústeres de dos versiones más recientes en la consola de CCE. Para saber qué versiones de clúster están disponibles, seleccione Dashboard > Buy Cluster en la consola de CCE y compruebe el parámetro Version.
  • Puede invocar a las API para crear los clústeres de otras versiones. Sin embargo, estos clústeres se pondrán gradualmente fuera de línea. Para obtener más información sobre la política fuera de línea, consulte el anuncio oficial de CCE.
NOTA:

Si este parámetro no está definido, el clúster de la última versión se crea de forma predeterminada.

description

No

String

Descripción del clúster, por ejemplo, qué propósito está destinado a servir el clúster. De forma predeterminada, este parámetro se deja sin especificar. Para modificar la descripción del clúster después de crearlo, invoque a la API utilizada para actualizar la información sobre un clúster especificado o vaya a la página de detalles del clúster en la consola de CCE.

ipv6enable

No

Boolean

Si el clúster admite IPv6. Los clústeres de la versión 1.15 y las posteriores admiten IPv6.

hostNetwork

Objeto de HostNetwork

Parámetros de red de nodo, incluidos los ID de VPC y de subred. hostNetwork es obligatorio porque los nodos de un clúster se comunican entre sí mediante una VPC.

containerNetwork

Objeto de ContainerNetwork

Parámetros de red de contenedores, incluido el modelo de red de contenedores y el bloque CIDR de contenedores.

authentication

No

Objeto de Authentication

Configuraciones del modo de autenticación de clúster.

kubernetesSvcIpRange

No

String

Bloque de CIDR de servicio o el intervalo de direcciones IP en el que debe estar el kubernetes clusterIp. Este parámetro solo está disponible para clústeres de v1.11.7 y los posteriores.

billingMode

No

Integer

Modo de facturación de un clúster. Actualmente, solo se pueden crear clústeres de pay-per-use.

Valor 0 indica pago por uso. Si este parámetro se deja sin especificar, se utiliza el valor predeterminado 0.

masters

No

Objeto de MasterSpec

Configuraciones avanzadas del nodo principal

extendParam

No

Map<String,String>

Campos extendidos en el formato de pares de clave y valor.

Puede configurar los clústeres de multi-AZ y los clústeres híbridos dedicados, también crear clústeres en los proyectos empresariales específicos.

Ejemplo de solicitud

{
  "kind" : "Cluster",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "mycluster",
    "labels" : {
      "foo" : "bar"
    },
    "annotations" : {
      "cluster.install.addons/install" : "[{\"addonTemplateName\":\"autoscaler\",\"version\":\"1.15.11\",\"values\":{\"flavor\":{\"description\":\"Has only one instance\",\"name\":\"Single\",\"replicas\":1,\"resources\":[{\"limitsCpu\":\"90m\",\"limitsMem\":\"200Mi\",\"name\":\"autoscaler\",\"requestsCpu\":\"50m\",\"requestsMem\":\"100Mi\"}]},\"custom\":{\"coresTotal\":32000,\"maxEmptyBulkDeleteFlag\":10,\"maxNodesTotal\":1000,\"memoryTotal\":128000,\"scaleDownDelayAfterAdd\":10,\"scaleDownDelayAfterDelete\":10,\"scaleDownDelayAfterFailure\":3,\"scaleDownEnabled\":false,\"scaleDownUnneededTime\":10,\"scaleDownUtilizationThreshold\":0.5,\"scaleUpCpuUtilizationThreshold\":1,\"scaleUpMemUtilizationThreshold\":1,\"scaleUpUnscheduledPodEnabled\":true,\"scaleUpUtilizationEnabled\":true,\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\",\"unremovableNodeRecheckTimeout\":5}}},{\"addonTemplateName\":\"coredns\",\"version\":\"1.15.3\",\"values\":{\"flavor\":{\"description\":\"Has two instances\",\"name\":2500,\"replicas\":2,\"resources\":[{\"limitsCpu\":\"500m\",\"limitsMem\":\"512Mi\",\"name\":\"coredns\",\"requestsCpu\":\"500m\",\"requestsMem\":\"512Mi\"}]},\"custom\":{\"stub_domains\":{},\"upstream_nameservers\":[],\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\"}}},{\"addonTemplateName\":\"gpu-beta\",\"version\":\"1.1.7\",\"values\":{\"custom\":{\"is_driver_from_nvidia\":true,\"nvidia_driver_download_url\":\"https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run\"}}},{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]"
    }
  },
  "spec" : {
    "type" : "VirtualMachine",
    "flavor" : "cce.s1.small",
    "version" : "v1.15.11",
    "description" : "this is a demo cluster",
    "hostNetwork" : {
      "vpc" : "1cb74d47-8e09-4d14-a065-75f4fc03e5eb",
      "subnet" : "d44c089c-fbdc-49b3-ae8f-7b42c64219cf"
    },
    "containerNetwork" : {
      "mode" : "overlay_l2",
      "cidr" : "172.16.0.0/16"
    },
    "extendParam" : {
      "foo" : "bar"
    }
  }
}