【问题标题】:Exposing service in kubernetes pods with aws alb ingress controller使用 aws alb 入口控制器在 kubernetes pod 中公开服务
【发布时间】:2019-02-15 08:52:54
【问题描述】:

我是 k8s 的新手,正在探索更多关于生产级部署的信息。 我们有 py Django 应用程序,它在(比如 9000)节点端口中运行。当我尝试使用 k8s-service ELB 公开它们时, - 它通过分别运行 80 和 443 来工作;其中 AWS 经典 ELB 不支持 80 到 443 重定向。

然后我切换到 aws alb 入口控制器;我面临的问题是 - ALB 不适用于节点端口,仅适用于 http 和 https 端口。

任何想法将不胜感激!

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ABC
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/target-type: instance
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/subnets: 'subnet-1, subnet-2'
    alb.ingress.kubernetes.io/security-group: sg-ABC
    alb.ingress.kubernetes.io/healthcheck-path: "/"
    alb.ingress.kubernetes.io/success-codes: "200"
  labels:
    name: ABC
spec:
  rules:
    - http:
        paths:
         - path: /
           backend:
             serviceName: ABC
             servicePort: 80 ```

【问题讨论】:

  • 感谢您的回复;但是,这只适用于在端口 80 中运行的应用程序/pod;我们的应用程序在 9000 上运行,有什么想法可以代理它们吗?
  • 为每个指定为 Ingress 资源注释的端口创建侦听器。如果未指定端口,则使用合理的默认值(80 或 443)。所以你可以为 9000 创建监听器
  • 我不确定;这样可行。 ALB 是否适用于 layer4 协议?我用ELB尝试过同样的方法,它有效。出于重定向目的,我更喜欢 ALB。感谢您一直以来的支持
  • 从我的 alb 入口文件中添加了 sn-p。请看上面

标签: amazon-web-services kubernetes


【解决方案1】:

谢谢@sulabh 和@Fahri,它现在完美运行。我再次浏览了文档并纠正了我的错误。

问题在于 ALb 中的路由路径;

设置是这样的;

pod 中的 python-django-uwsgi 应用程序并将其公开为 NodePort 中的服务,并为 ALB 使用 aws 入口控制器;

干杯!

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2020-01-23
    • 2023-02-01
    相关资源
    最近更新 更多