首页  >  问答  >  正文

GKE: 如何在通过堡垒主机进行端口转发后断开与 Pod 的连接

<p>我正在使用本地机器与在Kubernetes中部署的Pod中的数据库进行工作。要连接到它,首先需要连接到堡垒主机VM。</p> <p>基本上,这是一个双重SSH隧道:将端口3306映射到堡垒主机VM的端口3306,然后通过本地主机的3306端口。</p> <pre class="brush:php;toolbar:false;">gcloud beta compute ssh my-bastion-host --project my-gcp-project --zone us-west1-b --command "kubectl -n mynamespace port-forward app-mysqldb-12345-abcde 3306" -- -L3306:127.0.0.1:3306</pre> <p>然而,当我终止命令时,VM和mysql pod之间的连接并没有终止,我需要自动执行:首先,在堡垒主机上执行以下命令:</p> <pre class="brush:php;toolbar:false;">ps -ef|grep port-forward</pre> <p>找到进程号PROCESS_NUMBER,然后执行以下命令:</p> <pre class="brush:php;toolbar:false;">echo "kill -9 <PROCESS_NUMBER></pre> <p>终止连接。</p> <p>是否有一种方法可以在终止<code>gcloud beta compute ssh</code>时自动关闭堡垒主机与mysql pod之间的连接?</p>
P粉775723722P粉775723722418 天前505

全部回复(1)我来回复

  • P粉092778585

    P粉0927785852023-08-30 11:59:53

    尝试这个:

    gcloud beta compute ssh my-bastion-host --project my-gcp-project --zone us-west1-b --command "bash -c 'kubectl -n mynamespace port-forward app-mysqldb-12345-abcde 3306'; kill -9 $(pgrep -f port-forward)" -- -L3306:127.0.0.1:3306

    回复
    0
  • 取消回复