[英]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.