
# 工作负载状态正常但未正常工作
#### 问题现象
Pod已经处于Running状态（查看Pod状态）但未正常工作，或者访问结果不符合预期。
#### 问题原因
可能是您的部署描述YAML文件（例如 Pod、Deployment、StatefulSet等）存在错误。例如：
- 镜像版本未更新。您可能未使用正确的镜像版本，或者是旧版镜像和新版镜像重名均为latest版本，而节点上已存在旧版镜像，但工作负载的imagePullPolicy设置为IfNotPresent，导致未重新拉取新版镜像仍然运行旧版镜像。
- 配置中的环境变量错误。例如将command拼写成commnd，仍然能够使用该YAML文件创建工作负载，但是容器在运行时，却不会使用您原本期望的命令，而是执行了镜像中的EntryPoint默认命令。
 
#### 解决方案
1. 查看Pod的配置，确定Pod中容器的配置是否符合预期。具体操作，请参见[查看Pod配置](https://support.huaweicloud.com/cce_faq/cce_faq_00134.html#cce_faq_00134__section13143540480)。
2. 排查环境变量中的某一个Key是否存在拼写错误时，您可以参考以下方法。以command拼写成commnd为例，说明拼写问题排查方法。
   1. 在执行**kubectl apply -f** 命令前，尝试为其添加--validate，然后执行**kubectl apply --validate -f XXX.yaml** 命令。如果您将command拼写成commnd，将看到错误信息
      ```
      I0805 10:43:25.129850   46757 schema.go:126] unknown field: commnd
      I0805 10:43:25.129973   46757 schema.go:129] this may be a false alarm, see https://github.com/kubernetes/kubernetes/issues/6842/pods/mypod
      ```
      
   
   2. 执行以下命令，将输出结果的pod.yaml文件与您创建Pod使用的文件进行对比。
      ```
      kubectl get pods/$mypod  yaml > mypod.yaml
      ```
      *$mypod* 为异常Pod的名称，您可以通过**kubectl get pods** 命令查看。
      - mypod.yaml文件比您创建时所使用的Pod文件多几行，说明已创建的Pod符合预期。
      
      - 如果mypod.yaml缺失创建Pod使用文件的部分代码行，说明您创建Pod使用的文件存在拼写问题。
        
    
3. 查看Pod的日志，通过日志内容排查问题。具体操作，请参见[查看容器日志](https://support.huaweicloud.com/cce_faq/cce_faq_00134.html#cce_faq_00134__section08362088490)。
4. 可通过终端进入容器查看容器内的本地文件是否符合预期。具体操作，请参见[登录容器](https://support.huaweicloud.com/cce_faq/cce_faq_00134.html#cce_faq_00134__section5559222134911)。
 
