通过Knative和虚拟节点组件使用弹性容器实例ECI(Elastic Container Instance),可以实现按需使用资源。本文介绍如何在Knative中使用ECI。
前提条件
-
已创建ACK Serverless集群或ACK托管集群。具体操作,请参见创建ACK Serverless集群、创建Kubernetes托管版集群。
-
已为集群部署Knative。具体操作,请参见在ACK集群中部署Knative、在ACK Serverless集群中部署Knative。
-
已在ACK集群中部署ACK Virtual Node组件。
-
获取集群KubeConfig并通过kubectl工具连接集群。
使用ECI
方式一:在Knative中直接使用ECI
-
为集群创建一个名称为vk的命名空间,并设置命名空间的变量名和变量值为
virtual-node-affinity-injection=enabled
。具体操作,请参见创建命名空间。
-
创建Knative Service资源对象。
配置annotation指定ECI规格,然后直接创建ECI Pod。
示例配置模板如下:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go namespace: vk spec: template: metadata: annotations: k8s.aliyun.com/eci-use-specs: "2-4Gi" spec: containers: - env: - name: TARGET value: "Knative" image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
方式二:在Knative中指定ECS节点且支持自动创建ECI
通过设置节点亲和性nodeAffinity,在Knative中可以指定添加标签的ECS节点,且Knative支持自动创建ECI,实现同一个服务的Pod既可以部署在ECS中,也可以部署在ECI中。
-
为集群创建一个名称为vk的命名空间,并设置命名空间的变量名和变量值为
virtual-node-affinity-injection=enabled
。具体操作,请参见创建命名空间。
-
给ECS节点添加标签。具体步骤请参见管理节点标签。
本文给ECS节点添加标签的示例为:resource-role:ecs。
-
在Service资源对象模板中,配置节点亲和性nodeAffinity。
通过配置nodeAffinity指定添加标签的ECS和Virtual Kubelet。
示例配置模板如下。
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go namespace: vk spec: template: metadata: annotations: k8s.aliyun.com/eci-use-specs: "2-4Gi" spec: containerConcurrency: 10 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: resource-role operator: In values: - ecs - matchExpressions: - key: type operator: In values: - virtual-kubelet containers: - env: - name: TARGET value: "Knative" image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
执行结果
执行以下命令,可以看到成功创建2个ECI Pod。
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.1xx.x.xx virtual-node-eci-0
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/171255.html