(Kops)Kubernetes服务映射到AWS Route53中的DNS名称?

问题描述 投票:0回答:1

我是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
amazon-web-services kubernetes kops
1个回答
3
投票

当你有ELB时,你可以使用external-dns(https://github.com/kubernetes-incubator/external-dns)插件,它可以使用AWS Route53集成将DNS记录附加到那些ELB。您需要为Kubernetes添加适当的权限,以便他可以在Route53中创建DNS记录 - 您需要在kops群集配置的additionalPolicies部分中以kops(根据external-dns插件中的指南)添加其他策略。然后使用注释,如:

external-dns.alpha.kubernetes.io/hostname: myservice.mydomain.com.
© www.soinside.com 2019 - 2024. All rights reserved.