如果app需要开放两个端口,有两种办法:
明明可以用一个service搞定,为什么还要起两个service呢?
例如,有个app,同时开发9200与9300端口。9200提供web服务,9300提供api。那么,用两个service,分别命名为app-http与app-api,分别暴露9200与9300端口,分别为nodePort与clusterIP方式,这样层次清晰。
一般我们只有一个端口的时候,在service的yaml文件是这样的:
ports:
- nodePort: 9200
port: 9200
protocol: TCP
targetPort: 9200
而如果你想开两个端口,直接复制粘贴可不行,k8s会提示你必须要加上name。所以,如果要开多端口,要为每个port都指定一个name,如:
ports:
- name: http
nodePort: 9200
port: 9200
protocol: TCP
targetPort: 9200
- name: api
port: 9300
protocol: TCP
targetPort: 9300