我在amazon新闻上有一个kubernetes集群,我打算在这个集群上运行多个应用程序。
我有多个服务,它们构成了一个这样的应用程序,我想使用一个亚马逊负载均衡器(elb)将它们公开到互联网上。我想要使用ELB,因为我不想直接使用端口80,因为许多应用程序共享这个端口,我希望每个应用程序都可以独立于其他应用程序来定义它们的入口资源。
我读到了库伯奈特的入口资源,并认为这正是我想要的。但是,我没有设法通过负载均衡器的服务公开它。现在,当我阅读documentation时,它的目的是公开豆荚,但入口是:
管理对集群中服务(通常为HTTP )的外部访问的API对象。
我想要做的事情是可能的,还是我没有抓住一些概念,试图做一些不可能的或错误的事情?
我的代码:
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的输出
端点:无
发布于 2018-06-15 07:35:23
问题是我没有安装入口控制器。这些文件指出:
您需要一个宏控制器来满足一个宏,简单地创建资源就不会有任何效果。
入口控制器创建一个nginx吊舱和一个服务(负载均衡器),然后实现所有入口资源中描述的规则。安装指南提供了关于如何在不同平台上安装它的进一步信息。
入口控制器取代了我上面描述的服务,实现了集群中所有的入口资源。
https://stackoverflow.com/questions/50839897
复制相似问题