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

OKD 4.15创建持久化存储后镜像仓库无法访问问题排查求助

OKD 4.15镜像仓库连接拒绝问题定位方法

集群现状回顾

  • 裸金属Proxmox VAN部署OKD 4.15,节点DNS互通,HAProxy负载均衡正常,集群状态绿色
  • 服务节点(CentOS 9)部署NFS存储,PVC已绑定
  • 镜像仓库算子设为托管模式后,image-pruner Pod启动并抛出dial tcp 172.30.252.81:5000: connect: connection refused错误
  • 无法获取镜像仓库路由,但其他项目Pod可正常查看

具体定位步骤

1. 检查镜像仓库核心Pod状态与日志

  • 查看openshift-image-registry命名空间下所有Pod:
    oc get pods -n openshift-image-registry
    
    重点关注registry-xxxx-xxxx类Pod的状态(如Running/CrashLoopBackOff/Pending)
  • 若Pod异常,查看详细日志定位启动失败原因:
    oc logs <registry-pod-name> -n openshift-image-registry
    
    优先排查存储挂载失败、端口监听异常、配置错误等信息
  • 检查Deployment状态及事件:
    oc describe deployment registry -n openshift-image-registry
    
    确认副本数、可用数,查看事件中是否有资源不足、调度失败等提示

2. 验证镜像仓库服务与端点可用性

  • 查看服务基本信息,确认ClusterIP、端口及端点状态:
    oc get svc image-registry -n openshift-image-registry
    
    检查Endpoints列是否有对应Pod的IP,若为空则说明服务无后端Pod关联
  • 验证端点配置,检查Pod标签与服务Selector是否匹配:
    # 查看Pod标签
    oc describe pod <registry-pod-name> -n openshift-image-registry | grep Labels
    # 查看服务Selector
    oc describe svc image-registry -n openshift-image-registry | grep Selector
    
  • 从集群内测试服务连通性:
    # 创建临时测试Pod
    oc run -it --rm test-pod --image=fedora:38 -- /bin/bash
    # 在Pod内执行curl测试
    curl -v https://image-registry.openshift-image-registry.svc:5000/
    
    区分是连接拒绝、证书问题还是其他网络错误

3. 排查NFS存储挂载有效性

  • 确认PV/PVC状态:
    oc get pv,pvc -n openshift-image-registry
    
    确保PVC处于Bound状态,PV的访问模式、容量符合镜像仓库要求
  • 查看registry Pod的存储挂载细节:
    oc describe pod <registry-pod-name> -n openshift-image-registry | grep Volumes -A 10
    
    验证PVC是否正确挂载到Pod指定路径
  • 在NFS服务节点检查共享配置与日志:
    # 查看NFS共享列表
    showmount -e localhost
    # 查看NFS服务器日志
    cat /var/log/messages | grep nfs
    
    排查是否有挂载请求被权限拒绝的记录

4. 检查镜像仓库算子配置与状态

  • 查看Operator集群状态:
    oc get clusteroperator image-registry
    
    确认AVAILABLE状态为True,查看Events列是否有错误提示
  • 查看Operator自定义资源配置:
    oc get configs.imageregistry.operator.openshift.io cluster -o yaml
    
    验证managementState为Managed,storage.pvc.claim指向正确的PVC名称
  • 查看Operator日志:
    oc logs -n openshift-image-registry deployment/image-registry-operator
    
    排查配置同步、存储申领过程中的异常信息

5. 检查网络策略与节点防火墙

  • 查看openshift-image-registry命名空间的网络策略:
    oc get networkpolicy -n openshift-image-registry
    
    确认是否有策略阻止了image-pruner或其他集群内Pod访问5000端口
  • 检查计算节点防火墙规则,确保集群Service网段(默认172.30.0.0/16)的5000端口未被拦截:
    # 在计算节点执行
    firewall-cmd --list-all | grep 5000
    
  • 验证集群内DNS解析:
    # 在测试Pod内执行
    nslookup image-registry.openshift-image-registry.svc
    
    确认能正确解析到目标ClusterIP

6. 检查image-pruner自身配置

  • 查看image-pruner Pod的详细信息:
    oc describe pod <image-pruner-pod-name> -n openshift-image-registry
    
    验证服务账号权限、环境变量中的镜像仓库地址是否正确
  • 查看pruner配置ConfigMap:
    oc get configmap image-registry-pruner -n openshift-image-registry -o yaml
    
    确认配置中的仓库地址与实际服务一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:33:20