Instâncias spot - Guia do usuário do Eksctl

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Instâncias spot

Grupos de nós gerenciados

eksctlsuporta nós de trabalhadores Spot usando grupos de nós gerenciados do EKS, um recurso que permite aos clientes do EKS com aplicativos tolerantes a falhas provisionar e gerenciar facilmente instâncias EC2 spot para seus clusters EKS. O EKS Managed Nodegroup configurará e lançará um grupo de instâncias spot de EC2 escalonamento automático seguindo as melhores práticas do Spot e drenando automaticamente os nós de trabalho spot antes que as instâncias sejam interrompidas pela AWS. Não há cobrança incremental para usar esse recurso e os clientes pagam somente pelo uso dos recursos da AWS, como instâncias EC2 spot e volumes do EBS.

Para criar um cluster com um grupo de nós gerenciado usando instâncias spot, passe a --spot sinalização e uma lista opcional de tipos de instância:

eksctl create cluster --spot --instance-types=c3.large,c4.large,c5.large

Para criar um grupo de nós gerenciado usando instâncias spot em um cluster existente:

eksctl create nodegroup --cluster=<clusterName> --spot --instance-types=c3.large,c4.large,c5.large

Para criar instâncias spot usando grupos de nós gerenciados por meio de um arquivo de configuração:

# spot-cluster.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: spot-cluster region: us-west-2 managedNodeGroups: - name: spot instanceTypes: ["c3.large","c4.large","c5.large","c5d.large","c5n.large","c5a.large"] spot: true # `instanceTypes` defaults to [`m5.large`] - name: spot-2 spot: true # On-Demand instances - name: on-demand instanceTypes: ["c3.large", "c4.large", "c5.large"]
eksctl create cluster -f spot-cluster.yaml
nota

Grupos de nós não gerenciados não oferecem suporte aos instanceTypes campos spot e, em vez disso, o instancesDistribution campo é usado para configurar instâncias spot. Veja abaixo

Mais informações

Grupos de nós não gerenciados

eksctltem suporte para instâncias spot por meio do MixedInstancesPolicy for Auto Scaling Groups.

Aqui está um exemplo de um grupo de nós que usa 50% de instâncias spot e 50% de instâncias sob demanda:

nodeGroups: - name: ng-1 minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotInstancePools: 2

Observe que o nodeGroups.X.instanceType campo não deve ser definido ao usar o instancesDistribution campo.

Este exemplo usa instâncias de GPU:

nodeGroups: - name: ng-gpu instanceType: mixed desiredCapacity: 1 instancesDistribution: instanceTypes: - p2.xlarge - p2.8xlarge - p2.16xlarge maxPrice: 0.50

Este exemplo usa a estratégia de alocação spot otimizada para capacidade:

nodeGroups: - name: ng-capacity-optimized minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotAllocationStrategy: "capacity-optimized"

Este exemplo usa a estratégia de alocação capacity-optimized-prioritized spot:

nodeGroups: - name: ng-capacity-optimized-prioritized minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3a.small", "t3.small"] # At least two instance types should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 0 spotAllocationStrategy: "capacity-optimized-prioritized"

Use a estratégia de capacity-optimized-prioritized alocação e, em seguida, defina a ordem dos tipos de instância na lista de substituições do modelo de execução da prioridade mais alta para a mais baixa (da primeira à última na lista). O Amazon EC2 Auto Scaling honra as prioridades do tipo de instância com base no melhor esforço, mas otimiza primeiro a capacidade. Essa é uma boa opção para cargas de trabalho em que a possibilidade de interrupção deve ser minimizada, mas também é importante a preferência por determinados tipos de instância. Para obter mais informações, consulte Opções de compra do ASG.

Observe que o spotInstancePools campo não deve ser definido ao usar o spotAllocationStrategy campo. Se o não spotAllocationStrategy for especificado, EC2 usará a lowest-price estratégia como padrão.

Aqui está um exemplo mínimo:

nodeGroups: - name: ng-1 instancesDistribution: instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified

Para distinguir os nós entre instâncias spot e sob demanda, você pode usar o rótulo kubernetes, node-lifecycle que terá o valor spot ou on-demand dependerá do tipo.

Parâmetros em InstancesDistribution

Consulte o esquema de configuração do cluster para obter detalhes.