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

Kubernetes Weblogic Operator安装失败NoRouteToHostException排障

故障环境与背景
  • 集群架构:1台部署master角色的VM主机,2台独立VM部署worker角色节点,目标为部署Kubernetes Weblogic Operator
  • 故障前置历史:此前曾成功部署Operator并稳定运行,升级域时出现进程卡死问题,遂清理全量相关组件,重装整套Kubernetes与Weblogic Operator,本次安装出现无法定位的故障,怀疑清理环节存在残留配置。
已执行的部署流程
  1. Kubernetes集群部署
  • 清理所有已知K8s相关组件后,执行集群初始化命令,指定适配Flannel的Pod网段:
kubeadm init --pod-network-cidr=10.244.0.0/16 --cri-socket unix:///var/run/cri-dockerd.sock --ignore-preflight-errors=all
  • 部署Flannel网络插件:
kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
  • 2台worker节点顺利加入集群后,节点状态均为Ready:
NAME           STATUS   ROLES           AGE   VERSION
master-node    Ready    control-plane   43h   v1.24.0
worker-node1   Ready    <none>          43h   v1.24.1
worker-node2   Ready    <none>          43h   v1.24.1
  1. Weblogic Operator部署
  • 参照Oracle官方Quick Start指南操作,提前完成所需命名空间、服务账号配置,拉取全量依赖镜像、安装Helm包管理工具后,执行Operator安装命令:
helm install sample-weblogic-operator kubernetes/charts/weblogic-operator \
  --namespace sample-weblogic-operator-ns \
  --set image=ghcr.io/oracle/weblogic-kubernetes-operator:3.4.0 \
  --set serviceAccount=sample-weblogic-operator-sa \
  --set "enableClusterRoleBinding=true" \
  --set "domainNamespaceSelectionStrategy=LabelSelector" \
  --set "domainNamespaceLabelSelector=weblogic-operator\=enabled"
故障现象
  • Operator Pod持续处于CrashLoopBackOff状态,无法正常启动:
sample-weblogic-operator-ns   weblogic-operator-85667bfb6f-fdcw6    0/1     CrashLoopBackOff   406 (3m22s ago)   22h
  • Pod事件持续报探针检测失败、容器重启退避:
Warning  Unhealthy  20m (x1077 over 22h)    kubelet  Liveness probe failed:
  Warning  BackOff    5m12s (x4906 over 22h)  kubelet  Back-off restarting failed container
  Warning  Unhealthy  6s (x2424 over 23h)     kubelet  Readiness probe failed:
  • 集群全量Pod运行状态参考:
    集群Pod运行状态截图
  • Operator Pod日志反复抛出网络连通性异常:
"message":"Exception thrown","exception":"
io.kubernetes.client.openapi.ApiException: java.net.NoRouteToHostException: No route to host
  • 排查集群组件日志发现,coredns Pod持续打印等待kubernetes插件就绪的日志:
[INFO] plugin/ready: Still waiting on: "kubernetes"
  • 初步判断为网络配置异常,但无法定位具体根因。
排障方案

coredns持续卡等kubernetes插件、Operator抛出NoRouteToHostException,核心原因是K8s集群内部网络转发失效,和Weblogic Operator本身的Helm配置无关,按以下优先级排查:

  • 优先排查iptables残留规则
    重装集群时如果没有清空旧的iptables规则,旧的Service、CNI转发规则残留是最高发的诱因。所有节点(master+2台worker)都要执行以下操作:
    1. 停服:systemctl stop kubelet cri-dockerd
    2. 清空规则:
      iptables -F
      iptables -t nat -F
      iptables -t mangle -F
      iptables -X
      ipvsadm -C # 若之前使用ipvs转发模式则执行
      
    3. 重启服务:systemctl start cri-dockerd kubelet
  • 排查Flannel网络连通性
    1. 检查所有节点的/run/flannel/subnet.env文件,确认分配的Pod网段和初始化时指定的10.244.0.0/16一致
    2. 所有节点临时关闭防火墙、SELinux验证:systemctl stop firewalld && setenforce 0,VM环境默认防火墙经常拦截Flannel VxLAN使用的8472/UDP端口,直接导致跨节点、Pod到APIServer的路由不通
    3. 查看Flannel Pod日志,确认VxLAN网卡创建、跨节点路由下发无报错
    4. 在Operator Pod所在节点直接执行curl -k https://10.96.0.1:443(默认K8s APIServer的ClusterIP),如果连不通说明集群Service网段转发完全失效
  • 排查控制面服务状态
    1. Master节点执行ss -lntp | grep kube-apiserver,确认6443端口正常监听
    2. 查看/etc/kubernetes/manifests目录下的静态Pod配置,确认没有旧集群残留的配置文件——重装时如果没清空该目录,新旧配置冲突会导致APIServer、控制器服务异常
    3. 查看kube-apiserver、coredns的运行日志,确认没有证书无效、后端地址配置错误的问题
  • 彻底清理残留重新初始化(以上步骤无效时执行)
    所有节点执行全量清理:
    kubeadm reset -f
    rm -rf /etc/cni/net.d /opt/cni/bin /var/lib/cni /var/lib/etcd /var/lib/kubelet/* /etc/kubernetes
    iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
    ipvsadm -C
    systemctl daemon-reload
    systemctl restart cri-dockerd
    
    重新初始化集群前,先确认节点间6443/TCP、8472/UDP端口连通性正常,集群初始化、Flannel部署完成,coredns Pod全部进入Running状态后,再安装Weblogic Operator。

内容的提问来源于stack exchange,提问作者Rafail K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:21:36