我在我的 k8s 集群上启动了 OpenVPN,现在客户端可以直接连接到 ClusterIP 服务,但我需要对其进行伪装,因为 pod(OpenVPN pod 除外)不知道到客户端的路由。
是否可以向 Kubernetes pod 添加自定义路由并将特定 IP 范围的流量引导至 OpenVPN 服务 - ClusterIP?
答案1
由于您已经OpenVPN
使用服务将 Node 连接到 Kubernetes 集群ClusterIP
,这些服务由kube-proxy,建议通过 路由网络数据包iptables
。现在是时候配置通过Nodekube-proxy
将所有请求传输到内部:CNI network
OpenVPN
kube-proxy — kubeconfig=./kube-config/config.yaml — bind-address=xx.xx.xx.xx — cluster-cidr=yy.yy.yy.yy/cc — proxy-mode=iptables — masquerade-all
xx.xx.xx.xx - 您的 OpenVPN 节点 IP 地址
yy.yy.yy.0/cc - 集群 CIDR
确保OpenVPN
Pod 已配置为连接 Kubernetes 网络:
push “route yy.yy.0.0 255.255.0.0”
要创建从 Node 服务到网关的路由,请考虑使用本文中介绍的OpenVPN
站点到站点路由OpenVPN
文章。