如何解决如何在两个EKS服务之间共享AWS NLB?
我们在AWS区域内的EKS集群中进行了跨AZ部署,每个AZ都是独立的,这意味着组件不会与不在同一AZ中的其他组件通信。
我们将Contour用作入口,并具有不同的守护程序集,每个AZ一组。因此,我们还为每个守护程序集定义了不同的服务。
将服务部署到EKS时,将创建两个不同的NLB。
我们只希望在服务之间共享一个NLB。
问题是:它可以实现吗?如果可以,那么如何实现?
解决方法
是的,您应该可以通过在Service
中使用适当的选择器来做到这一点。
在您使用的每个DaemonSet
中,您已经在Pod-template
中为Pod设置了 label 。
例如
template:
metadata:
labels:
app: contour
az: az-1
和
template:
metadata:
labels:
app: contour
az: az-2
现在,在您的Loadbalancer服务中,您需要使用与两个DaemonSet上的Pod相匹配的选择器,例如app: contour
示例服务
apiVersion: v1
kind: Service
metadata:
name: my-service
annotation:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
selector:
app: contour # this needs to match the Pods in all your DaemonSets
ports:
- protocol: TCP
port: 80
type: LoadBalancer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。