首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用nginx入口将route53中的域流量转发到豆荚?

如何使用nginx入口将route53中的域流量转发到豆荚?
EN

Stack Overflow用户
提问于 2019-04-16 10:02:18
回答 2查看 1.3K关注 0票数 2

我用舵机部署了grafana,现在它正在荚中运行。我可以访问它,如果我代理端口3000到我的笔记本电脑。我试图指向一个域grafana.something.com到那个豆荚,以便我可以访问它的外部。我在route53中有一个域,我可以附加到一个负载平衡器(应用负载均衡器,网络负载均衡器,经典负载均衡器)。该负载均衡器可以将通信量从端口80转发到80端口到一组节点(让我们将端口443留给以后使用)。我真的很难安排这件事。我肯定有什么东西不见了,但我不知道是什么。

我想基本的图表会是这样的。

互联网

↓↓

域在route53 (grafana.something.com)

↓↓

负载平衡器80到80 (应用程序负载均衡器、网络负载均衡器、经典负载均衡器)--我猜LB将把流量转发到80端口( Grafana是使用Helm部署时创建的)

↓↓

EKS工作节点组

↓↓

入口资源?

↓↓

入口控制器-在名称空间测试中使用Helm部署Grafana时创建的。

kubectl get svc grafana -n test

grafana Type:ClusterIP ClusterIP:10.x.x.x Port:80/TCP

代码语言:javascript
运行
复制
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 
  labels:
    app: grafana
    chart: grafana-
    heritage: Tiller
    release: grafana-release
  name: grafana
  namespace: test
  resourceVersion: "xxxx"
  selfLink: 
  uid: 
spec:
  clusterIP: 10.x.x.x
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 3000
  selector:
    app: grafana
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

↓↓

荚格拉法纳正在收听3000端口的节目。我可以成功地访问它后,代理我的笔记本电脑端口3000。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-16 10:25:34

考虑到您似乎没有安装入口控制器,如果您在K8S集群中配置了aws云提供程序,您可以按照本指南使用Helm安装Nginx入侵控制器。

在指南的末尾,您应该已经为您的入口控制器创建了一个负载均衡器,将您的Route53记录指向它,并创建一个使用您的grafana服务的宏。示例:

代码语言:javascript
运行
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/app-root: /
    nginx.ingress.kubernetes.io/enable-access-log: "true"
  name: grafana-ingress
  namespace: test
spec:
  rules:
  - host: grafana.something.com
    http:
      paths:
      - backend:
          serviceName: grafana
          servicePort: 80
        path: /

最后的交通路线是:

代码语言:javascript
运行
复制
Route53 -> ELB -> Ingress -> Service -> Pods
票数 5
EN

Stack Overflow用户

发布于 2021-10-20 11:11:19

在这里添加了2个重要建议.

1)在对kubernetes 1.18中入口api的改进之后,一个新的ingressClassName字段已经添加到is规范中,该规范用于引用用于实现该ingressClassName的IngressClass。

请考虑切换到ingressClassName kubernetes.io/ingress.class 字段,而不是kubernetes.io/ingress.class注释

代码语言:javascript
运行
复制
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: grafana-ingress
  namespace: test
spec:
  ingressClassName: nginx # <-- Here
  rules:
    - host: grafana.something.com
      http:
        paths:
          - path: /
            backend:
              serviceName: grafana
              servicePort: 80

2)考虑使用 外部-DNS在外部DNS服务器(查看AWS Route53上的示例)和Kubernetes Ingresses / Services之间进行集成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55705533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档