如何从 pod 内的交互式 shell 获取输出

How to get output from an interactive shell inside of a pod

我正在尝试使用我的组织的一个 sdk 编写一个 python 脚本,并从 kubernetes pod 中提取一些有用的信息。

我的 sdk 有一个 podexec() 函数,可以用来在 pod 中执行命令。

我有一个特定的用例,我必须在 pod 内执行一个命令,这反过来会启动一个交互式 shell,然后在那个交互式 shell 中,我想要执行命令并打印输出。

例如,假设有一个 mysql pod,我想先执行到 mysql pod,然后 运行 mysql 命令将调出一个 interactive mysql shell,我想在其中输入一些命令,例如“Show tables ;",然后在我的脚本中获取该命令的输出。可能吗?

进入 pod 后,我可以 运行 像下面这样的单个命令

kubectl exec -it mysql-pod -- bash

echo "show tables;" |mysql

现在如何在不使用 kubectl 进入 pod 的情况下运行?

注意:我的用例实际上不是 w.r.t mysql。我的组织有一个自定义工具,可以让我们在它的交互式 shell 中执行命令。 Mysql这里只是一个例子。

好的。想通了。

kubectl exec -it mysql-pod -- bash -c "echo \"show tables\" |mysql"