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.
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Value |
Sí |
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
addonTemplateName |
Sí |
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.
NOTA:
No es necesario establecer este parámetro al instalar el complemento del controlador de almacenamiento. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
flavor |
Sí |
Objeto de flavor |
Especificaciones de complementos. |
custom |
Sí |
Objeto de custom |
Parámetros de coredns personalizado. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
description |
Sí |
String |
Descripción de la especificación. |
name |
Sí |
String |
Nombre de la variante. |
replicas |
Sí |
Integer |
Número de pods. |
resources |
Sí |
Objeto de resource |
Recursos de complementos. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
Sí |
String |
Nombre del recurso. |
limitsCpu |
Sí |
String |
Límite de la cuota de CPU. |
limitsMem |
Sí |
String |
Límite de cuota de memoria. |
requestsCpu |
Sí |
String |
CPU solicitada. |
requestsMem |
Sí |
String |
Memorización solicitada. |
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 |
Sí |
String |
ID del proyecto. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
flavor |
Sí |
Objeto de flavor |
Especificaciones de complementos. |
custom |
Sí |
Objeto de custom |
Parámetros personalizados del autoescalador. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
coresTotal |
Sí |
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 |
Sí |
Integer |
Número máximo de los nodos vacíos que se pueden eliminar a la vez. |
maxNodesTotal |
Sí |
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 |
Sí |
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 |
Sí |
Integer |
Intervalo para realizar una evaluación de escala descendente después de una escala ascendente. |
scaleDownDelayAfterDelete |
Sí |
Integer |
Intervalo para realizar una evaluación de escala descendente después de eliminar los nodos. El valor predeterminado es scanInterval. |
scaleDownDelayAfterFailure |
Sí |
Integer |
Intervalo para realizar una evaluación de escala descendente después de una falla de escala descendente. |
scaleDownEnabled |
Sí |
Boolean |
Si se debe habilitar la reducción de escala del clúster. |
scaleDownUnneededTime |
Sí |
Integer |
Tiempo esperado para iniciar una escala descendente después de que un nodo haya alcanzado el umbral de escala descendente. |
scaleDownUtilizationThreshold |
Sí |
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 |
Sí |
Float |
Umbral de uso de la CPU para activar el escalado. |
scaleUpMemUtilizationThreshold |
Sí |
Float |
Umbral de uso de memoria para activar la ampliación. |
scaleUpUnscheduledPodEnabled |
Sí |
Boolean |
La ampliación se activa cuando hay pods no programados. |
scaleUpUtilizationEnabled |
Sí |
Boolean |
La ampliación se activa cuando el uso de recursos alcanza el umbral. |
tenant_id |
Sí |
String |
ID del proyecto. |
unremovableNodeRecheckTimeout |
Sí |
Integer |
Intervalo para comprobar si se puede eliminar un nodo. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
custom |
Sí |
Objeto de custom |
Parámetros del cliente de gpu-beta. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
is_driver_from_nvidia |
Sí |
Boolean |
Si desea utilizar el controlador de NVIDIA. Establezca este parámetro en true. |
nvidia_driver_download_url |
Sí |
String |
URL de descarga del controlador. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
type |
Sí |
String |
Tipo del clúster. Valores posibles:
|
flavor |
Sí |
String |
La variante de clúster, que no se puede cambiar después de crear el clúster.
NOTA:
|
version |
No |
String |
Versión de Kubernetes de línea base del clúster. Se recomienda la versión más reciente.
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 |
Sí |
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 |
Sí |
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" } } }