当前位置:主页 > 查看内容

常见问题 - 弹性容器实例

发布时间:2021-09-17 00:00| 位朋友查看

简介:本文汇总了使用ECI的常见问题,包括计费、实例、容器、镜像、网络、存储等问题。 产品计费 Job任务类ECI实例如何收费? 配额限制 如何查看 vCPU和virtual node的使用配额? 如何处理ValueExceeded问题? 实例与容器 如何加速创建ECI实例? 为什么ECI控制台和……

本文汇总了使用ECI的常见问题,包括计费、实例、容器、镜像、网络、存储等问题。

Job任务类ECI实例如何收费?

Job、CronJob等任务类容器在运行完成后,ECI实例会进入运行成功(Succeeded)或者运行失败(Failed)状态。此时,ECI实例不论是否删除,都不再进行计费。

ECI实例的计费时长从下载容器镜像(docker pull)开始,至ECI实例运行结束(进入Succeeded或Failed状态)。更多信息,请参见计费概述

如何查看vCPU和virtual node的使用配额?

ECI的实例数和virtual node支持的Pod数量,依赖于对应地域您的vCPU配额(quota)和已使用量。ECI的配额与ECS的配额共用,如果当前的配额无法满足您的业务需求,请提交工单申请提升配额。

在控制台查看配额的方法如下:

  1. 登录ECI控制台

  2. 在顶部菜单栏左上角处,选择地域。

  3. 在左侧导航栏,单击权益配额

权益配额包含已使用量和使用上限,如下图所示。

Image 2

如何处理ValueExceeded问题?

当创建ECI实例时遇到ValueExceeded问题,则表示配额不足,您可以提交工单申请提升配额。

如何加速创建ECI实例?

问题描述:

在标准节点上创建一个Pod只需要两到三秒,而创建ECI实例时使用了镜像缓存,Pod却用了十几秒才启动。

问题解释:

这种情况是正常的。因为在标准节点上创建Pod时,不需要单独申请资源,直接在节点上创建容器,因此时间比较快。而在创建ECI实例时,系统需要申请资源,如果指定了多可用区,还需要在库存不足时逐个尝试各个可用区是否有库存,因此时间相对会慢一些。

如果您指定了多可用区创建ECI实例,建议您把库存比较多的可用区ID放在第一个,这样可以避免由重试导致的启动延迟。

为什么ECI控制台和监控数据显示的实例规格不一致?

问题描述:

创建了一个0.5C1G规格的ECI实例,但是在监控数据查到的ECI实例的规格是2C2G。

问题解释:

上述现象是正常的,2C2G是虚拟机的规格,而非ECI实例的规格。如果您购买的是0.5C1G规格的ECI实例,最终也只能使用对应规格的资源。

如何避免OperationDenied.NoStock问题?

在创建ECI实例的时候,如果遇到OperationDenied.NoStock问题,表示当前地域和可用区的ECI实例已售罄。建议您采用多可用区、多规格的方式创建ECI实例。具体操作,请参见多可用区创建多规格创建

如何解决Back-off restarting failed container事件?

如果ECI实例事件中一直出现Back-off restarting failed container的Warning事件,一般是由于通过指定的镜像启动容器后,容器内部没有常驻进程,导致容器启动成功后立即退出,从而进行了持续的重启。

对于CentOS、busybox等基础镜像,您需要在创建容器时设置启动命令。具体操作,请参见使用CentOS 镜像创建ECI

Pod显示已调度至virtual-kubelet,但一直未成功,怎么办?

问题描述:

在使用虚拟节点virtual-kubelet或者Serverless Kubernetes过程中,可能会出现Pod显示已经调度到virtual-kubelet节点,但是一直没有新的事件更新的现象。 这种情况下,您需要获取对应的virtual-kubelet日志,获取报错信息并进行问题排查。

faq-vk-log-1 faq-vk-log2

说明

如果有新的事件产生,您可以先根据产生的事件进行报错分析和处理。

解决方法:

  1. 在容器服务控制台的集群页面,单击目录集群操作列下的更多>通过Cloud Shell登录集群

  2. 运行以下命令获取virtual-kubelet Pod名称。

    kubectl -n kube-system get pods

    faq-vk-log-4
  3. 运行以下命令获取对应Pod的日志信息。其中ack-virtual-node-controller-xxxxxxxxxx请替换为步骤2获取的Pod名称。

    kubectl -n kube-system logs ack-virtual-node-controller-xxxxxxxxxx

    faq-vk-log-5
  4. 根据最新的日志报错进行处理,或者提供RequestID和报错信息,发起工单处理流程。

    faq-vk-log-6

创建Pod后一直Pending状态怎么办?

问题描述:

创建Pod后几个小时内,一直处于为Pending状态。查看Pod事件列表或实例事件列表,显示在挂载Volume时,由于连接API Server超时导致失败。

解决方法:

该问题通常是由于实例与API Server网络不通导致,您可以按以下思路排查:

  • 检查Pod与集群的API Server是否在同一个专有网络VPC中。

  • 如果为集群SLB添加了访问控制,请确保已将Pod所处网段加入到访问控制列表中。

添加了虚拟节点的Kubernetes集群的kube-proxy、coredns被调度到了虚拟节点,启动失败怎么办?

kube-proxy、coredns调度的时候是忽略taints的,所以有可能被调度到虚拟节点上。此时,您可以编辑kube-proxy、coredns的yaml解决问题,需要增加的yaml如下:

affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: type
                operator: NotIn
                values:
                - virtual-kubelet

在ASK Ingress中设置了鉴权,但不生效是什么原因?

问题描述:

nginx-ingress 中设置了注解 nginx.ingress.kubernetes.io/auth-url ,但不生效。

问题解释:

ASK中基于SLB的Ingress Controller,不支持设置鉴权URL。

ACK是支持的。

是否支持私有镜像?

支持私有镜像。

支持使用阿里云镜像仓库搭建私有镜像,也支持您自己搭建的镜像仓库。

镜像缓存是否支持更新?

目前镜像缓存不支持修改更新,建议您重新创建镜像缓存后,再删除原有镜像缓存。

ECI实例是否支持修改安全组?

ECI实例不支持修改安全组,如果您想要变更安全组,需要重新创建ECI实例。

如何从外网访问容器组?

如果您需要ECI实例能够访问外网,或者被外网访问,您需要为其配置EIP或者NAT网关。更多信息,请参见外网访问

是否支持端口映射?

ECI实例不支持端口映射。

在同一个VPC网络中,您可以直接通过ECI实例的IP+Port进行访问(默认会将容器的端口开放)。

如果你需要支持外网访问,您可以配置EIP或者NAT网关。更多信息,请参见外网访问

集群升级后,服务IP地址ping不通怎么办?

在2020年10月之前,每个Service IP会对应一张虚拟网卡,所以能ping通。但在2020年10月份之后,为了优化高并发,Service IP只存在ipvs的规则中,所以无法ping通(ipvs是基于IP+Port做数据转发的,所以ping包无法做转发)。

ECI是否可以和ECS共享NAS文件存储?

支持ECI与ECS共享NAS文件存储,您可以通过配置挂载点进行NAS文件系统的挂载。具体操作,请参见挂载NAS

是否支持数据持久化?

支持数据持久化。容器组支持创建有状态应用,您可以在创建容器组时挂载数据卷,将数据写到数据卷上,实现数据持久化。具体操作,请参见数据卷

如何外挂存储?

针对一些在ECI实例运行期间对磁盘有较高的IO要求、同时有大量的临时数据需要存放的业务,如运行时产生的log文件,建议采用外置的数据卷来外挂存储。

您可以根据业务需求的场景来选择创建ECI实例外挂的存储(数据卷类型为FlexVolume):

是否支持指定ephemeral-storage来修改临时存储?

ECI不支持指定ephemeral-storage参数。默认提供40 GiB的临时存储,如果您需要更大的临时存储,可以采用以下方式:

  1. 创建镜像缓存,并指定需要的存储大小。

  2. 使用该镜像缓存创建ECI。

    创建成功即可获得与该镜像缓存大小相同的临时存储。

为什么采集不到ECI实例日志?

如果您在Pod中设置了日志服务的环境变量aliyun_logs_{Logstore名称},但在日志服务中却没有找到ECI实例的日志,可能是以下原因导致:

  • ECI实例运行时间太短

ECI实例启动后,如果业务容器在20秒内执行完毕,这种情况下,日志服务可能还没有来得及收集日志,容器就已经退出且日志相关的Volume已经被卸载,因此日志服务无法收集到日志。

  • 收集路径(Path)错误

首次在Pod中指定环境变量收集日志时,ECI会自动在日志服务中创建Logstore和Path,后续再次创建Pod时也只能使用该Path。如果使用了其它Path,则会导致日志服务收集不到日志。如果您想要更换Path,可以将Logstore一起更换,此时ECI会自动在日志服务中创建新的Logstore。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:Python SDK 使用示例 - 弹性容器实例 下一篇:没有了

推荐图文


随机推荐