暂时用过的方案有 ( 1 ) NodePort:需要管理外部的端口,服务一多,配置管理麻烦
请不要在回答技术问题时复制粘贴 AI 生成的内容
This topic created in 2644 days ago, the information mentioned may be changed or developed.
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, 201 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 吧 |
