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
eksctlunterstü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
eksctlunterstü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 Störungen 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.