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

工作负载异常:重新拉取镜像失败_云容器引擎 CCE_常见问题_工作

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

简介:问题定位 工作负载状态异常时,建议先查看K8S事件以便于确定导致异常的初步原因,再参照如下排查思路解决问题,查看K8S事件的方法请参见 查看K8S事件,初步定位异常原因 。 排查思路 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原……

问题定位

工作负载状态异常时,建议先查看K8S事件以便于确定导致异常的初步原因,再参照如下排查思路解决问题,查看K8S事件的方法请参见查看K8S事件,初步定位异常原因

排查思路

以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。

如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。

图1 排查思路

排查项一:kubectl创建工作负载时未指定imagePullSecret

当工作负载状态异常并显示“重新拉取镜像失败”的K8S事件时,请排查yaml文件中是否存在imagePullSecrets字段。

排查事项:

  • 当Pull华为云容器镜像仓库的镜像时,name参数值需固定为default-secret
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx 
            imagePullPolicy: Always
            name: nginx
          imagePullSecrets:
          - name: default-secret
  • Pull第三方镜像仓库的镜像时,需设置为创建的secret名称。

    kubectl创建工作负载拉取第三方镜像时,需指定的imagePullSecret字段,name表示pull镜像时的secret名称,创建密钥的方法请参见使用kubectl创建第三方镜像仓库的密钥

排查项二:填写的镜像地址错误(使用第三方镜像时)

CCE支持拉取第三方镜像仓库(即华为云镜像仓库与开源镜像中心之外的镜像仓库)中的镜像来创建工作负载。

在填写第三方镜像的地址时,请参照要求的格式来填写。镜像地址格式为:ip:port/path/name:version或name:version,若没标注版本号则默认版本号为latest。

  • 若是私有仓库,请填写ip:port/path/name:version。
  • 若是docker开源仓库,请填写name:version,例如nginx:latest。
    图2 第三方镜像

镜像地址配置有误找不到镜像导致失败,Kubernetes Event中提示如下信息:

Failed to pull image "nginx:v1.1": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host

解决方案:

可编辑yaml修改镜像地址,也可在工作负载详情页面更新升级页签单击更换镜像。

排查项三:使用错误的密钥(使用第三方镜像时)

通常第三方镜像仓库都必须经过认证(帐号密码)才可以访问,而CCE中容器拉取镜像是使用密钥认证方式,这就要求在拉取镜像前必须先创建镜像仓库的密钥。

解决方案:

若您的密钥错误将会导致镜像拉取失败,请重新获取密钥。

创建密钥的方法请参见使用kubectl创建第三方镜像仓库的密钥

排查项四:节点磁盘空间不足

在v1.7.3-r7版本后的集群中新建节点后,会给节点绑定一个100G的docker专用数据盘。若数据盘空间不足,会导致重新拉取镜像失败。

图3 数据盘

当k8s事件中包含以下信息,表明节点上用于存储镜像的磁盘空间已满,需要清理镜像,或扩容磁盘。

确认节点上存储镜像的磁盘空间的命令为:lvs

清理镜像的命令为:

docker rmi –f {镜像ID}

扩容磁盘的操作步骤如下:

  1. 在EVS界面扩容docker盘。
  2. 登录目标节点。

    详情请参见:登录节点

  3. 然后在节点上执行如下命令, 将新增的磁盘容量加到docker盘上。

    pvresize /dev/vdb
    lvextend -l+100%FREE -n vgpaas/thinpool

提交工单

如果上述方法均不能解决您的疑问,提交工单寻求更多帮助。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:负载均衡 克隆负载均衡 - API 文档 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐