我有一个简单的任务,但研究了几十篇文章也没有解决。
有一个简单的 AWS EKS 集群,是使用 eksctl、ElasticIP 从演示模板创建的,并且无需任何更改即可安装 https://bitnami.com/stack/nginx-ingress-controller/helm
我想在 AWS EKS nginx 入口控制器 1234567890.eu-central-1.elb.amazonaws.com 上使用 DNS A 记录将一个域 https://stage.mydomain.com 转发到 ElasticIP,所以我的集群的所有服务都可以在这个 ElasticIP 地址上使用。
我尝试通过负载均衡器和网络均衡器,但不起作用。
是否有经过验证的文章或行动序列可以通过这套服务解决此问题?
是的,这在 AWS 文章中很常见,NLD 价值也仅以这种方式出现
https://aws.amazon.com/blogs/opensource/network-load-balancer-nginx-ingress-controller-eks/
在上面的文章中,使用NLB作为后端安装NGINX控制器,以相同的方式提供IP。
在这种情况下,您可以将
DNS
与 A
或 CNAME
添加
一旦您的入口控制器设置完成,您将获得
LB
端点,您必须将其添加到 DNS
作为 A
记录或 CNAME
这会将请求转发到集群。
现在在集群内部,您必须使用 YAML 创建入口
https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test
port:
number: 80
对于
NLB
中您可以将注释添加到服务中
**service.beta.kubernetes.io/aws-load-balancer-type: nlb**
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '60'
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: 'true'
service.beta.kubernetes.io/aws-load-balancer-type: nlb
labels:
helm.sh/chart: ingress-nginx-2.0.3
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 0.32.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: controller
name: ingress-nginx-controller
namespace: ingress-nginx
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
使用 helm 部署 nginx-ingress 时可以使用以下注解:
service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-xxxxxxxxxx, eipalloc-yyyyyyyyyy"
service.beta.kubernetes.io/aws-load-balancer-subnets: "subnet-name-1, subnet-name-2"