【发布时间】:2017-12-22 04:38:14
【问题描述】:
我已经使用谷歌云平台(容器引擎)创建了一个集群,并使用以下 YAML 文件部署了一个 pod:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-name
spec:
replicas: 1
template:
metadata:
name: pod-name
labels:
app: app-label
spec:
containers:
- name: container-name
image: gcr.io/project-id/image-name
resources:
requests:
cpu: 1
ports:
- name: port80
containerPort: 80
- name: port443
containerPort: 443
- name: port6001
containerPort: 6001
然后我想创建一个服务,使 pod 能够监听所有这些端口。我知道以下 YAML 文件可用于创建侦听一个端口的服务:
apiVersion: v1
kind: Service
metadata:
name: service-name
spec:
ports:
- port: 80
targetPort: 80
selector:
app: app-label
type: LoadBalancer
但是,当我希望 pod 像这样在多个端口上侦听时,它不起作用:
apiVersion: v1
kind: Service
metadata:
name: service-name
spec:
ports:
- port: 80
targetPort: 80
- port: 443
targetPort: 443
- port: 6001
targetPort: 6001
selector:
app: app-label
type: LoadBalancer
如何让我的 pod 监听多个端口?
【问题讨论】:
-
您尝试过多种服务吗?
-
@danielepolencic 感谢您的回答。我已经尝试了多种服务并且它有效,这样做的问题是您为每个服务获得一个外部 IP 地址。有没有办法让 pod 在没有多个服务的情况下监听多个端口,或者让一个服务监听多个端口?
标签: kubernetes google-cloud-platform port load-balancing