
# 节点sock文件挂载检查异常处理
#### 检查项内容
检查节点上的Pod是否直接挂载docker/containerd.sock文件。升级过程中Docker/Containerd将会重启，宿主机sock文件发生变化，但是容器内的sock文件不会随之变化，二者不匹配，导致您的业务无法访问Docker/Containerd。Pod重建后sock文件重新挂载，可恢复正常。
通常K8S集群用户基于如下场景在容器中使用上述sock文件：
- 监控类应用，以DaemonSet形式部署，通过sock文件连接Docker/Containerd，获取节点容器状态信息。
- 编译平台类应用，通过sock文件连接Docker/Containerd，创建程序编译用容器。
 
#### 解决方案
- 问题场景一：检查到应用存在该异常，进行整改。 推荐您使用挂载目录的方式挂载sock文件。例如，若宿主机sock文件路径为/var/run/docker.sock，您可参考下述配置进行整改。注意，该整改生效时会触发Pod重建。
  ```
  kind: Deployment
  apiVersion: apps/v1
  metadata:
    name: test
  spec:
    replicas: 1
    selector:
      matchLabels:
        app: nginx
    template:
      metadata:
        app: nginx
      spec:
        containers:
          - name: container-1
            image: 'nginx'
            imagePullPolicy: IfNotPresent
            volumeMounts:
              - name: sock-dir
                mountPath: /var/run
        imagePullSecrets:
          - name: default-secret
        volumes:
          - name: sock-dir
            hostPath:
              path: /var/run
  ```
  
- 问题场景二：检查到应用存在该异常，明确应用使用场景后，接受sock短暂不可访问风险，继续升级。 请选择跳过该检查项异常后重新检查，在集群升级完成后删除存量Pod，触发Pod重建，访问将恢复。
  

- 问题场景三：部分老版本的CCE插件存在该异常 请将老版本的CCE插件升级至最新版本。例如1.2.2以下的CCE容器网络扩展指标插件存在该问题，需升级至1.2.2及以上版本。
  
- 问题场景四：日志分析里面出现"failed to execute docker ps -aq"错误。 该报错出现一般是因为容器运行时功能异常导致，请您提工单联系运维人员处理。
  
 
