如何停止kubectl代理

iti*_*iic 16 kubernetes kubectl

我执行下面的命令:

kubectl proxy --port=8081 &
kubectl proxy --port=8082 &
Run Code Online (Sandbox Code Playgroud)

当然,我有2个可访问的端点:

curl http://localhost:8081/api/
curl http://localhost:8082/api/
Run Code Online (Sandbox Code Playgroud)

但同时两个正在运行的进程提供相同的内容.如何以"kubectl"方式停止其中一个进程?当然,我可以杀死这个过程,但它似乎是一种不那么优雅的方式......

Jan*_*art 19

我认为"kubectl方式"根本不是后台代理,因为它是一个短期运行的过程来访问本地机器上的API而无需进一步的身份验证.

除了kill或^ C之外没有其他方法可以阻止它(如果不是在后台).

你可以使用标准的shell技巧,所以执行fg^ C将工作或kill %1


小智 11

运行此命令以确定进程ID(pid):

netstat -tulp | grep kubectl 
Run Code Online (Sandbox Code Playgroud)

然后运行sudo kill -9 <pid>以杀死进程.


Phi*_*her 7

根据平台的不同,您可以将代理包装在服务/守护进程中,但似乎有点矫枉过正,我只是添加别名或函数来启动它们,并在您的终端/shell 配置文件中获取它们,以使其更容易。

https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html

或者

kubectl-proxy-start() {
    kubectl proxy &
}

kubectl-proxy-kill() {
    pkill -9 -f "kubectl proxy"
}
Run Code Online (Sandbox Code Playgroud)


小智 6

ps -ef | grep "kubectl proxy"
Run Code Online (Sandbox Code Playgroud)

将向您显示进程的 PID

然后你可以停止它

kill -9 <pid>
Run Code Online (Sandbox Code Playgroud)