Bash 使用pod名称执行kubernetes pod
我正在编写一个shell脚本,用于执行pod,其语法为:Bash 使用pod名称执行kubernetes pod,bash,shell,kubernetes,kubectl,Bash,Shell,Kubernetes,Kubectl,我正在编写一个shell脚本,用于执行pod,其语法为: winpty kubectl --kubeconfig="C:\kubeconfig" -n namespace exec -it podname bash 这很好,但由于podname不稳定,并且每次部署都会发生变化,所以有其他选择吗 谢谢。您可以使用以下命令: kubectl -n <namespace> exec -it deploy/<deployment-name> -- bash kubectl-
winpty kubectl --kubeconfig="C:\kubeconfig" -n namespace exec -it podname bash
这很好,但由于podname不稳定,并且每次部署都会发生变化,所以有其他选择吗
谢谢。您可以使用以下命令:
kubectl -n <namespace> exec -it deploy/<deployment-name> -- bash
kubectl-n exec-it deploy/--bash
在应用程序中添加一个:
正如你所知,豆荚是短暂的;它们动态地进出,以确保您的应用程序与您的配置保持一致。此行为实现了kubernetes的缩放和自愈功能
您的应用程序将由一个或多个可通过访问的POD组成,应用程序的服务名称和地址不会更改,因此充当访问应用程序的稳定接口
如果应用程序有一个pod或多个pod,此方法都有效
这有帮助吗?您可以正常使用该命令,但可以定义用于更改pod名称的值
假设您有部署并标记为pods:app=example,只需执行:
$ kubectl exec -it $(kubectl get pods -l app=example -o custom-columns=:metadata.name) -- bash
编辑:
您还可以执行:
POD_NAME = $(kubectl get pods -l app=example -o custom-columns=":metadata.name")
或
最后
$ winpty kubectl exec -ti $POD_NAME --bash
确保您在正确的名称空间中执行命令-您还可以添加
-n
标志并定义它。您有部署吗?我相信OP引用的是一个稳定的名称,通过kubernetes API访问pod,而不是一个普通的客户端。您在什么样的环境中工作正常?请显示命令的输出:kubectl get pods-l app=example-o custom columns=:metadata.name?当然,如果你有pods label app=exampl(你可以使用与你的pod连接的不同标签)。执行此命令会给我pod名称,我正在windows上执行此命令。我已经用其他信息编辑了答案-看一看。
$ winpty kubectl exec -ti $POD_NAME --bash