我在OpenShift中有一个包含容器A和容器B的部署对象,这里的要求是,无论何时容器B退出,容器A都应该跟随,否则整个pod都应该被替换。
有没有办法做到这一点?
这是我的YAML。
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-redis-bundle
labels:
app: app-redis-bundle
spec:
replicas: 1
selector:
matchLabels:
app: app-redis-bundle
template:
metadata:
labels:
app: app-redis-bundle
spec:
containers:
- name: cache-store-2
image: redis
resources:
limits:
cpu: 500m
memory: 1500Mi
requests:
cpu: 250m
memory: 1Gi
ports:
- containerPort: 6379
livenessProbe:
tcpSocket:
port: 6379
- name: app-server-2
image: 'app:latest'
resources:
limits:
cpu: '1'
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi
ports:
- containerPort: 8443
livenessProbe:
tcpSocket:
port: 8443
imagePullSecrets:
- name: mysecret
2条答案
按热度按时间ee7vknir1#
两个容器使用相同的临时网络,这意味着容器A可以在“本地主机:端口”上与容器B通信。
这个多容器pod是explained here,非常清楚。
6ss1mwsb2#
感谢您的评分
现在问题解决了。
请允许我详细阐述这个问题并解释解决办法。
问题陈述
我需要在OpenShift中部署一个包含2个容器A和B的Pod,以便每当容器A终止时,容器B也会自动终止自己。
最初,我的方法是从容器A运行容器B中的终止脚本。然而,这种方法没有帮助。
溶液
使用liveness探测器将TCP Socket连接从B发送到正在运行的端口上的A,这很神奇,现在只要A退出,B就会终止。
任务完成。
下面是工作的yaml。