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> API> Gestión de complementos> Instalación de una instancia de complemento
Actualización más reciente 2023-04-13 GMT+08:00

Instalación de una instancia de complemento

Función

Esta API se utiliza para instalar una instancia de complemento mediante una plantilla de complemento.

URI

POST /api/v3/addons

Parámetros de solicitud

Tabla 1 Parámetros de cabecera de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

String

Tipo de cuerpo del mensaje (formato).

X-Auth-Token

String

Las solicitudes para invocar a una API pueden autenticarse usando un token o AK/SK. Si se utiliza la autenticación basada en token, este parámetro es obligatorio y se debe establecer en un token de usuario. Para obtener más información, consulte Obtención de un token de usuario.

Tabla 2 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

kind

String

Tipo de la API. El valor se fija en Addon y no se puede cambiar.

apiVersion

String

Versión de la API. El valor se fija en v3 y no se puede cambiar.

metadata

Objeto de Metadata

Información básica sobre el objeto. Metadatos es una colección de atributos.

spec

Objeto de InstanceRequestSpec

Descripción detallada de la instalación o actualización del complemento.

Tabla 3 Metadata

Parámetro

Obligatorio

Tipo

Descripción

uid

No

String

ID único.

name

No

String

Nombre del complemento.

labels

No

Map<String,String>

Etiquetas de complemento en pares de clave y valor. Este es un campo reservado y no tiene efecto.

annotations

No

Map<String,String>

Anotaciones del complemento en el formato de los pares de clave y valor.

  • Para la instalación del complemento, el valor se fija en {"addon.install/type":"install"}.

  • Para la actualización del complemento, el valor se fija en {"addon.upgrade/type":"upgrade"}.

updateTimestamp

No

String

Tiempo de actualización.

creationTimestamp

No

String

Tiempo de creación.

Tabla 4 InstanceRequestSpec

Parámetro

Obligatorio

Tipo

Descripción

version

String

Versión del complemento que se instalará o actualizará, por ejemplo, 1.0.0.

clusterID

String

ID del clúster.

values

Map<String,Object>

Parámetros de instalación de la plantilla del complemento (variando según el complemento). Durante la actualización del complemento, debe especificar todos los parámetros de instalación. Si no se especifican los parámetros, se utilizan los valores predeterminados de la plantilla de complemento. Los parámetros de instalación de complementos actuales se pueden obtener a través de la API para consultar las instancias de complementos.

addonTemplateName

String

Nombre de la plantilla de complemento que se va a instalar, por ejemplo, coredns.

Parámetros de respuesta

Código de estado: 201

Tabla 5 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

kind

String

Tipo de la API. El valor se fija en Addon y no se puede cambiar.

apiVersion

String

Versión de la API. El valor se fija en v3 y no se puede cambiar.

metadata

Objeto de Metadata

Información básica sobre el objeto. Metadatos es una colección de atributos.

spec

Objeto de InstanceSpec

Descripción detallada de la instancia del complemento.

status

Objeto de AddonInstanceStatus

Estado de la instancia del complemento.

Tabla 6 Metadata

Parámetro

Tipo

Descripción

uid

String

ID único.

name

String

Nombre del complemento.

labels

Map<String,String>

Etiquetas de complemento en pares de clave y valor. Este es un campo reservado y no tiene efecto.

annotations

Map<String,String>

Anotaciones del complemento en el formato de los pares de clave y valor.

  • Para la instalación del complemento, el valor se fija en {"addon.install/type":"install"}.

  • Para la actualización del complemento, el valor se fija en {"addon.upgrade/type":"upgrade"}.

updateTimestamp

String

Tiempo de actualización.

creationTimestamp

String

Tiempo de creación.

Tabla 7 InstanceSpec

Parámetro

Tipo

Descripción

clusterID

String

ID del clúster.

version

String

Versión de plantilla adicional, por ejemplo, 1.0.0.

addonTemplateName

String

Nombre de la plantilla del complemento, por ejemplo, coredns.

addonTemplateType

String

Tipo de plantilla del complemento.

addonTemplateLogo

String

URL para obtener el logotipo de la plantilla del complemento.

addonTemplateLabels

Matriz de strings

Etiquetas de la plantilla del complemento.

description

String

Descripción de la plantilla del complemento.

values

Map<String,Object>

Parámetros de instalación de la plantilla del complemento (variando según el complemento). Establezca los parámetros en consecuencia.

Tabla 8 AddonInstanceStatus

Parámetro

Tipo

Descripción

status

String

Estado de la instancia del complemento.

Reason

String

Causa del error de instalación del complemento.

message

String

Detalles de error de instalación.

targetVersions

Matriz de strings

Versiones a las que se puede actualizar la versión actual del complemento.

currentVersion

Objeto de Versiones

Información sobre la versión actual del complemento.

Tabla 9 Versions

Parámetro

Tipo

Descripción

version

String

Versión del complemento.

input

Object

Parámetros de instalación del complemento.

stable

Boolean

Si la versión del complemento es una versión estable.

translate

Object

Información de la traducción utilizada por GUI.

supportVersions

Matriz de objetos de SupportVersions

Versiones de clúster que admiten el complemento.

creationTimestamp

String

Tiempo de creación.

updateTimestamp

String

Tiempo de actualización.

Tabla 10 SupportVersions

Parámetro

Tipo

Descripción

clusterType

String

Tipo de clúster que admite el complemento.

clusterVersion

Matriz de strings

Versiones de clúster que admiten el complemento. El valor es una expresión regular.

Ejemplo de las solicitudes

{
  "kind" : "Addon",
  "apiVersion" : "v3",
  "metadata" : {
    "annotations" : {
      "addon.install/type" : "install"
    }
  },
  "spec" : {
    "clusterID" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
    "version" : "1.17.15",
    "addonTemplateName" : "coredns",
    "values" : {
      "basic" : {
        "cluster_ip" : "10.247.3.10",
        "image_version" : "1.17.15",
        "platform" : "linux-amd64",
        "swr_addr" : "<Replace_SWR_address>",
        "swr_user" : "hwofficial",
        "rbac_enabled" : true
      },
      "flavor" : {
        "name" : 2500,
        "replicas" : 2,
        "resources" : [ {
          "limitsCpu" : "500m",
          "limitsMem" : "512Mi",
          "name" : "coredns",
          "requestsCpu" : "500m",
          "requestsMem" : "512Mi"
        } ]
      },
      "custom" : {
        "stub_domains" : { },
        "upstream_nameservers" : [ ],
        "cluster_id" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
        "tenant_id" : "0504201b6c80256b2f08c0099f0c8fe4"
      }
    }
  }
}

Ejemplo de las respuestas

Código de estado: 201

OK

{
  "kind" : "Addon",
  "apiVersion" : "v3",
  "metadata" : {
    "uid" : "b748aaea-a984-11ec-987b-0255ac1000bc",
    "name" : "coredns",
    "creationTimestamp" : "2022-03-22T02:06:41Z",
    "updateTimestamp" : "2022-03-22T02:06:41Z"
  },
  "spec" : {
    "clusterID" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
    "version" : "1.17.15",
    "addonTemplateName" : "coredns",
    "addonTemplateType" : "helm",
    "addonTemplateLogo" : "",
    "addonTemplateLabels" : [ "ServiceDiscovery" ],
    "description" : "CoreDNS is a DNS server that chains plugins and provides Kubernetes\rDNS Services",
    "values" : {
      "basic" : {
        "cluster_ip" : "10.247.3.10",
        "image_version" : "1.17.15",
        "platform" : "linux-amd64",
        "rbac_enabled" : true,
        "swr_addr" : "",
        "swr_user" : "hwofficial"
      },
      "custom" : {
        "cluster_id" : "1b2ec02d-a3b2-11ec-b0d0-0255ac100099",
        "stub_domains" : { },
        "tenant_id" : "0504201b6c80256b2f08c0099f0c8fe4",
        "upstream_nameservers" : [ ]
      },
      "flavor" : {
        "name" : 2500,
        "replicas" : 2,
        "resources" : [ {
          "limitsCpu" : "500m",
          "limitsMem" : "512Mi",
          "name" : "coredns",
          "requestsCpu" : "500m",
          "requestsMem" : "512Mi"
        } ]
      }
    }
  },
  "status" : {
    "status" : "installing",
    "Reason" : "",
    "message" : "",
    "targetVersions" : null,
    "currentVersion" : {
      "version" : "1.17.15",
      "input" : {
        "basic" : {
          "cluster_ip" : "10.247.3.10",
          "image_version" : "1.17.15",
          "platform" : "linux-amd64",
          "swr_addr" : "",
          "swr_user" : "hwofficial"
        },
        "parameters" : {
          "custom" : {
            "stub_domains" : "",
            "upstream_nameservers" : ""
          },
          "flavor1" : {
            "name" : 2500,
            "replicas" : 2,
            "resources" : [ {
              "limitsCpu" : "500m",
              "limitsMem" : "512Mi",
              "name" : "coredns",
              "requestsCpu" : "500m",
              "requestsMem" : "512Mi"
            } ]
          },
          "flavor2" : {
            "name" : 5000,
            "replicas" : 2,
            "resources" : [ {
              "limitsCpu" : "1000m",
              "limitsMem" : "1024Mi",
              "name" : "coredns",
              "requestsCpu" : "1000m",
              "requestsMem" : "1024Mi"
            } ]
          },
          "flavor3" : {
            "name" : 10000,
            "replicas" : 2,
            "resources" : [ {
              "limitsCpu" : "2000m",
              "limitsMem" : "2048Mi",
              "name" : "coredns",
              "requestsCpu" : "2000m",
              "requestsMem" : "2048Mi"
            } ]
          },
          "flavor4" : {
            "name" : 20000,
            "replicas" : 4,
            "resources" : [ {
              "limitsCpu" : "2000m",
              "limitsMem" : "2048Mi",
              "name" : "coredns",
              "requestsCpu" : "2000m",
              "requestsMem" : "2048Mi"
            } ]
          }
        }
      },
      "stable" : true,
      "translate" : {
        "en_US" : {
          "addon" : {
            "changeLog" : "Supported CCE clusters of v1.21.",
            "description" : "CoreDNS is a DNS server that chains plugins and provides Kubernetes\rDNS Services"
          },
          "description" : {
            "Parameters.custom.stub_domains" : "The target nameserver may itself be a Kubernetes service. For instance, you can run your own copy of dnsmasq to export custom DNS names into the ClusterDNS namespace, a JSON map using a DNS suffix key (e.g. \"acme.local\") and a value consisting of a JSON array of DNS IPs.",
            "Parameters.custom.upstream_nameservers" : "If specified, then the values specified replace the nameservers taken by default from the node's /etc/resolv.conf. Limits: a maximum of three upstream nameservers can be specified, a JSON array of DNS IPs.",
            "Parameters.flavor1.description" : "Concurrent domain name resolution ability - External domain name: 2500 qps, Internal domain name: 10000 qps",
            "Parameters.flavor1.name" : 2500,
            "Parameters.flavor2.description" : "Concurrent domain name resolution ability - External domain name: 5000 qps, Internal domain name: 20000 qps",
            "Parameters.flavor2.name" : 5000,
            "Parameters.flavor3.description" : "Concurrent domain name resolution ability - External domain name: 10000 qps, Internal domain name: 40000 qps",
            "Parameters.flavor3.name" : 10000,
            "Parameters.flavor4.description" : "Concurrent domain name resolution ability - External domain name: 20000 qps, Internal domain name: 80000 qps",
            "Parameters.flavor4.name" : 20000
          },
          "key" : {
            "Parameters.custom.stub_domains" : "stub domain",
            "Parameters.custom.upstream_nameservers" : "upstream nameservers"
          }
        },
        "fr_FR" : {
          "addon" : {
            "changeLog" : "Prise en charge du cluster 1.21.",
            "description" : "Un serveur DNS qui enchaîne les plug-ins et fournit des services\rDNS Kubernetes."
          },
          "description" : {
            "Parameters.custom.stub_domains" : "\u0001Le serveur de noms cible peut lui-même être\run service Kubernetes. Par exemple, vous pouvez exécuter votre propre\rcopie de dnsmasq pour exporter des noms DNS personnalisés dans l'espace\rde noms ClusterDNS, une carte JSON à l'aide d'une clé de suffixe DNS (par\rexemple, «acme.local») et une valeur constituée d'un tableau JSON d'adresses\rIP DNS.",
            "Parameters.custom.upstream_nameservers" : "Si spécifié, les valeurs spécifiées remplacent les serveurs de noms pris par défaut dans le fichier /etc/resolv.conf du nœud. Limites: un maximum de trois serveurs de noms en amont peuvent être spécifiés, un tableau JSON d'adresses IP DNS.",
            "Parameters.flavor1.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 2500 qps, Nom de domaine interne: 10000 qp",
            "Parameters.flavor1.name" : 2500,
            "Parameters.flavor2.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 5000 qps, Nom de domaine interne: 20000 qp",
            "Parameters.flavor2.name" : 5000,
            "Parameters.flavor3.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 10000 qps, Nom de domaine interne: 40000 qp",
            "Parameters.flavor3.name" : 10000,
            "Parameters.flavor4.description" : "Capacité de résolution de nom de domaine simultanée - Nom de domaine externe: 20000 qps, Nom de domaine interne: 80000 qp",
            "Parameters.flavor4.name" : 20000
          },
          "key" : {
            "Parameters.custom.stub_domains" : "domaine stub",
            "Parameters.custom.upstream_nameservers" : "serveurs de noms en amont"
          }
        },
        "zh_CN" : {
          "addon" : {
            "changeLog" : "",
            "description" : ""
          },
          "description" : {
            "Parameters.custom.stub_domains" : "",
            "Parameters.custom.upstream_nameservers" : "",
            "Parameters.flavor1.description" : "",
            "Parameters.flavor1.name" : 2500,
            "Parameters.flavor2.description" : "",
            "Parameters.flavor2.name" : 5000,
            "Parameters.flavor3.description" : "",
            "Parameters.flavor3.name" : 10000,
            "Parameters.flavor4.description" : "",
            "Parameters.flavor4.name" : 20000
          },
          "key" : {
            "Parameters.custom.stub_domains" : "",
            "Parameters.custom.upstream_nameservers" : ""
          }
        }
      },
      "supportVersions" : null,
      "creationTimestamp" : "2021-12-14T13:43:15Z",
      "updateTimestamp" : "2022-01-11T14:32:10Z"
    }
  }
}

Códigos de estado

Código de estado

Descripción

201

Aceptar

Códigos de error

Consulte Códigos de error.