[英]AWS - k8s - ingress LoadBalancer
我正在嘗試配置以下設置。
User -> https://xxx.abc.com -> VPC-IP(AWS LB):443 -> POD:8080
提及此問題AWS VPC-K8S-負載平衡
如果我設置了入口服務; 是Kubernetes創建的LoadBalancer嗎?
我目前僅通過AWS Security Group限制對特定IP的VPC訪問。
是否可以使用現有的LoadBalancer並將其分配/附加到Ingress Service? 還是由K8S創建SG后,我是否必須手動將SG分配給負載均衡器?
抱歉,您的問題似乎不清楚或有點糾結=希望我沒有忘記要點。
要實現這種情況: User -> https://xxx.abc.com -> VPC-IP(AWS LB):443 -> POD:8080
您需要按照通常的設置來配置入口和入口控制器,只需在ingress.yaml中添加主機(您的網址)即可。 在不購買域名並將其連接到AWS之前,您將無法訪問它。 但是您可以通過以下方式檢查設置是否有效:
curl -v -H "HOST:host_from_config" loadbalanceraddress.com
如果我設置了入口服務; 是Kubernetes創建的LoadBalancer嗎?
是。
當服務類型設置為LoadBalancer時,Kubernetes為群集內的Pod提供與type =等效的功能,並通過使用Kubernetes Pod的條目對(Kubernetes外部)負載均衡器進行編程來擴展它。 Kubernetes服務控制器自動執行外部負載均衡器的創建,運行狀況檢查(如果需要),防火牆規則(如果需要),並檢索由雲提供程序分配的外部IP並將其填充在服務對象中。
您可以隨時隨地限制安全組策略,只需找到它所屬的SG並根據需要編輯規則,或更改負載均衡器所屬的SG並對其進行調整。
關於將現有LB與Ingress結合使用的場景-您可以嘗試將現有的LoadBalancer添加到Service配置中(沒有嘗試此操作),將正確的實例附加到LoadBalancer等。盡管我還沒有嘗試過,努力並正確配置。
status: loadBalancer: ingress: - hostname: example-address.eu-central-1.elb.amazonaws.com
另一種方法是將服務類型更改為NodePort並將其指向手動創建的LB到您的應用程序-當您需要將一對服務連接到一個ELB時可以使用此服務。 這里已經描述過了 。
只想闡述@aurelius的解決方案2:
步驟1:讓您的入口服務鍵入NodePort
,它將在集群的所有節點上獲得一個類似於Node:34567的端口。
步驟2:配置設置現有的負載均衡器以路由到這些端口作為后端。
AWS existing load-balancer => Workder-Node1:34567 => Ingress-service => xxx
=> Workder-Node2:34567 => Ingress-service => xxx
=> Workder-Node3:34567 => Ingress-service => xxx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.