V2EX = way to explore V2EX 是一个关于分享和探索的地方
Sign Up Now For Existing Member Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
This topic created in 2624 days ago, the information mentioned may be changed or developed.
暂时用过的方案有 ( 1 ) NodePort:需要管理外部的端口,服务一多,配置管理麻烦
Supplement 1 Feb 18, 2019
我刚刚使用 [metalLB] ,完成了预期的需求啦,可是 [metalLB] 的 IP 地址池,好像只能用集群 Node 节点所在的 IP 段,而且好像只能配置一段,想问下有没有好的提供 IP 池的方案呀,感谢
1 d2D5Cc Feb 18, 2019 ingress-nginx 做负载均衡 |
2 ns2250225 OP @ZombieMisaka 这个好像也是要配置 configMap 的端口呀 |
3 d2D5Cc Feb 18, 2019 @ns2250225 #2 ingress 不会把对应 service 的端口直接暴露出去啊,只对外暴露 nginx 的端口就好了,nginx 根据域名转发请求到各个 service 中去,不太清楚你想要什么效果,每个 service 当然要对内网开放端口,不然没法正常通信,我也是新手来着,不保证说的都对 |
4 rayingecho Feb 18, 2019 keepalived MetalLB |
5 alexsunxl Feb 18, 2019 ingress 顶一个。 之前在迅雷搞 k8s 那一套的时候也是用这个,感觉资料还算多 |
6 ns2250225 OP @alexsunxl 感谢回复,请问当时你们用 ingress 是怎样管理那些 configMap 的呀,可以自动生成 configMap 吗,比如创建一个 redis 服务,ingress 自动配好 configMap,外部就能之间连接了,求指导 |
7 rayingecho Feb 18, 2019 @alexsunxl @ZombieMisaka 按我理解 ingress 是工作在七层的, nginx 代理 L4 服务并不属于 ingress 的功能, 而是 nginx-ingress 提供的一个独立特性. 用同一组 nginx 的 DaemonSet 的话会碰到端口冲突问题, 动态部署 nginx 的话 nginx pod 之间本身也需要一个 L4 的 LB 来做代理, 会绕回到 L4 代理的问题上 |
8 jerry Feb 18, 2019 via iPhone tcp 的话貌似只有 NodePort 或 LB 了,ingress 是 7 层的 |
9 ns2250225 OP @rayingecho 感谢回复,其实我现在我只是想简单地对外提供 redis 服务,可是除了用 nodeport 测试成功(老大说不能用 nodeport ),其它都连接不上 redis server,香菇= =,请问有什么好的实践吗 |
11 binux Feb 18, 2019 via Android -直接用 service provider 的 load balancer- |
12 rayingecho Feb 18, 2019 @ns2250225 跟 #11 说的一样, 最佳办法就是用 external load balancer, 私有云上我只知道 MetalLB 这个方案 服务数量不多的话用 keepalived 也可以 |
13 defunct9 Feb 18, 2019 前面放两个 harproxy,然后 nodeport 暴露出来,这么搞 |
14 zhoulouzi Feb 18, 2019 @ZombieMisaka 我没看错的话楼主是 TCP,域名转发什么鬼,ingress-nginx 暴露 TCP/UDP 端口还是需要 nodeport 把端口暴露出去. 楼主可以尝试用 hostnetwork 部署 ingress-nginx,然后写个服务管理这个 confimap 但是这个 ingress-nginx 代理长链接(比如 websocket)会出现问题,nginx 频繁被 reload 会导致链接断开.如果你们应用重连做的好可以考虑 metalLB 针对非云环境实现的负载均衡有很多前提要求,而且目前是 beta,期待吧 |
15 rayingecho Feb 18, 2019 @zhoulouzi 长连接问题学习了, 不过 nginx 用 HostNetwork 端口冲突的隐患很大啊 |
16 zhoulouzi Feb 18, 2019 @rayingecho 可以提前规划范围? 我也想不到好办法 |
17 maxmin Feb 18, 2019 #1 #3 说的在理吧, 用 service 了。 |
18 kaneg Feb 18, 2019 via iPhone 如果只是 http 协议的话,ingress 是不二选择。 如果是一般的 TCP 的话,只能用 service。 而对 service,如果 kubernetes 提供商是 cloud 的话,type 可以用 load balance,而如果是自己安装的,就只能用 nodeport 了。 用 nideport 的时候只要暴露任意一个 worker 的 IP 即可,如果 worker 不固定,就直接暴露 master 的 IP。 |
19
ifaii Feb 18, 2019 via iPhone nodeport or externalip 任选,不要 hostnetwork
20 wkzq Feb 18, 2019 via iPhone 管理 kube 资源可以试试 helm |
21 bigcat0 Feb 18, 2019 via Android Nodeport 加 LB |
22 ns2250225 OP @rayingecho 感谢您的推荐呀,我刚刚使用 [metalLB] ,完成了预期的需求啦,可是 [metalLB] 的 IP 地址池,好像只能用集群 Node 节点所在的 IP 段,而且好像只能配置一段,想问下有没有好的提供 IP 池的方案呀,感谢 |
23 Oneneuuu Feb 18, 2019 最近也在考虑 https://github.com/nginxinc/kubernetes-ingress/blob/master/examples/tcp-udp/README.md https://github.com/kubernetes/ingress-nginx 想用 ingress 实现 L4&L7 的功能.... 好像用 configmap 维护配置文件很麻烦? |
24 HuHui Feb 18, 2019 via Android @ns2250225 是因为 redis 消费端取 redis 的节点这个过程中拿到的是 redis 所在 node 节点的 ip 导,而这个 ip 是 k8s 内部 ip,所以不能访问,可以从这个问题着手。 |
25 rayingecho Feb 19, 2019 via iPad @ns2250225 L2 模式的话任意挑一个内网的 ip 段就可以 |
26 ns2250225 OP @rayingecho 可以配置多个内网 IP 的吗 |
27 1daydayde Feb 19, 2019 楼上说用 nginx-ingress 的有用过长链接吗? |
28 udumbara Feb 19, 2019 via Android 没人提 ambassador ? |
30 Tinet Feb 19, 2019 @0312birdzhang nginx-ingress 的 tcp stream 也可以加上 keepalived 吧 |
