【发布时间】:2021-08-25 06:35:53
【问题描述】:
在数据迁移之后,我们需要在生产 Kubernetes 集群上测试一个 Pod,然后再将其公开给我们的用户。我们想做的是将流量从我们的内部 IP 地址路由到正确的 Pod,并将所有其他流量路由到维护 Pod。有没有办法实现这一点,或者我们需要在集群上简单地公开一个 ip 地址以便我们可以直接访问 pod?
【问题讨论】:
标签: kubernetes
在数据迁移之后,我们需要在生产 Kubernetes 集群上测试一个 Pod,然后再将其公开给我们的用户。我们想做的是将流量从我们的内部 IP 地址路由到正确的 Pod,并将所有其他流量路由到维护 Pod。有没有办法实现这一点,或者我们需要在集群上简单地公开一个 ip 地址以便我们可以直接访问 pod?
【问题讨论】:
标签: kubernetes
您使用的是什么入口控制器?
一般来说,入口控制器倾向于支持基于标头的路由,而不是基于源 ip 的路由。
说,ingress-nginx 支持开箱即用的基于标头的金丝雀部署。
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#canary.
这里有很好的例子。
https://medium.com/@domi.stoehr/canary-deployments-on-kubernetes-without-service-mesh-425b7e4cc862
请注意,ingress-nginx canary 实现实际上要求您的服务位于不同的命名空间中。
您可以尝试使用use-forwarded-headers 配置您的ingress-nginx,并尝试使用X-Forwarded-For 标头进行路由。
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-forwarded-headers
【讨论】:
nginx 入口控制器,但如果不检查,我无法确定。我将不得不尝试其中一些建议,看看它们是否适用于我们的用例。