k8s 如何通过制定节点转发网络请求?

2023-08-01 11:17:46 +08:00
 kuibobo

k8s 有 12 个节点

现在有个需求,是希望节点请求通过指定的节点(比如通过 node2, 3) 出去,而不是直接通过宿主机访问网络.

不知道 k8s 有什么组建可以做这个事情

1586 次点击
所在节点    Kubernetes
13 条回复
idblife
2023-08-01 11:52:52 +08:00
https://tailscale.com/kb/1185/kubernetes/

不负责任推荐看看,我自己没细看。。。
Evovil
2023-08-01 13:01:38 +08:00
直接访问 node2 3 ,其他的 node 不对外暴露不就行了吗? svc 会自己路由到其他 node 。
Evovil
2023-08-01 13:04:17 +08:00
@Evovil 看错题目了 ,你说的是 k8s-egress ?
rrfeng
2023-08-01 13:25:16 +08:00
三层方案:路由+nat
四层方案:正向代理
nulIptr
2023-08-01 14:04:07 +08:00
感觉你这个需求跟 K8S 没关系。我猜是某些 pod 需要特殊的网络环境,如果是这样的话一般是 pod 里面搞一下 sidecar 代理就行了,即使是 node 全局代理的话也要配 pod 的亲和性,没必要
seers
2023-08-01 14:09:19 +08:00
k8s network police
AmaQuinton
2023-08-01 14:31:36 +08:00
1 ,使用 nodeName 将 pod 设置在指定节点;
2 ,在节点上使用 label 标记后,使用 nodeSelector 访问
参考: https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/assign-pod-node/
mooyo
2023-08-01 14:55:12 +08:00
istio egress?
chenPiMeiHaoChi
2023-08-01 15:05:33 +08:00
出方向?把 pod 用标签绑定到 node 就行了吧?
joesonw
2023-08-01 16:15:10 +08:00
你这是 SNAT ,在 node 上用 iptables 做转发。或者看你用的什么网络组件,calico 好像有这个功能。
wbuntu
2023-08-02 02:16:43 +08:00
这个需要 CNI 插件支持才行,需要在集群内再做一次路由转发,可以参考下 kueb-ovn 和 openshift 有类似的方案

在线文档:
https://kubeovn.github.io/docs/v1.11.x/guide/eip-snat/
https://docs.openshift.com/container-platform/4.12/networking/openshift_sdn/assigning-egress-ips.html
ccde8259
2023-08-02 10:25:49 +08:00
istio egress
sujin190
2023-08-03 13:52:23 +08:00
如果只是某中 pod 简单用下,倒是弄个 pod 配置里添加下 hosts 把需要出口的域名指向需要出口的地址,然后在需要出口的地址挂个端口转发程序 pod 就好了,如果有出口 node 端口占用的问题,那么还可以把 hosts 指向本机然后在当前 pod 再配置个容器再端口转发一次,这样出口 node 节点就可以使用其它端口了

当然如果大部分 pod 和大部分流量都需要转发那还是 route+nat 或是 istio egress 比较好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX