如果您的业务有不易提前预测的瞬时波峰,您可以在Knative中使用弹性容器实例ECI(Elastic Container Instance)提供的Pod资源,快速应对突发流量,仅需为实际使用的资源付费。
前提条件
已在集群中部署Knative,请参见部署Knative。
已部署使用ECI资源所需的ack-virtual-node组件,请参见部署ack-virtual-node组件。
操作步骤
创建Knative Service资源对象,添加标签
alibabacloud.com/eci=true
,并配置Annotationk8s.aliyun.com/eci-use-specs
用于指定ECI规格,然后执行kubectl apply
命令部署YAML文件。示例模板如下。
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go namespace: vk spec: template: metadata: labels: alibabacloud.com/eci: "true" # 添加标签 annotations: k8s.aliyun.com/eci-use-specs: "2-4Gi" # 指定ECI规格 spec: containers: - env: - name: TARGET value: "Knative" image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
配置完成后,执行以下命令,验证操作是否成功。
kubectl -n vk get pod -o wide
预期输出:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES helloworld-go-dqqhv-deployment-6d54c9c8dc-hkjwn 2/2 Running 0 40s 192.XX.0.80 virtual-node-eci-0 <none> <none>
预期输出表明,已成功创建2个ECI Pod。
相关文档
使用Knative时,如果您希望在业务流量稳定时段使用ECS节点,而在突发流量时段将应用调度至自动扩容的ECI Pod,请参见在Knative中同时使用ECS和ECI资源。
您可以使用ECI提供的镜像缓存功能加速镜像的拉取,减少实例创建耗时,请参见使用镜像加速。