4

我有不止一个 Kubernetes 上下文。当我更改上下文时,我一直在使用kill -9 终止端口转发以重做pachtctl port-forward &命令。我想知道这是否是正确的做法。

更详细地说:

我从 Kubernetes 上下文开始,我们将其称为 context_x。然后我想将上下文更改为我的本地上下文,称为 minikube。我还想查看这个 minikube 上下文的存储库,但是当我使用 时pachctl list-repo,它仍然显示 context_x 的 Pachyderm 存储库。当我这样做时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 不起作用,看来我必须在进程上 kill -9kubectl port-forward

4

2 回答 2

3

您可以根据需要指定端口,使用文档-p中提到的标志作为不同的端口是否有不这样做的原因?

同样在后台启动进程然后发送它SIGKILL会导致资源未正确分配,因此当您尝试再次加入时,您可能会看到它给出错误,因为它无法再次分配相同的端口。因此,请尝试在&最后不运行它。

因此,每当您更改上下文时,您需要做的就是CTRL + C重新启动它,这将正确释放资源并获得主题增益。

于 2017-06-06T06:06:35.370 回答
0

只是想为找到它的任何人更新这个答案 - <code>pachctl 现在支持上下文,并且 Pachyderm 上下文包含对其关联kubectl上下文的引用。当您切换到新pachctl上下文时,pachctl现在将kubectl自动使用关联的上下文(您仍然需要在 中切换上下文kubectl

于 2019-09-25T15:27:29.867 回答