有人可以指出我可以通过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的下一步是什么?
我需要入口控制器吗?我是否需要单独安装才能正常工作?
任何帮助将不胜感激!这几天陷入困境...
答案 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