使用AWS ALB Ingress Controller在Kubernetes Pod中公开服务

时间:2019-02-15 08:52:54

标签: amazon-web-services kubernetes

我是k8的新手,正在探索有关生产级部署的更多信息。 我们有运行在(例如9000)节点端口中的py Django应用。当我尝试使用k8s服务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 ```

1 个答案:

答案 0 :(得分:1)

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

问题与ALb中的路由路径有关;

设置就像;

pod中的python-django-uwsgi应用程序,并将其作为服务在NodePort中公开,并使用AWS Ingress控制器进行ALB;

干杯!