2014-12-04 72 views
7

我可以在谷歌集装箱引擎运行Kubernetes端口80上的多个服务?每个服务都有一个专用的外部IP地址,所以理论上路由器应该能够根据IP地址路由到每个服务。运行多个服务

到目前为止,我已经创建了吊舱集装箱引擎“前端-1”和“前端-2”。我试图为它们在端口80上运行具有唯一外部IP的独立服务,但它不起作用。是否有另一种方法可以在不使用自定义路由服务的情况下在Kubernetes中完成此操作?

服务1.yaml:

id: service-1 
port: 80 
containerPort: 8080 
selector: 
    name: frontend-1 
createExternalLoadBalancer: true 

服务2.yaml:

id: service-2 
port: 80 
containerPort: 8081 
selector: 
    name: frontend-2 
createExternalLoadBalancer: true 

回答

1

截至今天GKE依靠Kubernetes 0.4.x这对于每一个服务的每一个节点上分配的端口。有了这个配置,你不能有多个服务侦听端口80

Kubernetes 0.5.x引入了一个新的网络模式,它映射一个单独的IP每个服务。所以一旦GKE升级,您将能够在不同的IP /端口上显示多个服务。

4

Kubernetes 1.1有一个Ingress类型,让您将不同的DNS名称/ IPS,以不同的服务。从github

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
    name: test 
spec: 
    rules: 
    - host: foo.bar.com 
    http: 
     paths: 
     - backend: 
      serviceName: s1 
      servicePort: 80 
    - host: bar.foo.com 
    http: 
     paths: 
     - backend: 
      serviceName: s2 
      servicePort: 80