簡體   English   中英

創建通過多個IP地址引用外部服務的Kubernetes服務

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

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