我有一个场景,我需要在同一个 pod 中运行一个应用容器的两个实例。我将它们设置为侦听不同的端口。下面是部署清单的样子。Pod 以预期的容器数量正常启动。我什至可以从其他 pod 连接到 podIP 上的两个端口。
kind: Deployment
metadata:
labels:
service: app1-service
name: app1-dep
namespace: exp
spec:
template:
spec:
contianers:
- image: app1:1.20
name: app1
ports:
- containerPort: 9000
protocol: TCP
- image: app1:1.20
name: app1-s1
ports:
- containerPort: 9001
protocol: TCP
我什至可以为容器的每个端口创建两个不同的服务,而且效果也很好。我可以单独访问这两个服务并最终访问 Pod 中的相应容器。
apiVersion: v1
kind: Service
metadata:
name: app1
namespace: exp
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 9000
selector:
service: app1-service
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: app1-s1
namespace: exp
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 9001
selector:
service: app1-service
sessionAffinity: None
type: ClusterIP
我希望容器的两个实例都在一个服务后面,即两个容器之间的循环。我怎样才能做到这一点?在服务领域内可能吗?或者我需要探索类似这样的入口吗?