最近在公司的类生产环境的容器集群中部署了Prometheus+Grafana。
为了登录到容器内部去看看Prometheus的配置文件是怎么写的,采用了如下最常用的方法:
kubectl get po -n nwnwnwnw | grep prometheus
上面命令中的 ‘nwnwnwnw’ 是部署prometheus的命名空间。我们用的是 kube-system。
通过此命令可以获取到 prometheus的pod名,例如是:prometheus-xxxxxxx-xxxx
通过如下命令,可以进入到容器内部:
kubectl exec -it -n nwnwnwnw prometheus-xxxxxxx-xxxx /bin/bash
但系统报错:
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"
经过分析,发现命令中不能用 /bin/bash,而要用 /bin/sh
改用如下命令就OK了:
kubectl exec -it -n nwnwnwnw prometheus-xxxxxxx-xxxx /bin/sh
结果如下: