You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

oc get deployment返回No resources found异常问题咨询

问题现象
  • 集群内执行oc get deployment命令返回结果为No resources Found
  • 添加-n参数指定对应命名空间执行上述命令,仍返回相同结果
  • 执行oc get pods命令可正常获取正确结果
  • 环境版本信息:
    • oc客户端版本:v3.6.0
    • Kubernetes版本:v1.6.1
    • OpenShift集群版本:v3.11.380
诱发原因

问题由两类原因导致:

  1. 客户端与集群版本差过大引发API兼容问题:OpenShift 3.x系列要求oc客户端和集群服务端的版本差不能超过1个次版本,当前使用的v3.6.0客户端和v3.11.380集群跨了5个次版本,完全不满足兼容要求。v3.6版本的oc查询Deployment时默认请求extensions/v1beta1 API组的对应接口,这个API组在3.11集群中已经废弃,客户端不会自动跳转请求3.11默认使用的apps/v1组Deployment接口,因此返回空结果。Pod属于核心/api/v1稳定组资源,API路径从未发生过不兼容变更,所以查询不受版本差影响。
  2. 查询的资源类型和实际部署类型不匹配:在Kubernetes原生Deployment能力成熟前,OpenShift 3.x长期使用自研的DeploymentConfig(缩写dc)作为工作负载资源,如果当前命名空间下的应用都是通过DeploymentConfig部署的,查询Deployment资源自然会返回空。
解决方案
  • 最彻底的处理方式是将本地oc客户端替换为和集群版本一致的v3.11.x版本,解决底层API兼容问题,替换后重新执行oc get deployment即可正常返回结果。
  • 如果替换匹配版本客户端后查询仍为空,说明当前命名空间下的部署资源是DeploymentConfig类型,执行oc get dc就能查到对应的部署记录。
  • 临时排查无法立刻更换客户端时,可以显式指定资源所属API组绕过兼容逻辑,执行命令oc get apps/v1.deployment即可查询到对应Deployment资源。

内容的提问来源于stack exchange,提问作者user1227670

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:12:17