
# 定位思路
当工作负载状态异常时，建议先查看事件。在CCI控制台中，单击左侧导航栏的"工作负载"，单击异常工作负载名称，进入详情页面，在Pod列表中，单击异常实例左边的![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0270890188.png)，显示该实例的详情，单击事件页签。
图1查看事件   
![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0000002359239298.png)
表1工作负载异常处理 
| 工作负载异常定位 | 可能原因                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| 重新拉取镜像失败 | - kubectl创建工作负载时未指定imagePullSecret  - 填写的镜像地址错误  - IAM用户没有镜像下载权限  - 镜像打包使用的docker版本过低   |
| 重新启动容器失败 | - 查看端口是否冲突  - 用户自身业务BUG  - 工作负载配置的健康检查执行失败  - 命名空间的资源类型错误                           |
| 其他异常     | 其他原因                                                                                                                                                                                                                                                                                                                                                                       |
   
#### 重新拉取镜像失败
工作负载详情中，如果事件中提示"重新拉取镜像失败"，请参照如下方式来排查原因。
- Kubectl创建工作负载时未指定ImagePullSecret 以创建一个名为Nginx的Deployment为例，请排查yaml文件中是否存在**imagePullSecrets**字段（如下yaml示例中的加粗字段），表示Pull镜像时的Secret名称。
  需要使用[容器镜像服务](https://www.huaweicloud.com/product/swr.html)的镜像时，参数值固定为**imagepull-secret**。
  ```
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: nginx
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: nginx
    strategy:
      type: RollingUpdate
    template:
      metadata:
        labels:
          app: nginx
      spec:
        containers:
        - image: nginx:alpine
          imagePullPolicy: Always
          name: nginx
        imagePullSecrets:
          - name: imagepull-secret
  ```
  
 
- 填写的镜像地址错误 CCI支持拉取[容器镜像服务](https://www.huaweicloud.com/product/swr.html)中的镜像来创建工作负载。
  容器镜像服务中的镜像需要使用镜像的"下载指令"，上传镜像后，您可以在容器镜像服务的镜像中获取，如下图所示。
  图2镜像地址   
  ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0000002359399218.png) 
- IAM用户没有镜像下载权限 如果您开通了企业管理，您需要在账号下的容器镜像服务中给IAM用户添加权限，IAM用户才能使用账号下的私有镜像。
  给IAM用户添加权限有如下两种方法：
  - 在镜像详情中为IAM用户添加授权，授权完成后，IAM用户享有读取/编辑/管理该镜像的权限，具体请参见[在镜像详情中添加授权](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)。
  
  - 在组织中为IAM用户添加授权，使IAM用户对组织内所有镜像享有读取/编辑/管理的权限，具体请参见[在组织中添加授权](https://support.huaweicloud.com/usermanual-swr/swr_01_0015.html)。
    

- 镜像打包使用的docker版本过低 业务负载拉取镜像失败，报错信息如下：
  ```
  failed to pull and unpack image "****": failed to unpack image on snapshotter devmapper: failed to extract layer
  sha256:xxxxxx: failed to get reader from content store: content digest sha256:xxxxxx: not found
  ```
  错误如下图所示：
  图3报错信息   
  ![](https://support.huaweicloud.com/cci_faq/zh-cn_image_0000002392919341.png)
  该错误出现的原因：镜像构建时使用的docker版本过低（\<v1.10），部分镜像打包标准社区已经不再支持。
  解决方案：请使用新版本 docker 运行时（\>= docker v1.11）重新构建镜像后上传到SWR（容器镜像服务），升级负载镜像版本，重新拉取即可。
  
 
