[英]Creating Kubernetes service that reference external service by multiple ip addresses
Kubernetes中是否有一種方法可以為應該返回多個IP地址的外部服務創建服務? 目前,我正在通過在公共DNS提供程序(route53)中創建A記錄,然后在Kubernetes中創建服務來解決此問題:
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
labels:
app: rabbitmq
spec:
type: ExternalName
externalName: rabbitmq.mydomainhere.dev
有沒有一種方法可以在Kubernetes中本地創建服務,該服務返回在Kubernetes集群內部不管理的固定IP地址集,而無需創建公共DNS記錄和使用externalName
?
您可以創建沒有選擇器的無頭服務,並將clusterIP設置為None,然后手動創建端點以在端點中設置所有IP。 您可以看以下示例。
kind: Service
apiVersion: v1
metadata:
name: my-es
spec:
clusterIP: None
---
kind: Endpoints
apiVersion: v1
metadata:
name: my-es
subsets:
- addresses:
- ip: 172.22.111.250
- ip: 172.22.149.230
ports:
- port: 9200
一個Pod的nslookup輸出
root@curl-66bdcf564-8m6h7:/ ]$ nslookup my-es
Server: 169.254.25.10
Address 1: 169.254.25.10
Name: my-es
Address 1: 172.22.111.250 172-22-111-250.my-es.default.svc.cluster.local
Address 2: 172.22.149.230 172-22-149-230.my-es.default.svc.cluster.local
ExternalIP服務使用路由到群集節點的預定義外部IP地址池中的IP地址。 這些外部IP地址不受Kubernetes管理; 它們是群集管理員的責任。
您可以創建沒有選擇器的無頭服務,並將clusterIP設置為None,然后手動創建端點以在端點中設置所有IP。 您可以看以下示例。
kind: Service
apiVersion: v1
metadata:
name: my-es
spec:
clusterIP: None
---
kind: Endpoints
apiVersion: v1
metadata:
name: my-es
subsets:
- addresses:
- ip: 172.22.111.250
- ip: 172.22.149.230
ports:
- port: 9200
一個Pod的nslookup輸出
root@curl-66bdcf564-8m6h7:/ ]$ nslookup my-es
Server: 169.254.25.10
Address 1: 169.254.25.10
Name: my-es
Address 1: 172.22.111.250 172-22-111-250.my-es.default.svc.cluster.local
Address 2: 172.22.149.230 172-22-149-230.my-es.default.svc.cluster.local
文檔: 服務選擇器 。 有用的文章: Exposure-pods 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.