【发布时间】:2020-06-11 04:29:23
【问题描述】:
所以有一个 OpenShift 集群并在 mongodb-test 命名空间中运行一个 pod。吊舱运行良好
$ kubectl get pods -n mongodb-test
NAME READY STATUS RESTARTS AGE
mongodb-1-7ww9k 1/1 Running 0 14m
当我执行到 pod 并运行 mongo 命令时,我没有遇到任何问题,并且该命令按预期工作。
$ kubectl exec -it -n mongodb-test mongodb-1-7ww9k -c mongodb sh
sh-4.2$ mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
>
现在的问题是,当我尝试使用以下语法运行相同的命令时,我得到 mongo not found
$ kubectl exec -it -n mongodb-test mongodb-1-7ww9k -c mongodb -- sh -c mongo
sh: mongo: command not found
E0227 13:02:01.728579 24237 v3.go:79] EOF
command terminated with exit code 127
下面是 pod 内部的 echo $PATH 和 which mongo 的输出。
$ kubectl exec -ti -n mongodb-test mongodb-1-7ww9k -c mongodb -- sh
sh-4.2$ echo $PATH
/opt/rh/rh-mongodb36/root/usr/bin:/opt/rh/rh-mongodb36/root/usr/sbin:/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sh-4.2$ which mongo
/opt/rh/rh-mongodb36/root/usr/bin/mongo
sh-4.2$
【问题讨论】:
-
你能用完整路径执行
mongo吗? -
拜托,你能用你的部署清单更新你的问题吗?我已经尝试过使用常规的 mongo 图像并且它有效。我想重现与您完全相同的场景。
标签: linux mongodb bash kubernetes openshift