![](/img/trans.png)
[英]Unable to access workload at the IP address of the Kubernetes Service
[英]Access external service from Kubernetes with consistent IP address
我在 AWS Elastic Kube.netes Service (EKS) 集群中設置了一項服務和一些 pod,該集群訪問集群外部托管的 RabbitMQ 消息服務和 PostgreSQL 數據庫。 目前,我已經通過 AWS 安全組從所有 IP (0.0.0.0/0) 訪問這些服務,因為 kube.netes 在創建每個節點時為其分配了一個 IP。
理想情況下,我想通過一個一致的“外部 Kube.netes IP”將流量從 Kube.netes 路由到這些服務,這樣我就可以將它添加到每個外部服務安全組中。 目前,從谷歌搜索我還沒有找到這樣做的方法,有可能嗎?
對於 RabbitMQ,我設置了當前的服務和端點,但我相信這僅用於通過 Kube.netes 集群路由流量,與我的集群的外部面向無關?
kind: Service
metadata:
name: rabbitmq-service
spec:
selector:
app: job-wq-1
ports:
- port: 15672
targetPort: 15672
name: management-port
- port: 5672
targetPort: 5672
name: data-port
type: LoadBalancer
---
kind: Endpoints
apiVersion: v1
metadata:
name: rabbitmq
subsets:
- addresses:
- ip: 'rabbitmq.server.public.ip'
ports:
- port: 15672
name: 'management-port'
- port: 5672
name: 'data-port'
您的意思是傳出流量的 IP 嗎?
如果您嘗試使用 static 外部 IP 創建 LoadBalancer 服務,您可以使用loadBalancerIP
字段來使用保留的 IP,例如 AWS Elastic IP。
https://kube.netes.io/docs/concepts/services.networking/service/#type-loadbalancer
是的,這是可能的,但這並不簡單。
您需要做的是通過 VPC 網關、NAT 網關或其他一些用作 NAT 的 EC2 實例路由來自集群的出站流量。 然后可以為該實例提供 static IP,然后您可以在目的地將其列入白名單(因此無需使用 0.0.0.0/0)
我們在 GKE 中使用類似的設置來允許我們啟動 GKE 集群,在其中運行工作負載,但有一個已知的固定 IP 遠程服務器將識別並允許連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.