EKS 集成 Kubernetes ingress

EKS to integrate Kubernetes ingress

任何人都可以指出我可以通过 EKS 上的 Ingress 将流量定向到我的域的工作流程吗?

我有这个:

---
apiVersion: extensions/v1beta1
kind: Ingress

metadata:
name: hello-world
labels:
    app: hello-world
annotations:
    kubernetes.io/ingress.class: nginx
    ingress.kubernetes.io/rewrite-target: /

    spec:
    backend:
        serviceName: hello-world
        servicePort: 80
    rules:
    - host: DOMAIN-I-OWN.com
        http:
        paths:
        - path: /
            backend:
            serviceName: hello-world
            servicePort: 80

---
apiVersion: v1
kind: Service

metadata:
name: hello-world
labels:
    app: hello-world

spec:
ports:
- port: 80
    targetPort: 32000
    protocol: TCP
    name: http
selector:
    app: hello-world

并且能够使用 minikube

达到 DOMAIN-I-OWN.com

kubectl 配置使用上下文 minikube echo "$(minikube ip) DOMAIN-I-OWN.com" | sudo tee -a /etc/hosts

但是,我找不到如何在 AWS EKS 上做同样事情的教程?

我已经设置了 EKS 集群并且有 3 个节点 运行。 并使用那些 Ingress 和 Service 规范部署了 pods。 假设我通过 Google 域或 GoDaddy 拥有 "DOMAIN-I-OWN.com"。

设置 DNS 的下一步是什么?

我需要入口控制器吗?我需要单独安装它才能正常工作吗?

如有任何帮助,我们将不胜感激!卡在这几天了...

您需要连接 https://github.com/kubernetes-incubator/external-dns 之类的东西以自动将 DNS 名称指向集群的已发布服务的 IP。

看看https://github.com/kubernetes-sigs/aws-alb-ingress-controller。它提供了一个控制器,用于监视来自 API 服务器的入口事件。当它找到满足其要求的入口资源时,它开始创建 AWS 资源(子网、安全组、elbs)。

您可以在 was route 53 上创建托管区域并将记录添加到 Godaddy。如果你使用 https://github.com/kubernetes-sigs/aws-alb-ingress-controller。设置入口后,您将获得一个 cname 将其添加到您的路由 53 记录