2017-05-30 75 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並重新啓動它,這將正確釋放資源並獲得主要收益。