From 64e6342b95ea865beb90fb89192e496109a50495 Mon Sep 17 00:00:00 2001 From: D8D Developer Date: Thu, 10 Jul 2025 06:18:15 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(eci):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=B3=A8=E8=A7=A3=E6=8C=87=E5=AE=9AECS?= =?UTF-8?q?=E8=A7=84=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加对k8s.aliyun.com/eci-use-specs注解的解析 - 将注解值作为InstanceType参数传递给ECI创建请求 --- eci.go | 7 +++++++ eci/create_container_group.go | 1 + 2 files changed, 8 insertions(+) diff --git a/eci.go b/eci.go index ce55749..48e9346 100644 --- a/eci.go +++ b/eci.go @@ -185,6 +185,13 @@ func (p *ECIProvider) CreatePod(ctx context.Context, pod *v1.Pod) error { request := eci.CreateCreateContainerGroupRequest() request.RestartPolicy = string(pod.Spec.RestartPolicy) + // 解析ECS规格注解 + if pod.Annotations != nil { + if specs, exists := pod.Annotations["k8s.aliyun.com/eci-use-specs"]; exists { + request.InstanceType = specs + } + } + // 添加抢占式实例策略配置 request.SpotStrategy = "SpotAsPriceGo" // 设置抢占式实例策略为按价格竞价 //request.SpotDuration = 0 // 设置抢占式实例持续时间为0(非定时抢占) diff --git a/eci/create_container_group.go b/eci/create_container_group.go index 2f0d6cb..5c9d31f 100644 --- a/eci/create_container_group.go +++ b/eci/create_container_group.go @@ -92,6 +92,7 @@ type CreateContainerGroupRequest struct { AutoCreateEip requests.Boolean `position:"Query" name:"AutoCreateEip"` ZoneId string `position:"Query" name:"ZoneId"` SpotStrategy string `position:"Query" name:"SpotStrategy"` + InstanceType string `position:"Query" name:"InstanceType"` // SpotDuration requests.Integer `position:"Query" name:"SpotDuration"` }