V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ff1m80
V2EX  ›  Kubernetes

有偿求解! K8S 环境下外部无法访问服务的问题

  •  
  •   ff1m80 · 2023-01-11 12:10:10 +08:00 · 2802 次点击
    这是一个创建于 712 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有个 K8S 下的 NACOS 服务在 8848 端口下,在宿主机和 master 节点,均可以通过 容器 IP:8848 的方式访问到,port 和 targetPort 配置为 8848 ,nodePort 配置为 30066 。iptables 也有 30066 到 8848 的端口转发。但是,无法在外网通过 30066 端口访问到 nacos 页面。

    请熟悉 K8S 的大佬联系我,有偿!。

    +V: Zm9yMW04MA==

    第 1 条附言  ·  2023-01-13 17:25:15 +08:00

    问题解决辣。感谢论坛老哥,除这里外,还有6个老哥加我微信,给出了排查思路。

    有个老哥远程帮我排查解决的。集群内部访问服务不通,老哥尝试重启 coredns 报错,通过观察日志确认是证书过期了。我之前发现证书过期了,但是我更新了证书后,没有正确更新配置,重启服务(菜)。老哥帮我解决了这个问题,顺便解决了集群的其他几个问题,给出了一些优化建议。

    老哥也没收钱,我今天正准备寄点特产过去。

    17 条回复    2023-01-13 11:24:19 +08:00
    retanoj
        1
    retanoj  
       2023-01-11 12:11:48 +08:00
    k8s node 是公有云的主机?
    ff1m80
        2
    ff1m80  
    OP
       2023-01-11 12:13:24 +08:00
    @retanoj 电信云的主机,深信服管理。我想 VPN 登录以后可以访问到 nacos 的页面。kuboard 访问正常,其他一些服务也正常,就是 nacos 访问不到。
    EyebrowsWhite
        3
    EyebrowsWhite  
       2023-01-11 12:14:13 +08:00 via iPhone
    是不是 service 没有配置 externalips 或者 hostname
    zhoudaiyu
        4
    zhoudaiyu  
       2023-01-11 12:15:05 +08:00 via iPhone
    抓包吧还是
    FabricPath
        5
    FabricPath  
       2023-01-11 12:15:58 +08:00
    先看是 reset 还是 timeout ,timeout 大概率防火墙、iptables 没开; reset 只能细看了
    retanoj
        6
    retanoj  
       2023-01-11 12:22:09 +08:00
    建议给一下具体 IP 地址
    比如容器 IP 是多少,宿主机 IP 多少,连 VPN 后获得的 IP 是多少
    ff1m80
        7
    ff1m80  
    OP
       2023-01-11 12:51:08 +08:00
    @retanoj @FabricPath 容器 IP 是 10.100.33.254 ,宿主机是 192.168.0.2 ,vpn 后 IP 是 172.16.114.22 。通过 kuboard 代理也无法访问。
    xzysaber
        8
    xzysaber  
       2023-01-11 13:34:18 +08:00
    在集群节点内访问 nodePort 30066 ,是否成功?
    节点的安全组有没有放开 30066 端口?
    dadaslele
        9
    dadaslele  
       2023-01-11 13:41:28 +08:00
    内网访节点访问 master 端口 30066 是否可以?如果不行就是 nodePort 设置的问题
    VPN 到 master 节点网络是否能通?路由策略是否开启?
    676529483
        10
    676529483  
       2023-01-11 13:45:54 +08:00
    我提一个,电信云的安全组开了吗?
    ff1m80
        11
    ff1m80  
    OP
       2023-01-11 13:45:57 +08:00
    @xzysaber 集群内访问也不成功。开放了 30066 端口, kube-proxy 监听
    xzysaber
        12
    xzysaber  
       2023-01-11 14:09:58 +08:00
    @ff1m80
    iptables -tnat -nvL |grep 30066
    你可以在集群内访问 30066 时看下对应的规则的第一列匹配的包数量有没有增加。
    server
        13
    server  
       2023-01-11 14:38:06 +08:00
    mtu
    bingfengfeifei
        14
    bingfengfeifei  
       2023-01-11 14:39:21 +08:00
    抓包排查啊,先确定哪个环节丢的包
    1 、网卡抓包,看看进来没有
    2 、容器接口抓包,看看 iptables DNAT 规则生效没有
    3 、同 2 ,查看服务有没有回包


    1 出问题排查云的防火墙
    2 出问题,依次排查 iptables 的规则 命中等等,看看有没有干扰规则提前命中了,用 iptables -t nat -nvL 一点点排查命中数。
    3 如果容器有回包,但是出不去,排查路由可能是回包路由出不去,是不是全局路由网段冲突,172.16 这个和 Docker 默认的网段已经很相近了。
    vivisidea
        15
    vivisidea  
       2023-01-11 22:31:30 +08:00
    从描述看其实不能确定 service 是正确配置的

    kubectl get endpoints <service-name> 看下有没有预期的后端?
    另外也可以试下在节点上 curl <service-ip>:<service-port> 看下服务是否正常
    chris89
        16
    chris89  
       2023-01-12 12:22:25 +08:00 via Android
    从别的 node 节点访问 30066 端口正常吗?
    retanoj
        17
    retanoj  
       2023-01-13 11:24:19 +08:00
    好奇楼主排查进度如何
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:09 · PVG 06:09 · LAX 14:09 · JFK 17:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.