2014-12-04 14 views
7

Czy mogę uruchomić wiele usług na porcie 80 w Kubernetes w Google Container Engine? Każda usługa ma dedykowany zewnętrzny adres IP, więc teoretycznie router powinien mieć możliwość kierowania do każdej usługi na podstawie jej adresu IP.Uruchamiaj wiele usług w porcie 80 w tym samym klastrze Kubernetes w Google Container Engine

Do tej pory stworzyłem kapsuły dla "frontend-1" i "frontend-2" na Container Engine. Próbowałem utworzyć osobne usługi dla nich działających na porcie 80 z unikalnymi zewnętrznymi adresami IP, ale nie działało. Czy jest inny sposób na osiągnięcie tego w Kubernetes bez korzystania z niestandardowej usługi rutowania?

usługi 1.yaml:

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

usługi 2.yaml:

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

Odpowiedz

1

dzień dzisiejszy GKE polega na Kubernetes 0.4.x który przydziela porty na każde węzłów dla każdej usługi. W tej konfiguracji nie można korzystać z wielu usług nasłuchujących na porcie 80.

Kubernetes 0.5.x wprowadził nowy model sieci, który odwzorowuje oddzielne adresy IP dla każdej usługi. Tak więc po aktualizacji GKE będziesz mógł mieć wiele usług na różnych IP/portach.

4

Kubernetes 1.1 ma typ Ingress, który umożliwia kierowanie różnych nazw dns/ips do różnych usług. Od 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 
Powiązane problemy