Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-10 GMT+08:00

Instalação de uma instância de complemento

Função

Essa API é usada para instalar uma instância de complemento usando um modelo de complemento.

URI

POST /api/v3/addons

Parâmetros de solicitação

Tabela 1 Parâmetros de cabeçalho de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

Content-Type

Sim

String

Tipo de corpo da mensagem (formato).

X-Auth-Token

Sim

String

As solicitações para chamar uma API podem ser autenticadas usando um token ou AK/SK. Se a autenticação baseada em token for usada, esse parâmetro é obrigatório e deve ser definido como um token de usuário. Para obter detalhes, consulte Obtenção de um token de usuário.

Tabela 2 Parâmetros do corpo da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

kind

Sim

String

Tipo de API. O valor é fixado em Addon e não pode ser alterado. Qualquer valor definido pelo usuário é inválido.

apiVersion

Sim

String

Versão da API. O valor é fixado em v3 e não pode ser alterado. Qualquer valor definido pelo usuário é inválido.

metadata

Sim

AddonMetadata object

Informações básicas sobre o objeto. Metadados são uma coleção de atributos.

spec

Sim

InstanceRequestSpec object

Descrição detalhada da instalação ou atualização do complemento.

Tabela 3 AddonMetadata

Parâmetro

Obrigatório

Tipo

Descrição

uid

Não

String

ID único

name

Não

String

Nome do complemento

alias

Não

String

Alias do complemento

labels

Não

Map<String,String>

Rótulos do complemento em pares chave-valor. Este é um campo reservado e não tem efeito.

annotations

Não

Map<String,String>

Anotações do complemento, no formato de pares chave-valor.

  • Para instalação do complemento, o valor é fixado em {"addon.install/type":"install"}.

  • Para a atualização do complemento, o valor é fixado em {"addon.upgrade/type":"upgrade"}.

updateTimestamp

Não

String

Atualizado em

creationTimestamp

Não

String

Criado em

Tabela 4 InstanceRequestSpec

Parâmetro

Obrigatório

Tipo

Descrição

version

Não

String

Versão do complemento para instalar ou atualizar, por exemplo, 1.0.0.

  • Installation: este parâmetro é opcional. Se não for especificada, será utilizada a versão mais recente suportada pelo cluster.

  • Upgrade: este parâmetro é obrigatório. O número da versão deve ser especificado.

clusterID

Sim

String

ID do cluster.

values

Sim

Map<String,Object>

Parâmetros de instalação do modelo de complemento (variando dependendo do complemento). Durante a atualização do complemento, você precisa especificar todos os parâmetros de instalação. Se os parâmetros não forem especificados, os valores padrão no modelo de complemento serão usados. Os parâmetros atuais de instalação do complemento podem ser obtidos por meio da API para consulta de instâncias do complemento.

addonTemplateName

Sim

String

Nome do modelo de complemento a ser instalado, por exemplo, coredns.

Parâmetros de resposta

Código de status: 201

Tabela 5 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

kind

String

Tipo de API. O valor é fixado em Addon e não pode ser alterado.

apiVersion

String

Versão da API. O valor é fixado em v3 e não pode ser alterado.

metadata

AddonMetadata object

Informações básicas sobre o objeto. Metadados são uma coleção de atributos.

spec

InstanceSpec object

Descrição detalhada da instância do complemento.

status

AddonInstanceStatus object

Status da instância do complemento.

Tabela 6 AddonMetadata

Parâmetro

Tipo

Descrição

uid

String

ID único

name

String

Nome do complemento

alias

String

Alias do complemento

labels

Map<String,String>

Rótulos do complemento em pares chave-valor. Este é um campo reservado e não tem efeito.

annotations

Map<String,String>

Anotações do complemento, no formato de pares chave-valor.

  • Para instalação do complemento, o valor é fixado em {"addon.install/type":"install"}.

  • Para a atualização do complemento, o valor é fixado em {"addon.upgrade/type":"upgrade"}.

updateTimestamp

String

Atualizado em

creationTimestamp

String

Criado em

Tabela 7 InstanceSpec

Parâmetro

Tipo

Descrição

clusterID

String

ID do cluster.

version

String

Versão do modelo de complemento, por exemplo, 1.0.0.

addonTemplateName

String

Nome do modelo de complemento, por exemplo, coredns.

addonTemplateType

String

Tipo de modelo de complemento.

addonTemplateLogo

String

URL para obter o logotipo do modelo de complemento.

addonTemplateLabels

Array of strings

Rótulos do modelo de complemento.

description

String

Descrição do modelo de complemento.

valores

Map<String,Object>

Parâmetros de instalação do modelo de complemento (variando dependendo do complemento). Defina os parâmetros de acordo.

Tabela 8 AddonInstanceStatus

Parâmetro

Tipo

Descrição

status

String

Status de instâncias do complemento. Opções:

  • running: todas as instâncias do complemento estão em execução e o complemento está em execução corretamente.

  • abnormal: as instâncias do complemento são anormais e o complemento não pode ser usado. Clique no nome do complemento para ver as exceções.

  • installing: o complemento está sendo instalado.

  • installFailed: falhou ao instalar o complemento. Nesse caso, desinstale o complemento e reinstale-o.

  • upgrading: o complemento está sendo atualizado.

  • upgradeFailed: falhou ao atualizar o complemento. Nesse caso, atualize o complemento novamente ou desinstale o complemento e reinstale-o.

  • deleting: o complemento está sendo excluído.

  • deleteFailed: falhou ao excluir o complemento. Nesse caso, desinstale o complemento novamente.

  • deleteSuccess: a exclusão do complemento foi bem-sucedida.

  • available: apenas algumas instâncias do complemento estão em execução. Isso indica que algumas funções do complemento estão disponíveis.

  • rollbacking: o complemento está sendo revertido.

  • rollbackFailed: falhou ao reverter o complemento. Nesse caso, reverta o complemento novamente ou desinstale o complemento e reinstale-o.

  • unknown: a instância do gráfico de complemento não existe.

Reason

String

Causa da falha na instalação do complemento.

message

String

Detalhes do erro de instalação.

targetVersions

Array of strings

Versões para as quais a versão atual do complemento pode ser atualizada.

currentVersion

Versions object

Informações sobre a versão atual do complemento.

isRollbackable

Boolean

Se a versão do complemento pode ser revertida para a versão de origem.

previousVersion

String

The add-on version before upgrade or rollback

Tabela 9 Versões

Parâmetro

Tipo

Descrição

version

String

Versão do complemento.

input

Object

Parâmetros de instalação do complemento.

stable

Boolean

Se a versão do complemento é uma versão estável.

translate

Object

Informações de tradução usadas pela GUI.

supportVersions

Array of SupportVersions objects

Versões de cluster que suportam o complemento.

creationTimestamp

String

Hora de criação.

updateTimestamp

String

Hora da atualização.

Tabela 10 SupportVersions

Parâmetro

Tipo

Descrição

clusterType

String

Tipo de cluster que suporta o complemento.

clusterVersion

Array of strings

Versões de cluster que suportam o complemento. O valor é uma expressão regular.

Exemplo de solicitações

Instale o complemento coredns da versão 1.17.15. A especificação do complemento é 2500 QPS e o número de instâncias do complemento é 2.

{
  "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"
      }
    }
  }
}

Exemplo de respostas

Código de status: 201

OK

{
  "kind" : "Addon",
  "apiVersion" : "v3",
  "metadata" : {
    "uid" : "b748aaea-a984-11ec-987b-0255ac1000bc",
    "name" : "coredns",
    "alias" : "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 DNS 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 DNS 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 DNS Kubernetes."
          },
          "description" : {
            "Parameters.custom.stub_domains" : "Le serveur de noms cible peut lui-même être un service Kubernetes. Par exemple, vous pouvez exécuter votre propre copie de dnsmasq pour exporter des noms DNS personnalisés dans l'espace de noms ClusterDNS, une carte JSON à l'aide d'une clé de suffixe DNS (par exemple, «acme.local») et une valeur constituée d'un tableau JSON d'adresses IP 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 status

Código de status

Descrição

201

OK

Códigos de erro

Consulte Códigos de erro.