我使用以下命令成功部署了 Kubernetes 应用程序kubectl apply -f deployment.yaml
。
当我尝试访问 URL 端点时,我得到了一个nginx 404 Not Found
错误页面。
我的下一步是开一个bash
运行我的应用程序的 docker 实例上的 shell。我如何在 Kubernetes 中执行此操作?
如何 ssh 到运行我的应用程序的 docker 容器,或 docker exec bash 到我部署到 Kubernetes 的应用程序?
如果我在 docker 中运行,我会运行docker ps
找到容器ID然后运行docker exec -t ### bash
在我的容器上打开一个 shell 来四处查看以解决某些问题无法正常工作的原因。
在 Kubernetes 中执行此操作的等效方法是什么?
寻找解决方案
我搜索并发现this URL https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/,它说明了如何在您的应用程序上获取 shell。
该 URL 的摘要是:
kubectl apply -f https://k8s.io/examples/application/shell-demo.yaml
kubectl get pod shell-demo
kubectl exec --stdin --tty shell-demo -- /bin/bash
但是当我尝试等效命令时,出现错误,如下所示:
kubectl get pods --namespace my-app-namespace
NAME READY STATUS RESTARTS AGE
dpl-my-app-787bc5b7d-4ftkb 1/1 Running 0 2h
然后我尝试:
kubectl exec --stdin --tty my-app-namespace -- /bin/bash
Error from server (NotFound): pods "my-app-namespace" not found
exit status 1
我认为发生这种情况是因为我试图执行到命名空间而不是 Pod,所以我也尝试了dpl-my-app-...
(见下文)但遇到了同样的错误。
kubectl exec --stdin --tty dpl-my-app-787bc5b7d-4ftkb -- /bin/bash
Error from server (NotFound): pods "dpl-my-app-787bc5b7d-4ftkb" not found
exit status 1
我需要什么命令来获取 pod 实例,以便kubectl exec
将工作?