Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Spot-Instances
Verwaltete Knotengruppen
eksctl
unterstützt Spot-Worker-Knoten mithilfe von EKS Managed Nodegroups
Um mithilfe von Spot-Instances einen Cluster mit einer verwalteten Knotengruppe zu erstellen, übergeben Sie das --spot
Flag und eine optionale Liste von Instance-Typen:
eksctl create cluster --spot --instance-types=c3.large,c4.large,c5.large
So erstellen Sie eine verwaltete Knotengruppe mithilfe von Spot-Instances auf einem vorhandenen Cluster:
eksctl create nodegroup --cluster=<clusterName> --spot --instance-types=c3.large,c4.large,c5.large
So erstellen Sie Spot-Instances mithilfe verwalteter Knotengruppen über eine Konfigurationsdatei:
# 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
Anmerkung
Nicht verwaltete Knotengruppen unterstützen die instanceTypes
Felder spot
und nicht, stattdessen wird das instancesDistribution
Feld zur Konfiguration von Spot-Instances verwendet. Siehe unten
Weitere Informationen
Nicht verwaltete Knotengruppen
eksctl
unterstützt Spot-Instances über die MixedInstancesPolicy for Auto Scaling Groups.
Hier ist ein Beispiel für eine Knotengruppe, die zu 50% Spot-Instances und zu 50% On-Demand-Instances verwendet:
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
Beachten Sie, dass das nodeGroups.X.instanceType
Feld nicht festgelegt werden sollte, wenn Sie das instancesDistribution
Feld verwenden.
In diesem Beispiel werden GPU-Instanzen verwendet:
nodeGroups: - name: ng-gpu instanceType: mixed desiredCapacity: 1 instancesDistribution: instanceTypes: - p2.xlarge - p2.8xlarge - p2.16xlarge maxPrice: 0.50
In diesem Beispiel wird die Strategie zur kapazitätsoptimierten Spot-Allokation verwendet:
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"
In diesem Beispiel wird die capacity-optimized-prioritized Spot-Allokationsstrategie verwendet:
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"
Verwenden Sie die capacity-optimized-prioritized
Zuweisungsstrategie und legen Sie dann die Reihenfolge der Instance-Typen in der Liste der Startvorlagen-Overrides von der höchsten zur niedrigsten Priorität fest (vom ersten zum letzten in der Liste). Amazon EC2 Auto Scaling berücksichtigt die Prioritäten des Instance-Typs nach bestem Wissen und Gewissen, optimiert jedoch zuerst die Kapazität. Dies ist eine gute Option für Workloads, bei denen die Möglichkeit von Unterbrechungen minimiert werden muss, bei denen aber auch die Präferenz für bestimmte Instance-Typen wichtig ist. Weitere Informationen finden Sie unter ASG-Kaufoptionen.
Beachten Sie, dass das spotInstancePools
Feld nicht festgelegt werden sollte, wenn Sie das Feld verwenden. spotAllocationStrategy
Wenn das nicht angegeben spotAllocationStrategy
ist, EC2 wird standardmäßig die lowest-price
Strategie verwendet.
Hier ist ein minimales Beispiel:
nodeGroups: - name: ng-1 instancesDistribution: instanceTypes: ["t3.small", "t3.medium"] # At least one instance type should be specified
Um Knoten zwischen Spot- und On-Demand-Instances zu unterscheiden, können Sie das Kubernetes-Label verwendennode-lifecycle
, das on-demand
je nach spot
Typ den Wert oder hat.
Parameter in InstancesDistribution
Einzelheiten finden Sie im Cluster-Konfigurationsschema.