amazon-web-services - 如何使用 nginx ingress 将流量从 route53 中的域转发到 pod?

标签 amazon-web-services nginx kubernetes grafana amazon-route53

我使用 helm 部署了 grafana,现在它在 pod 中运行。如果我将端口 3000 代理到我的笔记本电脑,我就可以访问它。 我试图将域 grafana.something.com 指向该 pod,以便我可以从外部访问它。 我在 route53 中有一个域,我可以将其附加到负载均衡器(应用程序负载均衡器、网络负载均衡器、经典负载均衡器)。该负载均衡器可以将流量从端口 80 转发到端口 80 到一组节点(我们将端口 443 留到以后使用)。 我真的很难设置它。我确定缺少某些东西,但我不知道是什么。

我想象的基本图应该是这样的。

互联网
↓↓
route53 中的域 (grafana.something.com)
↓↓
负载均衡器 80 到 80(应用程序负载均衡器、网络负载均衡器、经典负载均衡器) 我猜 LB 会将流量转发到端口 80 到下面的入口 Controller (在使用 Helm 部署 Grafana 时创建)
↓↓
EKS 工作节点组
↓↓
入口资源??????
↓↓
入口 Controller - 在命名空间测试中使用 Helm 部署 Grafana 时创建。

kubectl get svc grafana -n test

grafana 类型:ClusterIP ClusterIP:10.x.x.x 端口:80/TCP

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: {}

↓↓
Pod Grafana正在监听3000端口,我代理到我的笔记本3000端口后可以访问成功。

最佳答案

鉴于您似乎没有 Ingress Controller安装,如果你的K8S集群配置了aws cloud-provider,你可以关注this guide使用 Helm 安装 Nginx Ingress Controller 。

在本指南结束时,您应该为入口 Controller 创建了一个负载均衡器,将您的 Route53 记录指向它并创建一个使用您的 grafana 服务的入口。示例:

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: /

最终的流量路径是:

Route53 -> ELB -> Ingress -> Service -> Pods

关于amazon-web-services - 如何使用 nginx ingress 将流量从 route53 中的域转发到 pod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55705533/

相关文章:

docker - 无法从不安全的私有(private)注册表中将图像拉入 minikube - http : server gave HTTP response to HTTPS client

docker - 如何为 Kubernetes 创建本地开发环境?

amazon-web-services - Amazon RDS 如何计算 I/O 速率?

amazon-web-services - API Gateway Websockets - 处理 10 分钟空闲连接超时

nginx - 为 yandex 删除 nginx 中的 “X-Frame-Options” header

nginx - Kubernetes NGINX 入口重写目标注释中断

kubernetes - 将外部 Kubernetes 服务从负载均衡器迁移到入口 Controller

amazon-web-services - 云形成 : How to update a particular without updating the entire stackset?

amazon-web-services - AWS 负载均衡器。如果没有 EC2 链接到它们,是否会产生成本?

nginx - 无法将上游映射到 nginx 服务器中的文件夹