Kubernetes 有没有办法防止EC2负载平衡器使用EKS节点组(EC2自动校准组)?
我使用Kubernetes 有没有办法防止EC2负载平衡器使用EKS节点组(EC2自动校准组)?,kubernetes,kubernetes-ingress,amazon-elb,amazon-eks,Kubernetes,Kubernetes Ingress,Amazon Elb,Amazon Eks,我使用eksctl创建了一个EKS集群,其中包含两个非托管节点组ingress nginx和群集autoscaler已部署并工作ingress nginxcontroller在部署时创建了一个经典的负载平衡器 当任一节点组向上扩展时,其实例将添加到LB中。(问题:采取此操作的是什么?它不是ASG本身,因此我假设它是ingress nginx执行此操作)。此外,我看到所有实例(来自两个ASG)对LoadBalancer上的TCP healthcheck响应为“健康” 问题是:我只需要将一个节点组列
eksctl
创建了一个EKS集群,其中包含两个非托管节点组ingress nginx
和群集autoscaler
已部署并工作ingress nginx
controller在部署时创建了一个经典的负载平衡器
当任一节点组向上扩展时,其实例将添加到LB中。(问题:采取此操作的是什么?它不是ASG本身,因此我假设它是ingress nginx
执行此操作)。此外,我看到所有实例(来自两个ASG)对LoadBalancer上的TCP healthcheck响应为“健康”
问题是:我只需要将一个节点组列为符合负载平衡条件的白名单。另一个ASG(以及任何未来的ASG,默认情况下)是批处理工作程序,不承载任何internet服务,并且不会在其上调度任何web服务吊舱
这是否可能在EKS中实现,以及如何实现?您是对的,这是Kubernetes
LoadBalancer
服务(如Nginx Ingress)的默认行为LoadBalancer
在引擎盖下使用NodePort
服务,该服务在所有群集节点上公开,而不考虑它们所属的EKS节点组
您应该做的是将externalTrafficPolicy:Local
添加到您的Nginx入口LoadBalancer
中,就像这样(这只是一个示例):
这样做将导致AWS负载平衡器只针对那些实际运行Nginx入口吊舱的节点。之后,您可能希望使用Nginx入口节点选择器
仅在所需的EKS节点组上运行
apiVersion: v1
kind: Service
metadata:
name: example-service
spec:
selector:
app: example
ports:
- port: 8765
targetPort: 9376
externalTrafficPolicy: Local
type: LoadBalancer