【发布时间】:2021-07-15 16:30:32
【问题描述】:
我发现无法切换流量的 EKS 服务节点端口的问题。
我在命名空间 qa 中的 EKS 集群 qa-api-cluster 上为游戏服务部署了两个 pod。
此游戏服务使用标签应用程序和版本中的选择器将流量切换到不同的 pod。
例如:
Pod game-service selector
qa-game-blue-xxxx app=game,version=qa-v0.0.132
qa-game-green-xxxxx app=game,version=qa-v0.0.133
// game-service in svc
apiVersion: v1
kind: Service
selector:
app: game
version: qa-v0.0.133
type: NodePort // Cannot switch traffic, while LoadBalancer is fine
但是,如果你在game-service中更新了NodePort类型的版本来切换流量,这将需要30多分钟甚至更长的时间才能生效。
最糟糕的是,qa-game-green 和 qa-game-blue 会随机接收流量。
当 game-service 类型为 LoadBalancer 时,立即生效,只有一个 pod 可以接收流量。
为什么 NodePort 类型的服务(游戏服务)不能切换流量,而 LoadBalancer 类型可以?
这是 Kubernetes 的规范还是 AWS 的特定设计?
我应该将其设置为负载均衡器还是可以针对 NodePort 调整任何设置?
【问题讨论】:
标签: kubernetes amazon-eks