(Kops) Сервис Kubernetes сопоставлен с DNS-именами в AWS Route53? - PullRequest
0 голосов
/ 16 сентября 2018

Я новичок в Kops и немного в kubernetes. Мне удалось создать кластер с Kops, и запустить на нем развертывание и службу. все прошло хорошо, и для меня был создан ELB, и я мог получить доступ к приложению через эту конечную точку ELB.

Мой вопрос: Как я могу сопоставить свой поддомен (например, my-sub.example.com) с сгенерированной конечной точкой ELB? Я считаю, что это должно быть как-то сделано автоматически kubernetes, и я не должен жестко кодировать конечную точку ELB внутри моего кода. Я пробовал что-то, что связано с annotation -> DomainName, но это не сработало (см. Файл kubernetes yml ниже)

apiVersion: v1
kind: Service
metadata:
  name: django-app-service
  labels:
    role: web
    dns: route53
  annotations:
    domainName: "my.personal-site.de"
spec:
  type: LoadBalancer
  selector:
    app: django-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8000

----

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: django-app-deployment
spec:
  replicas: 2
  minReadySeconds: 15
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  template:
    metadata:
      labels:
        app: django-app
    spec:
      containers:
        - image: fettah/djano_kubernetes_medium:latest
          name:  django-app
          imagePullPolicy: Always
          ports:
            - containerPort: 8000

1 Ответ

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

Когда у вас есть ELB, вы можете использовать плагин external-dns (https://github.com/kubernetes-incubator/external-dns)), который может присоединять записи DNS к этим ELB с помощью интеграции AWS Route53. Вам нужно добавить соответствующие права для Kubernetes, чтобы он мог создавать записи DNS в Route53 - вам нужно добавить дополнительную политику в kops (согласно руководству по плагину external-dns) в разделе AdditionalPolicies в конфигурации кластера kops. Затем используйте аннотацию как:

external-dns.alpha.kubernetes.io/hostname: myservice.mydomain.com.
...