如何确保 GKE 中的 Jenkins slave 与其 master 安全通信?

How to make sure a Jenkins slave in GKE communicates safely with its master?

我计划在这样的设置中使用 Jenkins Kubernetes plugin,在该设置中,现有的 Jenkins 设置在 VM 上具有主从设备,主设备留在当前设置中,从设备由 [=24 动态配置=] Kubernetes 引擎 (GKE)。

我的目标是通过同时提供大量代理来降低从站可以自动缩小到最低限度的时间成本,并提供恒定的构建速度。我选择这种方法是因为它需要最少的努力。

Afaik 我需要为 JNLP 转发端口 8080 和 50000。这是一个潜在的安全风险,因为 JNLP 不受任何形式的加密保护,并且 Jenkins 和第三方系统的凭据可能会被拦截,并且主服务器上的任意命令 运行。

有启用 Slave to master access control 的选项,但据我所知,这不是防止凭据拦截的保护措施。

是否可以在 GKE 中创建 IP 或其他隧道?主节点的 IP 是不可预测的,维护到可能终止和重新创建的节点池的正确隧道目的地似乎需要大量开销。

我知道将 Jenkins master 也转移到 Kubernetes 并让它通过在包含的和美妙的 k8s 世界中动态配置代理来发挥它的魔力可能不是火箭科学。但是,我需要将它移到那里,如果更简单的方法也能完成工作,我不想花时间只是为了看看解决方案。

您可以使用 Google Cloud VPN 服务从您的 VM 到 GKE 中的资源建立安全连接。 Here you can find official documentation and here第三方提供的实际使用示例

JNLP 版本 4(默认情况下在端口 50000 上)已加密并允许资源安全地进出 Google 云服务。可以在 Jenkins 强制执行协议版本。