当我运行这个脚本时,我想要创建一个脚本,它将自动地为一个pod运行port-forwarding,对于特定的pod名称(app3,我在这个名称空间中有多个应用程序,我只需要为app3运行)。
例如:
kubectl port-forward pods/app3-86499b66d-dfwf7 8000:8000 -n web
我开始的时候
kubectl get pod -n webide-system | grep app3
产出如下:
app3-86499b66d-dfwf7 1/1 Running 0 18h
然而,我不知道如何获得输出,这是荚名称,并运行端口转发给它,下面的粗体是常量
pods/app3-86499b66d-dfwf7
每一次部署都会发生变化。
-86499b66d-dfwf7知道如何使它与脚本一起工作吗?
发布于 2020-08-22 13:46:54
POD_NAME=`kubectl get pod -n webide-system | grep app3 | sed 's/ .*//'`
kubectl port-forward pods/$POD_NAME 8000:8000 -n web发布于 2020-08-24 10:15:15
@Beta提供的答案是正确的,但我想向您展示另一种方法。
您可以使用服务公开吊舱:
$ kubectl expose pod app3-86499b66d-dfwf7 --port 8000 --name app3
service/app3 exposed但是在这种情况下,pod是使用pod模板哈希引用的,因此当重新创建时,服务将不再工作。
这就是为什么更好的选择是公开部署:
$ kubectl expose deployment app3 --port 8000
service/app3 exposed现在您可以使用端口转发功能访问它,如下所示:
$ kubectl port-forward service/app3 8000:8000
Forwarding from 127.0.0.1:8000 -> 8000
Forwarding from [::1]:8000 -> 8000另外,第二种方法是负载平衡,所以如果您有超过一个副本,它将为您处理流量分配。
https://stackoverflow.com/questions/63534950
复制相似问题