k8s~Endpoints的使用


Endpoints是指一個服務的端點,當你的服務需要訪問外部資源時,而你又不想把外部地址配置到代碼里,這時,你可以在k8s里建立一個kind為Endpoints的服務,它可以幫助你的程序解析這個外部地址。

  • 聲明一個elasticsearch-1的服務,它映射到一個外部的地址192.168.11.13的9200端口
kind: Service
apiVersion: v1
metadata:
  name: elasticsearch-1
spec:
  clusterIP: None
---
kind: Endpoints
apiVersion: v1
metadata:
  name: elasticsearch-1
subsets:
  - addresses:
      - ip: 192.168.11.13
    ports:
      - port: 9200
  • 而如果你的外部服務也是一個k8s服務,這時也可以通過ExternalName類型也實現這種映射關系,比如在跨namespace訪問資源時,你就可以通過ExternalName來實現一種類似快捷方式的功能。

例如,以下 Service 定義將 prod 名稱空間中的 my-service 服務映射到 my.database.example.com

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: prod
spec:
  type: ExternalName
  externalName: my.database.example.com

說明: ExternalName 接受 IPv4 地址字符串,但作為包含數字的 DNS 名稱,而不是 IP 地址。 類似於 IPv4 地址的外部名稱不能由 CoreDNS 或 ingress-nginx 解析,因為外部名稱旨在指定規范的 DNS 名稱。 要對 IP 地址進行硬編碼,請考慮使用 headless Services


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM