我有不止一个Kubernetes上下文。当我更改上下文时,为了重做pachtctl port-forward &命令,我一直使用kill -9终止端口转发。我想知道这是不是正确的做法。
更详细地说:
一开始我在Kubernetes上下文中,我们将其称为context_x,然后我想将上下文更改为我的本地上下文,称为minikube。我也想查看这个minikube上下文的repos,但是当我使用pachctl list-repo时,它仍然显示context _x的Pachyderm repos。当我执行pachctl port-forward时,我得到一条关于地址已在使用的错误消息。因此,我必须对这些端口转发进程执行ps -a,然后终止-9,然后再次执行pachctl port-forward命令。
下面是我所做的一个例子:
$ kubectl config use-context minikube
$ pachctl list-repo #doesn't show minikube context's repos
$ pachctl port-forward &
...several error messages along the lines of:
Unable to create listener: Error listen tcp4 127.0.0.1:30650: bind: address already in use
$ ps -a | grep forward
33964 ttys002 0:00.51 kubectl port-forward dash-12345678-abcde 38080:8080
33965 ttys002 0:00.51 kubectl port-forward dash-12345679-abcde 38081:8081
37245 ttys002 0:00.12 pachctl port-forward &
37260 ttys002 0:00.20 kubectl port-forward pachd-4212312322-abcde 30650:650
$ kill -9 37260
$ pachctl port-forward & #works as expected now此外,pachctl port-forward进程37245上的kill -9不起作用,似乎我必须在kubectl port-forward上杀死-9
发布于 2017-06-06 14:06:35
您可以根据需要指定端口,作为docs中提到的使用-p标志的不同端口是否有不执行此操作的原因?
此外,在后台启动进程,然后向其发送SIGKILL会导致资源未正确分配,因此当您尝试再次加入时,您可能会看到错误,因为它无法再次分配相同的端口。所以试着在最后不使用&来运行它。
因此,每当你改变上下文时,你所需要做的就是CTRL + C并重新启动它,这将正确地释放资源并获得收益。
发布于 2019-09-25 23:27:30
我只是想为找到它的人更新这个答案-pachctl现在支持上下文,并且Pachyderm上下文包括对其关联的kubectl上下文的引用。当您切换到新的pachctl上下文时,pachctl现在将自动使用关联的kubectl上下文(您仍需要在kubectl中切换上下文)
https://stackoverflow.com/questions/44269634
复制相似问题