0

我们在 AWS 区域内的 EKS 集群中进行了跨 AZ 部署,其中每个 AZ 都是独立的,这意味着组件不会与不在同一 AZ 中的其他组件通信。

我们使用 Contour 作为我们的入口,并有不同的守护程序集,每个 AZ 一个。因此,我们还为每个守护程序集定义了不同的服务。

将服务部署到 EKS 时,会创建两个不同的 NLB。

我们希望只有一个 NLB 将在服务之间共享。

问题是:它可以实现吗?如果可以,那么如何实现?

4

1 回答 1

0

是的,您应该能够通过Service.

DaemonSet您使用的每一个中,您都在 Pod- 中为 pod 设置了标签template

例如

template:
  metadata:
    labels:
      app: contour
      az: az-1

template:
  metadata:
    labels:
      app: contour
      az: az-2

现在,在您的负载均衡器服务中,您需要使用 与两个 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
于 2020-09-26T21:09:02.787 回答