暗能星系

    • 登录
    • 搜索

    三黍运维命令

    张渌
    1
    42
    16
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      zhanglu 最后由 编辑

      🚀 终极修复方案
      这个问题属于 Linux 内核网络路由冲突。请立刻按照以下两步在 Master 节点 (node1) 上执行,可以瞬间打破这个死锁:

      步骤一:关闭 Master 节点网卡的反向路径过滤(RP_Filter)
      Linux 内核为了防欺骗,默认会开启反向路径校验。如果它发现回包的路径和来包路径不一致,就会直接把包丢弃。

      在 Master 节点 (node1) 上执行:

      Bash

      临时关闭所有网卡的反向路径过滤

      sysctl -w net.ipv4.conf.all.rp_filter=0
      sysctl -w net.ipv4.conf.default.rp_filter=0

      刷新配置

      sysctl -p
      步骤二:强行清空这个卡死的 SYN_RECV 流表
      现在连接跟踪表里缓存了错误的连接状态,必须把它立刻踢掉:

      在 Master 节点 (node1) 上强行断开并清理针对 node4 的死连接:

      Bash
      conntrack -D -s 192.168.10.13

      或者直接清理目的地是 10.233.0.1 且状态坏掉的流表

      conntrack -D -d 10.233.0.1
      🧪 见证奇迹的时刻
      完成 Master 节点上的这两步操作后,立刻回到 node4 重新敲一下:

      Bash
      curl -v -k https://10.233.0.1:443
      这一次,握手流表被刷新,反向过滤关闭,TCP 状态应该能瞬间跨过 SYN_RECV 直接进入 ESTABLISHED。测一下看看,是不是直接通了?!

      1 条回复 最后回复 回复 引用 0
      • Z
        zhanglu 最后由 编辑

        tcpdump -r /root/node4_tls.pcap -nn -v | head -n 20

        1 条回复 最后回复 回复 引用 0
        • Z
          zhanglu 最后由 编辑

          TLS handshake, Client hello (1)

          1 条回复 最后回复 回复 引用 0
          • Z
            zhanglu 最后由 编辑

            kubectl logs -f calico-node-f42jj -n kube-system
            2026-05-24 10:12:48.021 [INFO][9] startup/startup.go 376: Early log level set to info
            2026-05-24 10:12:48.022 [INFO][9] startup/startup.go 392: Using NODENAME environment for node name
            2026-05-24 10:12:48.022 [INFO][9] startup/startup.go 404: Determined node name: node4
            2026-05-24 10:12:48.025 [INFO][9] startup/startup.go 436: Checking datastore connection
            2026-05-24 10:12:58.027 [INFO][9] startup/startup.go 451: Hit error connecting to datastore - retry error=Get "https://10.233.0.1:443/api/v1/nodes/foo": net/http: TLS handshake timeout

            1 条回复 最后回复 回复 引用 0
            • Z
              zhanglu 最后由 编辑

              1. 报错核心信息
                报错日志: Hit error connecting to datastore - retry error=Get "https://10.233.0.1:443/api/v1/namespaces/foo": net/http: TLS handshake timeout

              含义: Calico 正在尝试连接集群的 API Server 内网服务 IP(10.233.0.1:443),但在进行 TLS 握手(Handshake) 时超时了。

              Ping 测试结果: 您通过 ping 10.233.0.1 发现网络是通的,且延迟极低(~0.05ms)。这说明 三层网络(IP 路由)是通的,但四层(TCP)或七层(TLS/HTTP)存在阻断或异常。

              1. 可能的原因及排查步骤
                请按照以下顺序逐步排查:

              排查一:测试 TCP 443 端口是否真正可用
              ping 使用的是 ICMP 协议,即便 ping 得通,TCP 端口也可能被防火墙拦截或没有服务监听。
              在报错的节点上执行以下命令,检查 443 端口是否响应:

              Bash
              curl -k -v https://10.233.0.1:443

              或者使用 nc/telnet

              nc -zv 10.233.0.1 443
              如果连接超时(Timeout)或被拒绝(Refused): 说明 443 端口在网络层或安全策略上被封锁了。请检查系统防火墙(如 firewalld、ufw 或 iptables 规则)。

              排查二:检查 Kubernetes API Server 的状态
              10.233.0.1 通常是 kube-apiserver 的 Service VIP。如果 API Server 挂了、过载或者响应极慢,就会导致 TLS 握手超时。
              在 Master 节点上查看 API Server 的运行状态和日志:

              Bash
              kubectl get pods -n kube-system | grep apiserver

              查看 apiserver 日志是否有报错或过载

              kubectl logs -n kube-system deploy/kube-apiserver # 如果是 deployment

              或者如果是静态 Pod:

              kubectl logs -n kube-system kube-apiserver-node1
              排查三:MTU(最大传输单元)不一致问题(常见于 Calico 环境)
              TLS 握手期间会传输很大的证书文件。如果节点网卡的 MTU 差异过大,导致大包被丢弃,就会出现“能 ping 通(小包),但 TLS 握手超时(大包)”的现象。

              在宿主机上查看网卡 MTU(如 eth0 或 bond0):

              Bash
              ip link show
              检查 Kubespray 配置文件中 Calico 的 MTU 设置(通常在 roles/network_plugin/calico/defaults/main.yml 中),确保 Calico 的 MTU 比物理网卡小至少 20 字节(如果是 IPIP 模式)或 50 字节(如果是 VXLAN 模式)。

              排查四:检查系统时间同步
              TLS 证书验证对时间非常敏感。如果当前节点(node4)与 Master 节点的时间不一致,可能会导致证书校验环节卡住或失败。

              Bash
              date

              确保所有节点都启用了时钟同步(如 chronyd 或 ntpd)

              systemctl status chronyd

              1 条回复 最后回复 回复 引用 0
              • Z
                zhanglu 最后由 编辑

                ip link set dev eno51 mtu 1500
                ip link set dev eno52 mtu 1500

                1 条回复 最后回复 回复 引用 0
                • Z
                  zhanglu 最后由 编辑

                  mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/ /cephfs_data -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==

                  1 条回复 最后回复 回复 引用 0
                  • Z
                    zhanglu 最后由 编辑

                    mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/cephfs_data/genostack_v3/genostack_scriptCode /cephfs_data/genostack_v3/genostack_scriptCode -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==

                    mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/cephfs_data/genostack_v3/genostack_cromwell/cromwell-executions /cephfs_data/genostack_v3/genostack_cromwell/cromwell-executions -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==
                    mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/cephfs_data/genostack_v3/genostack_php/public_file_data /cephfs_data/genostack_v3/genostack_php/public_file_data -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==
                    mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/cephfs_data/genostack_v3/genostack_php/project_data /cephfs_data/genostack_v3/genostack_php/project_data -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==

                    1 条回复 最后回复 回复 引用 0
                    • Z
                      zhanglu 最后由 编辑

                      mkdir -p /cephfs_data/genostack_v3/genostack_scriptCode
                      mkdir -p /cephfs_data/genostack_v3/genostack_cromwell/cromwell-executions
                      mkdir -p /cephfs_data/genostack_v3/genostack_php/public_file_data/
                      mkdir -p /cephfs_data/genostack_v3/genostack_php/project_data

                      1 条回复 最后回复 回复 引用 0
                      • Z
                        zhanglu 最后由 编辑

                        mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/genostack_v3/genostack_scriptCode /cephfs_data/genostack_v3/genostack_scriptCode -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==
                        mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/genostack_v3/genostack_cromwell/cromwell-executions /cephfs_data/genostack_v3/genostack_cromwell/cromwell-executions -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==
                        mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/genostack_v3/genostack_php/public_file_data /cephfs_data/genostack_v3/genostack_php/public_file_data -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==
                        mount -t ceph 10.233.29.234:6789,10.233.18.227:6789,10.233.40.1:6789:/genostack_v3/genostack_php/project_data /cephfs_data/genostack_v3/genostack_php/project_data -o name=admin,secret=AQA4NLVjXO2ICBAA8p93aHTAM5M+0yPL3lPGaQ==

                        umount /cephfs_data/genostack_v3/genostack_scriptCode
                        umount /cephfs_data/genostack_v3/genostack_cromwell/cromwell-executions
                        umount /cephfs_data/genostack_v3/genostack_php/public_file_data/
                        umount /cephfs_data/genostack_v3/genostack_php/project_data

                        1 条回复 最后回复 回复 引用 0
                        • First post
                          Last post
                        Powered by 暗能星系