首页 > 解决方案 > K8s:多容器 pod

问题描述

我正在为多容器 pod 编写掌舵图。一个容器必须始终工作,但另一个容器可以正常关闭。但是当它关​​闭时,服务进入了没有端点 IP 的状态。这段时间的 Pod 状态是 Running< 但它的条件:ready: false, ContainerReady: false 怎么处理?

我可以用 PV 将容器分布在两个 pod 中,但我不想这样做。现在我使用共享卷在容器之间进行通信。

apiVersion: batch/v1beta1
kind: CronJob
  schedule: "{{ .Values.schedule }}"
  concurrencyPolicy: Replace
    jobTemplate:
      spec:
        template:
          spec:
            restartPolicy: Never
            volumes:
            - name: "shared-dir"
            emptyDir: {}
            containers:
            - name: {{ .Values.*.name }}
            image: ...
            - name: {{ .Values.*.name }}
            image: ...

我预计,一个容器会生成很少的文件,将其放在共享卷中并正常关闭它的工作,而 nginx 会将其共享给其他服务。下次作业,所有容器将由 concurrencyPolicy 重新启动

标签: kubernetes

解决方案


您是否考虑过使用init 容器?这将允许您在使用前准备好您的音量。它在部署的生命周期中只运行一次。配置探针也可以很好地为您服务。


推荐阅读