Кубернетес выставляют несколько стручков - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть кластер kubernetes с несколькими модулями из разных изображений.

Я хочу иметь возможность выставлять каждый из этих модулей, чтобы я мог получить к ним доступ с помощью внешней записи DNS (вне кластера).

Например: допустим, у меня есть 3 модуля (pod1, pod2, pod3), я хочу иметь доступ к ним снаружи кластера следующим образом:

http://pod1.mydomain.com

http://pod2.mydomain.com

http://pod3.mydomain.com

Есть ли способ сделать это?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

В AWS вы можете легко открывать POD с помощью ELB - Kubernetes может автоматически создавать подходящие ELB для вас.Это означает, что Kubernetes порождает ELB и затем присоединяет его к надлежащим сервисам, используя порты узлов.Если у вас есть ELB, вы можете использовать внешний плагин dns, предложенный GarMan, который может прикреплять записи DNS к этим ELB с помощью интеграции AWS Route53.Поэтому вам необходимо:

  1. Добавить надлежащие права для Kubernetes, чтобы он мог создавать ELB и DNS-записи в Route53 (часть установки Kubernetes и установки внешнего плагина 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
0 голосов
/ 13 сентября 2018

external-dns (https://github.com/kubernetes-incubator/external-dns) предназначен для этого, вы аннотируете свои сервисы именем dns, которое вы хотите им дать, и external-dns создает соответствующие записи dns для вас.

...