如何通过 Kubernetes 探针测试文件是否存在?

Zed*_*TuX 2 kubernetes readinessprobe

我的 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

goh*_*m'c 5

尝试:

...
readinessProbe:
  exec:
    command:
    - sh
    - -c
    - test -S /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)