工作负载异常
定位思路
当工作负载状态异常时,建议先查看事件。
在CCI控制台中,单击左侧导航栏的“工作负载”,单击异常工作负载名称,进入详情页面,单击“事件”页签查看。
事件一:重新拉取镜像失败
工作负载详情中,若事件中提示“重新拉取镜像失败”,请参照如下方式来排查原因。
- 排查项一:创建工作负载时未指定imagePullSecret
以创建一个名为nginx的deployment为例,请排查yaml文件中是否存在imagePullSecrets字段(如下yaml示例中的加粗字段),表示pull镜像时的secret名称。
使用容器镜像服务的镜像时,参数值需要固定为imagepull-secret。
apiVersion: cci/v2 kind: Deployment metadata: name: nginx namespace: nginx-ns 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支持拉取容器镜像服务中的镜像来创建工作负载。
容器镜像服务中的镜像需要使用镜像的“下载指令”,上传镜像后,您可以在容器镜像服务的镜像中获取,如下图所示。
图1 镜像地址
- 排查项三:IAM用户没有镜像下载权限
如果您开通了企业管理,您需要在账号下的容器镜像服务中给IAM用户添加权限,IAM用户才能使用账号下的私有镜像。
给IAM用户添加权限有如下两种方法:
- 在镜像详情中为IAM用户添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限,具体请参见在镜像详情中添加授权。
- 在组织中为IAM用户添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限,具体请参见在组织中添加授权。
- 排查项四:镜像打包使用的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
该错误出现的原因:镜像构建时使用的docker版本过低(<v1.10),部分镜像打包标准社区已经不再支持。
解决方案:请使用新版本 docker 运行时(>= docker v1.11)重新构建镜像后上传到SWR(容器镜像服务),升级负载镜像版本,重新拉取即可。
- 排查项五:未配置VPCEP
请参阅购买云服务VPCEP查看是否已进行过上述步骤。
解决方案:如果您使用的是SWR企业仓,请配置OBS VPCEP后重新创建负载。如果您使用的是SWR公共镜像仓库,请配置OBS VPCEP和SWR VPCEP后重新创建负载。
事件二:重新启动容器失败
工作负载详情中,若事件中提示“重新启动容器失败”,请按照如下方式来排查原因。