EKS整合Kubernetes入口

时间:2018-08-16 19:54:39

标签: kubernetes kubernetes-ingress amazon-eks

有人可以指出我可以通过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

并且可以使用迷你方块击打DOMAIN-I-OWN.com

kubectl配置使用上下文迷你库   回声“ $(minikube ip)DOMAIN-I-OWN.com” | sudo tee -a / etc / hosts

但是,我找不到如何在AWS EKS上执行相同操作的教程?

我已经设置了EKS集群,并且正在运行3个节点。 并按照这些Ingress和Service规范部署Pod。 假设我通过Google域或GoDaddy拥有“ DOMAIN-I-OWN.com”。

设置DNS的下一步是什么?

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

任何帮助将不胜感激!这几天陷入困境...

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

正如 Miguel 所指出的,您需要将 AWS LoadBalancerController 作为 Pod 部署到您的 EKS Kubernetes 集群中。此 Pod 具有特殊权限,允许它为您创建的每个入口创建一个 AWS ApplicationLoadBalancer。

入口的实际 IP 将显示在创建的 AWS ApplicationLoadBalancer 的属性中。

此外,您需要在入口中包含注释以使其面向互联网。

kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip

查看更多详情:https://runkiss.blogspot.com/2021/03/using-ingress-in-aws-eks.html