我可以在Google Container Engine的Kubernetes的80端口上运行多个服务吗?每个服务都有一个专用的外部IP地址,因此理论上路由器应该能够根据每个服务的IP地址来路由到每个服务。
到目前为止,我已经为Container Engine上的"frontend-1“和"frontend-2”创建了pod。我试图为它们创建单独的服务,它们都运行在端口80上,具有唯一的外部it,但不起作用。在Kubernetes中,有没有其他方法可以在不使用自定义路由服务的情况下实现这一点?
service-1.yaml:
id: service-1
port: 80
containerPort: 8080
selector:
name: frontend-1
createExternalLoadBalancer: trueservice-2.yaml:
id: service-2
port: 80
containerPort: 8081
selector:
name: frontend-2
createExternalLoadBalancer: true发布于 2014-12-05 03:13:09
到目前为止,GKE依赖于Kubernetes 0.4.x,它为每个服务分配每个节点上的端口。使用这种配置,您不能让多个服务监听端口80。
Kubernetes 0.5.x引入了一个新的网络模型,它为每个服务映射一个单独的IP。因此,一旦GKE升级,您将能够在不同的IP/端口上公开多个服务。
发布于 2015-12-04 01:41:22
Kubernetes1.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发布于 2019-01-31 23:50:09
是的,多个服务可以有相同的端口,因为这并不重要,因为每个服务都有自己的IP地址。在google kubernetes控制台中运行
kubectl get svc这将列出所有服务和外部IP,可以通过在浏览器中将其复制到相应的端口号来检查。
https://stackoverflow.com/questions/27298921
复制相似问题