繁体   English   中英

使用 pod 名称执行 kubernetes pod

[英]Executing a kubernetes pod with the use of pod name

我正在编写一个 shell 脚本来执行一个 pod,其语法为:

winpty  kubectl --kubeconfig="C:\kubeconfig" -n namespace exec -it podname bash

这工作正常,但由于 podname 不稳定并且每次部署都会发生变化,所以有什么替代方案吗?

谢谢。

您可以使用以下命令:

kubectl -n <namespace> exec -it deploy/<deployment-name> -- bash

向您的应用程序添加服务

如您所知,豆荚是短暂的。 它们动态地进出,以确保您的应用程序与您的配置保持一致。 此行为实现了 kubernetes 的缩放和自我修复方面。

您的应用程序将由一个或多个可通过服务访问的 pod 组成,应用程序的服务名称和地址不会更改,因此充当访问您的应用程序的稳定接口。

如果您的应用程序有一个 pod 或多个 pod,此方法都适用。

这有帮助吗?

您可以正常使用$ kubectl exec命令,但定义更改 pod 名称的值。

假设您有部署和标记的 pod: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")

或者

POD_NAME = $(kubectl get pods -l app=example -o jsonpath = "{. Items [0] .metadata.name}")

最后

$ winpty kubectl exec -ti $POD_NAME --bash

确保您在正确的命名空间中执行命令 - 您还可以添加-n标志并定义它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM