如何停止kubectl代理

时间:2017-09-19 13:43:42

标签: kubernetes kubectl

我执行了以下命令:

kubectl proxy --port=8081 &
kubectl proxy --port=8082 &

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

curl http://localhost:8081/api/
curl http://localhost:8082/api/

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

7 个答案:

答案 0 :(得分:16)

我认为“kubectl方式”根本不是后台代理,因为它是一个在没有进一步身份验证的情况下访问本地计算机上的API的短暂运行过程。

除了kill或^ C(如果不在后台),除了停止它之外没有办法。

您可以使用标准shell技巧,因此执行grep -Ewcv "*[aeiou]*" filename.txt 然后^ C将起作用或fg

答案 1 :(得分:9)

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

netstat -tulp | grep kubectl 

然后运行sudo kill -9 <pid>以终止进程。

答案 2 :(得分:3)

根据平台的不同,您可以将代理包装在service / daemon中,但是似乎有点过头了,我只是添加别名或函数来启动它们,并在您的终端/ 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"
}

答案 3 :(得分:1)

过滤(grep)所有“ kube” pid并使用循环杀死:

for pid in `netstat -tulp | grep kube | awk '{print $7}' | awk -F"/" '{print $1}'| uniq`
 do
   kill -9 $pid
 done

答案 4 :(得分:0)

ps -ef | grep "kubectl proxy"

将为您显示进程的PID

然后您可以使用

停止它
kill -9 <pid>

答案 5 :(得分:0)

以下内容在MacOS中对我有用

pkill -9 -f "kubectl proxy"

答案 6 :(得分:0)

试试这个,当然使用你的端口号

function highlightSelected() {
  var doc  = DocumentApp.openById('<your document id');
  var selection  = 'highlight me text';
  var highlightStyle = {};
  highlightStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#FF0000';
  var paras = doc.getParagraphs();
  var textLocation = {};
  var i;

  for (i=0; i<paras.length; ++i) {
    textLocation = paras[i].findText(selection );
    if (textLocation != null && textLocation.getStartOffset() != -1) {
      textLocation.getElement().setAttributes(textLocation.getStartOffset(),textLocation.getEndOffsetInclusive(), highlightStyle);
    }
  }
}