簡體   English   中英

Kubernetes暴露多個Pod

[英]Kubernetes expose multiple pods

我有一個Kubernetes集群,其中包含來自不同圖像的多個Pod。

我希望能夠公開每個吊艙,以便能夠使用外部DNS記錄(在群集外部)訪問它們。

例如:假設我有3個Pod(pod1,pod2,pod3),我希望能夠以這種方式從集群外部訪問它們:

http://pod1.mydomain.com

http://pod2.mydomain.com

http://pod3.mydomain.com

有辦法嗎?

謝謝

在AWS中,您可以使用ELB輕松公開POD-Kubernetes可以自動為您創建合適的ELB。 這意味着Kubernetes會生成ELB,然后使用節點端口將其附加到適當的服務。 放置好ELB后,您可以使用GarMan提及的external-dns插件,該插件可以使用AWS Route53集成將DNS記錄附加到那些ELB。 因此,您需要:

  1. 為Kubernetes添加適當的權限,這樣他就可以在Route53中創建ELB和DNS記錄(Kubernetes安裝和external-dns插件安裝的一部分)
  2. 為您的吊艙提供適當的服務

服務示例如下所示:

apiVersion: v1
kind: Service
metadata:
  name: public-pod1
  namespace: your-deployment
  labels:
    app: pod1
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
    external-dns.alpha.kubernetes.io/hostname: pod1.mydomain.com.
spec:
  type: LoadBalancer
  loadBalancerSourceRanges:
  - 0.0.0.0/0 # Ingress SG for your ELB
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80 #That should match your app's port
  selector:
    app: pod1

外部dns( https://github.com/kubernetes-incubator/external-dns )就是為了做到這一點,您用您要為其提供的dns名稱來注釋您的服務,而external-dns為此創建了相關的dns條目。您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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