k3s nodePort 暴露服务,仅 pod 运行节点能通过端口访问,集群内部访问正常,别的访问不了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cnbattle
V2EX    Kubernetes

k3s nodePort 暴露服务,仅 pod 运行节点能通过端口访问,集群内部访问正常,别的访问不了

  •  
  •   cnbattle 2021-09-06 16:01:08 +08:00 2634 次点击
    这是一个创建于 1561 天前的主题,其中的信息可能已经有所发展或是发生改变。

    找相关文章,所有节点执行以下命令,依然不行,请大佬救命

    K3S : k3s-v1.21.4

    Linux: Debian 10

    root@node2:~# iptables -P FORWARD ACCEPT root@node2:~# iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT 
    第 1 条附言    2021-09-06 20:03:49 +08:00
    虚拟机网络好像是有问题的,

    k3s 自带的 traefik LoadBalancer,监听了所有节点的 80 443 端口,
    所有节点都有其 svclb pod 和其中一个 traefik pod,
    但只有运行 traefik pod 的节点对 80 443 端口访问正常返回,
    其余均返回响应时间过长
    12 条回复    2021-09-16 17:00:47 +08:00
    defunct9
        1
    defunct9  
       2021-09-06 16:13:17 +08:00
    开 ssh,让我上去看看
    miaowing
        2
    miaowing  
       2021-09-06 16:21:27 +08:00
    这个不是正常的嘛
    cnbattle
        3
    cnbattle  
    OP
       2021-09-06 16:24:10 +08:00
    @defunct9 本地的虚拟机 0.0
    @miaowing nodePort 不是暴露到所有节点的吗? 我看一些文章说的的会负载带所有节点
    miaowing
        4
    miaowing  
       2021-09-06 16:31:22 +08:00   1
    @cnbattle 据我所知好像不是,等其他大佬看看
    ss098
        5
    ss098  
       2021-09-06 16:45:31 +08:00
    检查一下云服务厂商的防火墙。

    或者试一下 LoadBalancer ? k3s 的 LoadBalancer 是开箱即用的。
    xx6412223
        6
    xx6412223  
       2021-09-06 16:51:08 +08:00
    service yaml 看下
        7
    cnbattle  
    OP
       2021-09-06 17:11:35 +08:00
    @xx6412223 部署的 kubernetes-dashboard 加了 `type: NodePort` 和 `nodePort: 30001`

    ```
    kind: Service
    apiVersion: v1
    metadata:
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
    uid: bfcf6cae-4834-4447-8799-ed9e38b6593c
    resourceVersion: '5989'
    creationTimestamp: '2021-09-06T05:07:50Z'
    labels:
    k8s-app: kubernetes-dashboard
    annotations:
    kubectl.kubernetes.io/last-applied-configuration: >
    {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kubernetes-dashboard"},"spec":{"ports":[{"nodePort":30001,"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"},"type":"NodePort"}}
    managedFields:
    - manager: kubectl-client-side-apply
    operation: Update
    apiVersion: v1
    time: '2021-09-06T05:07:50Z'
    fieldsType: FieldsV1
    fieldsV1:
    f:metadata:
    f:annotations:
    .: {}
    f:kubectl.kubernetes.io/last-applied-configuration: {}
    f:labels:
    .: {}
    f:k8s-app: {}
    f:spec:
    f:externalTrafficPolicy: {}
    f:ports:
    .: {}
    k:{"port":443,"protocol":"TCP"}:
    .: {}
    f:nodePort: {}
    f:port: {}
    f:protocol: {}
    f:targetPort: {}
    f:selector:
    .: {}
    f:k8s-app: {}
    f:sessionAffinity: {}
    f:type: {}
    spec:
    ports:
    - protocol: TCP
    port: 443
    targetPort: 8443
    nodePort: 30001
    selector:
    k8s-app: kubernetes-dashboard
    clusterIP: 10.43.16.174
    clusterIPs:
    - 10.43.16.174
    type: NodePort
    sessionAffinity: None
    externalTrafficPolicy: Cluster
    ipFamilies:
    - IPv4
    ipFamilyPolicy: SingleStack
    status:
    loadBalancer: {}

    ```
    xx6412223
        8
    xx6412223  
       2021-09-06 17:32:40 +08:00
    @cnbattle svc 没问题,
    看看 kubeproxy 吧,不行就抓包了
    cnbattle
        9
    cnbattle  
    OP
       2021-09-06 17:48:01 +08:00
    @xx6412223 嗯 谢谢
    miaowing
        10
    miaowing  
       2021-09-06 18:12:52 +08:00
    @cnbattle 再配一个 ingress,所有节点就都能访问了,不用 nodePort
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: kubernetes-dashboard-https-ingress
    namespace: kubernetes-dashboard
    annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
    traefik.ingress.kubernetes.io/router.tls: "true"
    spec:
    tls:
    - secretName: kubernetes-dashboard-certs
    rules:
    - host: dashboard.example.com
    http:
    paths:
    - path: /
    backend:
    serviceName: kubernetes-dashboard
    servicePort: 443
    cnbattle
        11
    cnbattle  
    OP
       2021-09-06 19:55:30 +08:00
    @miaowing 谢谢 我的虚拟机网络好像是有问题的,

    k3s 自带的 traefik LoadBalancer,监听了所有节点的 80 443 端口,
    所有节点都有其 svclb pod 和其中一个 traefik pod,
    但只有运行 traefik pod 的节点对 80 443 端口访问正常返回,
    其余均返回响应时间过长
    RRyo
        12
    RRyo  
       2021-09-16 17:00:47 +08:00
    描述有点像 svc 的 externalTrafficPolicy 被配置成了 Local
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     921 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:28 PVG 06:28 LAX 14:28 JFK 17:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86