Cria e gerencia grupos de escalonamento baseados em Elastic Container Instance (ECI) usando um arquivo de configuração. Você pode chamar a operação ApplyScalingGroup para implementar esse recurso.
Descrição da operação
Descrição da operação
ApplyScalingGroup oferece suporte à criação rápida de grupos de escalonamento baseados em ECI no formato de definição de recurso Kubernetes Deployment. As instâncias ECI também oferecem suporte a anotações estendidas YAML do Kubernetes. Para obter mais informações, consulte a seção "Anotações suportadas" deste tópico.
Mapeamento entre configurações YAML e grupos de escalonamento: O nome de um grupo de escalonamento é mapeado pela combinação namespace, kind e name definida na configuração YAML. Dentro de uma região, a mesma configuração YAML pode ser mapeada para apenas um grupo de escalonamento. Exemplo: Se você usar uma configuração YAML de Deployment com name definido como nginx no namespace padrão, ela será mapeada para um grupo de escalonamento chamado k8s_default_Deployment_nginx na mesma região.
Lógica para gerenciar grupos de escalonamento com base em configurações YAML:
Se o grupo de escalonamento mapeado pela configuração YAML existir, o grupo de escalonamento será atualizado com base na configuração YAML.
Se o grupo de escalonamento mapeado pela configuração YAML não existir, um grupo de escalonamento será criado com base na configuração YAML.
Precauções
Se a configuração YAML não especificar anotações de VPC, vSwitch ou grupo de segurança, o sistema realizará a criação automática de uma VPC padrão, um vSwitch padrão dentro da VPC e um grupo de segurança padrão do Auto Scaling (ess-default-sg). A política do grupo de segurança abre as portas TCP 22 e 3389 e o protocolo ICMP (IPv4) por padrão. Se você precisar de outros protocolos de porta, ajuste a política do grupo de segurança de acordo.
Ao usar uma imagem pública, você deve ativar o acesso à rede pública. Defina a anotação de pod k8s.aliyun.com/eci-with-eip para ativar o recurso EIP.
Após o ApplyScalingGroup aplicar a configuração YAML, o grupo de escalonamento e a configuração de escalonamento entram em vigor imediatamente. Se replicas estiver definido com um valor maior que 0, a criação automática de recursos será acionada.
Anotações suportadas
Para obter mais informações sobre anotações, consulte Anotação de Pod ECI.
| Parâmetro | Exemplo | Descrição |
| k8s.aliyun.com/ess-scaling-group-min-size | 1 | O número mínimo de instâncias no grupo de escalonamento. Valor padrão: 0. |
| k8s.aliyun.com/ess-scaling-group-max-size | 20 | O número máximo de instâncias no grupo de escalonamento. Valor padrão: max(replicas, 30). |
| k8s.aliyun.com/eci-ntp-server | 100.100.. | O servidor NTP. |
| k8s.aliyun.com/eci-use-specs | 2-4Gi | A especificação de 2 vCPUs e 4 GiB de memória. Para obter mais informações, consulte Criar um pod com várias especificações. |
| k8s.aliyun.com/eci-vswitch | vsw-bp1xpiowfm5vo8o3c**** | O ID do vSwitch. Você pode especificar vários vSwitches para implementar o recurso de multizona. |
| k8s.aliyun.com/eci-security-group | sg-bp1dktddjsg5nktv**** | O ID do grupo de segurança. Requisitos: Você pode especificar um ou mais grupos de segurança, até o máximo de cinco. Os grupos de segurança especificados devem pertencer à mesma VPC. Os grupos de segurança especificados devem ser do mesmo tipo. |
| k8s.aliyun.com/eci-sls-enable | "false" | Defina este parâmetro como false para desativar o recurso de coleta de logs. Ao coletar logs usando SLS CRDs, se determinados pods não precisarem de coleta de logs, configure esta anotação para desativar o recurso de coleta de logs e evitar o desperdício de recursos causado pela criação automática do Logtail. |
| k8s.aliyun.com/eci-spot-strategy | SpotAsPriceGo | A política de lance para instâncias spot. Configure conforme necessário. SpotWithPriceLimit: Defina um limite de preço personalizado para instâncias spot. Você também deve definir k8s.aliyun.com/eci-spot-price-limit. SpotAsPriceGo: O sistema faz lances automaticamente com base no preço atual do mercado. |
| k8s.aliyun.com/eci-spot-price-limit | "0.5" | O preço máximo por hora para instâncias spot. O valor pode ter até três casas decimais. Este parâmetro entra em vigor apenas quando k8s.aliyun.com/eci-spot-strategy está definido como SpotWithPriceLimit. |
| k8s.aliyun.com/eci-with-eip | "true" | Defina este parâmetro como true para criar e anexar automaticamente um EIP. |
| k8s.aliyun.com/eci-data-cache-bucket | default | O bucket DataCache. Este parâmetro é obrigatório quando você usa o DataCache para criar um pod. |
| k8s.aliyun.com/eci-data-cache-pl | PL1 | O nível de desempenho (PL) do disco em nuvem criado com base no DataCache. O ESSD é usado por padrão, e o PL padrão é PL1. |
| k8s.aliyun.com/eci-data-cache-provisionedIops | "40000" | O IOPS de leitura/gravação provisionado do disco em nuvem ESSD AutoPL. Valores válidos: 0 a min{50000, 1000 × capacidade - desempenho de linha de base}, onde desempenho de linha de base = min{1800 + 50 × capacidade, 50000}. Para obter mais informações, consulte Disco em nuvem ESSD AutoPL. Se esta anotação for adicionada, o disco em nuvem criado com base no DataCache será um disco em nuvem ESSD AutoPL. |
| k8s.aliyun.com/eci-data-cache-burstingEnabled | "true" | Especifica se deve ativar o burst (burst de desempenho) para o disco em nuvem ESSD AutoPL. Para obter mais informações, consulte Disco em nuvem ESSD AutoPL. Se esta anotação for adicionada, o disco em nuvem criado com base no DataCache será um disco em nuvem ESSD AutoPL. |
| k8s.aliyun.com/eci-custom-tags | "env:test,name:alice" | A string de tag a ser anexada. Você pode anexar até três tags. Separe as chaves e os valores das tags com dois pontos (:) e separe várias tags com vírgulas (,). |
Experimente agora
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
ess:ApplyScalingGroup |
create |
*Todos os recursos
|
Nenhuma | Nenhuma |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| ClientToken |
string |
Não |
O token de cliente usado para garantir a idempotência da solicitação. Você pode usar o cliente para gerar o token, mas deve garantir que ele seja exclusivo para diferentes solicitações. O token pode conter apenas caracteres ASCII e não pode exceder 64 caracteres de comprimento. Para obter mais informações, consulte Como garantir a idempotência. |
123e4567-e89b-12d3-a456-42665544**** |
| Content |
string |
Sim |
O conteúdo do arquivo de configuração. |
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: k8s.aliyun.com/eip-bandwidth: 10 k8s.aliyun.com/eci-with-eip: true spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 |
| RegionId |
string |
Não |
O ID da região. |
cn-hangzhou |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
Esquema da resposta. |
||
| RequestId |
string |
O ID da solicitação. |
CC107349-57B7-4405-B1BF-9BF5AF7F**** |
| ScalingGroupId |
string |
O ID do grupo de escalonamento que entra em vigor. |
asg-bp1igpak5ft1flyp**** |
Exemplos
Resposta de sucesso
JSON formato
{
"RequestId": "CC107349-57B7-4405-B1BF-9BF5AF7F****",
"ScalingGroupId": "asg-bp1igpak5ft1flyp****"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|---|---|---|---|
| 400 | IdempotentParameterMismatch | The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical. |
Consulte Códigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de Versão para uma lista completa.