2017-05-30 73 views
2

我有多个Kubernetes上下文。当我更改上下文时,我一直在使用kill -9来终止端口转发,以便重新执行pachtctl port-forward &命令。我想知道这是否是正确的做法。如何将Pachyderm与正确的Kubernetes环境联系起来?

的详细信息:

我开始在Kubernetes语境之中,我们将context_x调用它。然后,我想将上下文更改为我的本地环境,称为minikube。我也想看看这个minikube上下文的回放,但是当我使用pachctl list-repo时,它仍然显示context_x的Pachyderm回购。当我做pachctl port-forward时,我收到一条关于该地址已被使用的错误消息。所以我必须ps -a,然后在这些端口转发进程中kill -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 

而且,杀-9在pachctl port-forward过程37245不起作用,好像我要杀死-9在kubectl port-forward

回答

2

如果您愿意,可以指定端口,如docs中提到的使用-p标志的不同端口。是否有原因不做?

还在后台启动进程,然后发送SIGKILL会导致资源未正确分配,因此当您尝试再次加入时,您可能会看到它发出错误,因为它无法再分配相同的端口。所以试着在没有&的情况下运行它。

所以,只要你改变上下文,你需要做的就是CTRL + C并重新启动它,这将正确释放资源并获得主要收益。