首页 > 解决方案 > 使用 aws alb 入口控制器在 kubernetes pod 中公开服务

问题描述

我是 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 ```

标签: amazon-web-serviceskubernetes

解决方案


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

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

设置就像;

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

干杯!


推荐阅读