目前...
我在 GCP 中有一个 GKE/kubernetes/k8s 集群。我在 GCP 中有一个堡垒主机(Compute Engine VM 实例)。我已在 GKE 集群的主授权网络部分中将我的堡垒主机的 IP 列入白名单。因此,为了对kubectl
我的 GKE 运行命令,我首先需要通过运行命令 SSH 到我的堡垒主机gcloud beta compute ssh
;然后我运行gcloud container clusters get-credentials
命令以通过 GKE 进行身份验证,然后从那里我可以kubectl
像往常一样运行命令。
之后...
我希望能够直接从本地开发 CLI 对我的 GKE 集群运行 kubectl 命令。为了做到这一点,我可以将我的本地开发机器 IP 添加为我的 GKE 的主授权网络的许可条目,应该就是这样。然后我可以运行第gcloud container clusters get-credentials
一个,然后kubectl
像往常一样运行命令。
然而...
我正在寻找一种方法来避免将我的本地开发机器 IP 列入白名单。每次我将笔记本电脑带到新的地方时,我都必须从那里更新我的新 IP 的许可名单,然后才能gcloud container clusters get-credentials
在运行命令之前运行kubectl
命令。
我想知道...
有没有办法在 bastion-host 中分配一个端口号,该端口号可用于安全地向远程 GKE 集群调用 kubectl 命令?然后,我可以使用gcloud compute start-iap-tunnel
本地开发 CLI 中的命令(顺便说一句,使用 Cloud IAM 处理所有权限问题)在堡垒主机中建立到该特定端口号的 ssh 隧道。这样,对于 GKE 集群,它正在接收kubectl
来自堡垒主机(已在其主授权网络中列入白名单)的命令。但在幕后,我正在从我的本地开发 CLI(使用我的 glcoud auth credentails)对堡垒主机进行身份验证,并kubectl
从那里安全地调用命令。
这可能吗?任何人的任何想法?