首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动运行端口转发的脚本

自动运行端口转发的脚本
EN

Stack Overflow用户
提问于 2020-08-22 10:08:03
回答 2查看 3.5K关注 0票数 2

当我运行这个脚本时,我想要创建一个脚本,它将自动地为一个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

每一次部署都会发生变化。

代码语言:javascript
复制
-86499b66d-dfwf7

知道如何使它与脚本一起工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-22 13:46:54

代码语言:javascript
复制
POD_NAME=`kubectl get pod -n webide-system | grep app3 | sed 's/ .*//'`

kubectl port-forward pods/$POD_NAME  8000:8000  -n web
票数 4
EN

Stack Overflow用户

发布于 2020-08-24 10:15:15

@Beta提供的答案是正确的,但我想向您展示另一种方法。

您可以使用服务公开吊舱:

代码语言:javascript
复制
$ kubectl expose pod app3-86499b66d-dfwf7 --port 8000 --name app3
service/app3 exposed

但是在这种情况下,pod是使用pod模板哈希引用的,因此当重新创建时,服务将不再工作。

这就是为什么更好的选择是公开部署:

代码语言:javascript
复制
$ kubectl expose deployment app3 --port 8000
service/app3 exposed

现在您可以使用端口转发功能访问它,如下所示:

代码语言:javascript
复制
$ kubectl port-forward service/app3 8000:8000
Forwarding from 127.0.0.1:8000 -> 8000
Forwarding from [::1]:8000 -> 8000

另外,第二种方法是负载平衡,所以如果您有超过一个副本,它将为您处理流量分配。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63534950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档