【发布时间】:2018-11-23 04:38:03
【问题描述】:
我在亚马逊 ews 上有一个 kubernetes 集群,我打算在其上运行多个应用程序。
我有多个服务组成一个这样的应用程序,我想使用亚马逊负载均衡器 (elb) 将它们公开到互联网上。我想使用 ELB,因为我不想直接使用端口 80,因为许多应用程序共享此端口,我希望每个应用程序都独立于其他应用程序定义其入口资源。
我阅读了有关 kubernetes 入口资源的信息,并认为这正是我正在寻找的。但是我没有设法通过负载均衡器的服务公开它。现在,当我阅读文档时,服务旨在公开 pod,但入口是:
管理对集群中服务的外部访问的 API 对象,通常是 HTTP。
我正在尝试做的事情是可能的,还是我没有掌握一些概念并试图做一些不可能或错误的事情?
我的代码:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
labels:
id: ingress
spec:
rules:
- http:
paths:
- path: /api/devices
backend:
serviceName: device-management
servicePort: 3001
- path: /api/datasources
backend:
serviceName: data-acquisition
servicePort: 3001
- path: /auth,/account,/api/tenants,/api/users
backend:
serviceName: device-management
servicePort: 3001
## TODO: Find out how to add subdomain entry for auth.domain and s3.domain
---
apiVersion: v1
kind: Service
metadata:
name: ingress
labels:
id: ingress
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
- name: https
port: 443
targetPort: 443
selector:
id: ingress
kubectl describe service ingress 的输出包含
端点:无
【问题讨论】:
-
我已成功应用您提供的配置。未检测到问题。看起来是环境问题。它是一种什么样的安装方式?您的集群是使用 --cloud--providerer 和 --cloud-config 使用 Kops 创建的吗?
-
勘误表。适当的参数:--cloud-provider 和--cloud-config
标签: amazon-ec2 kubernetes nginx-reverse-proxy kubernetes-ingress