在Knative中使用ECI资源

如果您的业务有不易提前预测的瞬时波峰,您可以在Knative中使用弹性容器实例ECI(Elastic Container Instance)提供的Pod资源,快速应对突发流量,仅需为实际使用的资源付费。

前提条件

操作步骤

  1. 创建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
  2. 配置完成后,执行以下命令,验证操作是否成功。

    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提供的镜像缓存功能加速镜像的拉取,减少实例创建耗时,请参见使用镜像加速