簡體   English   中英

如何使用基於目標組“IP”的 [AWS] 設置 Kubernetes NLB 負載均衡器?

[英]How to setup Kubernetes NLB Load Balancer with target group "IP" based [AWS]?

目前,我正在使用網絡負載均衡器公開 k8s 服務。 它創建了一個網絡負載均衡器並將目標組設置為基於實例,一切正常。 正如我們所知,節點中的端口始終在 30000 - 32767 的范圍內。

不同的目標群體存在差異。 基於實例的目標組用於保留客戶端 IP,其中基於 IP 的目標組不保留客戶端 IP。

現在安全組有問題,我想限制節點端口只能由負載均衡器的CIDR訪問。 由於它是基於實例的目標組,因此入站 IP 始終是客戶端 IP。 因此很難限制僅對某些 IP 的訪問。

所以我的計划是將目標組切換到基於“IP”的組,這樣我就可以限制對負載均衡器的 CIDR 的訪問。

有沒有其他方法可以使用基於 IP 的目標類型創建 NLB 負載平衡器? 你能幫我一些建議嗎?

apiVersion: v1
kind: Service
metadata:
  name: nginx-router
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
    service.beta.kubernetes.io/do-loadbalancer-healthcheck-path: "/healthz"
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
    service.beta.kubernetes.io/aws-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: [tes]

    # service.beta.kubernetes.io/healthcheck-path: /healthz
spec:
  selector:
    app: nginx-router
  externalTrafficPolicy: Local
  ports:
    - port: 80
      targetPort: 80
      protocol : TCP
      name : http
    - port : 443
      targetPort: 443
      protocol : TCP
      name : https

  type: LoadBalancer

我問自己是否真的需要通過網絡負載均衡器來解決這個問題,或者 Kubernetes 中的解決方案是否更可取。

從集群中刪除 NodePort 的最簡單方法是實際上不在 Kubernetes 中定義任何 NodePort 類型的服務。 如果某些已經存在,您可以輕松地將它們更改為類型 ClusterIP,並且應該刪除 NodePort。

由於您希望阻止對 NodePort 的任何訪問,您可以考慮使用 ResourceQuota 來阻止創建任何 NodePort 類型的服務。 通過這種方式,集群告訴用戶他的服務將無法工作,而不僅僅是阻止流量到達應用程序,並且如果您不知道負載均衡器配置的細節,很可能會導致難以理解的超時。 (參見此處參考: https : //kubernetes.io/docs/concepts/policy/resource-quotas/#object-count-quota

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM