如何从 Kubernetes 探测器测试文件是否存在?

How to test a file exists from a Kubernetes probe?

我在 MySQL Pod 中有一个 sidecar 容器,它将使用 MySQL 套接字文件来访问数据库。

我想确定 MySQL 已经成功启动,因此在这个 sidecar 容器启动之前已经创建了套接字文件。

我尝试添加一个 readiness 探测器,其中 exec.commandtest -S /var/run/mysqld/mysqld.sock 但它失败了:

Readiness probe failed: OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "test -S /var/run/mysqld/mysqld.sock": stat test -S /var/run/mysqld/mysqld.sock: no such file or directory: unknown

当我在 sidecar 容器中打开终端会话时,我可以 ls 套接字文件,它就在那里。

看来我的 test -S <path> 命令在探测上下文中没有按预期工作。

如何编写我的探测器,以便一旦套接字文件可用,我的 sidecar 容器就会启动?

尝试:

...
readinessProbe:
  exec:
    command:
    - sh
    - -c
    - test -S /var/run/mysqld/mysqld.sock