我在GKE上有一个Kubernetes集群,该集群配置为使用CE实例作为外部NAT。但是,我只想通过外部NAT路由GKE群集中的特定容器。这可能吗,我将如何配置它?
答案 0 :(得分:0)
实际上并不是很简单的方法,但是有可能。 1)您需要确保使用VPC-Native 2)利用advanced scheduling in k8s,确保将要进行NAT的所有pod都在同一节点上 3)使用'kubeclt describe no [node_name]查找该节点的Pod CIDR。 grep PodCIDR' 4)创建一个自定义路由,该路由通过NAT从该CIDR发送所有流量
老实说,这没有被证明有效。通过处理一些Cloud NAT问题,我知道即使使用VPC本机Pod,该Pod IP有时仍会通过节点上的SNAT,因此会占用节点IP。 您可以使用节点的内部IP代替节点上的Pod CIDR,这可能会导致与主服务器的通信问题,但不一定。
最后,请记住,这不是理想的选择,因为最终可能会重新创建节点,并且IP或Pod CIDR可能会更改。