准备工作 ECI 支持使用 ECS 预留实例券,要求在创建 ECI 时,指定对应的 ECS 规格。您使用托管版容器服务并使用 virtual-kubelet 节点,或者使用 Serverless 版容器服务时,可以通过指定 ECS 规格,创建 Pod,在购买了指定规格的 ECS 预留实例券时,会扣减预留实例券资源,不再进行按量单价的计费,非常适合长时间运行的在线业务常驻 Pod。
根据需要购买 ECS 预留实例券; 查看和管理 ECS 预留实例券; k8s
预留实例券根据规则匹配按量 ECI 实例,具体匹配描述请参考 预留实例券匹配规则。
根据指定实例规格 创建 Pod(ECI实例) 预留实例券仅支持根据 指定 ECS 实例规格 创建 ECI 实例。
进入容器服务应用菜单,比如无状态,创建应用 k8s
点击右上角,使用模板创建 k8s
k8s
只要在pod模板里加入以下注解即可(这里预留实例券购买的是ecs.c5.large实例) 注意 annotations 是加在 Pod 描述上,并根据实际需求填写 ECS 规格,ECS 规格列表可以参考 ECS 实例规格列表:
annotations: k8s.aliyun.com/eci-instance-type : "ecs.c5.large" #根据需要替换 ECS 规格 ecs.规格族.规格大小,例如:(ecs.c6.3xlarge) Pod Yaml文件 apiVersion: v1 kind: Pod metadata: labels: name: hello-pod name: hello-pod annotations: k8s.aliyun.com/eci-instance-type : "ecs.c5.large" #根据需要替换 ECS 规格 spec:
containers: - image: nginx imagePullPolicy: IfNotPresent name: hello-pod ports: - containerPort: 8080 protocol: TCP resources: {} securityContext: capabilities: {} privileged: false terminationMessagePath: /dev/termination-log dnsPolicy: ClusterFirst restartPolicy: Always
status: {} Deployment Yaml文件 需要注意 annotations 添加的位置,需要添加到 Pod 的 metadata 中。
apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: nginx-deployment-basic labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: k8s.aliyun.com/eci-instance-type : "ecs.c5.large" #根据需要替换 ECS 规格 spec: # nodeSelector: # env: test-team containers: - name: nginx image: nginx:1.7.9 # replace it with your exactly <image_name:tags> ports: - containerPort: 80 查看创建的容器组 k8s
另外也可以在 ECI 控制台上看到刚刚创建的实例
预留实例券(如果是可用区级别的)所在可用区应该与 Kubernetes 集群所在可用区一致,否则 serverless k8s 创建出来的 ECI 实例并不会使用预留实例券。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。