首页 > 解决方案 > 检查其他容器状态的优雅方式

问题描述

由于 Kubernetes 没有实现容器之间的依赖关系,我想知道是否有一种优雅的方法来检查同一个 Pod 中的另一个容器是否准备好。

我认为 Downward API 是必要的。也许可以通过嵌入kubectl容器中来完成 - 但有没有更简单的方法?

标签: kuberneteskubernetes-pod

解决方案


现在我最终使用了一个简单的文件存在检查:

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      ...
      - name: former
        readinessProbe:
          exec:
            command:
            - /bin/sh
            - "-c"
            - /bin/sh /check_readiness.sh && touch /foo/ready
        volumeMounts:
        - name: shared-data
          mountPath: /foo
        ...
      - name: latter
        command:
        - /bin/sh
        - "-c"
        - while [ ! -f /foo/ready ]; do sleep 1; done; /bar.sh
        volumeMounts:
        - name: shared-data
          mountPath: /foo
          readOnly: true
      ...
      volumes:
      - name: shared-data
        emptyDir: {}

推荐阅读