【发布时间】: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