为公共 GKE 集群设置 Cloud NAT

2023-12-26

我想设置一个 NAT 网关,使用云NAT https://cloud.google.com/nat/docs/overview,以便公共 GKE 集群中的 VM/Pod 使用静态 IP 地址。

我面临的问题是 NAT 网关似乎只能在虚拟机没有其他选项的情况下使用,即:

仅当流量没有其他匹配路由或路径时,GCP 才会使用 Cloud NAT 转发流量。

但在公共 GKE 集群的情况下,虚拟机具有临时外部 IP,因此它们不使用网关。

根据文档:

如果您在虚拟机的接口上配置外部 IP [...],则不会对此类数据包执行 NAT。但是,分配给接口的别名 IP 范围仍然可以使用 NAT,因为它们无法使用外部 IP 访问 Internet。

And

通过此配置,您可以通过 SSH 直接连接到 GKE 虚拟机,同时让 GKE Pod/容器使用 Cloud NAT 访问互联网。

这就是我想要的,但我不知道这里到底要设置什么。

暗示着什么alias IP ranges assigned to the interface can still use NAT以及如何设置?


“不幸的是,目前情况并非如此。虽然 Cloud NAT 仍处于 Beta 阶段,但某些设置尚未完全到位,因此即使使用 IP 别名,Pod 仍在使用 SNAT。由于对节点 IP 的 SNAT,Pod 将不使用 Cloud NAT。”

事实上,正如帕特里克·W 上面所说,它目前并没有按照记录的那样工作。我也尝试过,并与 Kubernetes Engine 频道中 GCP Slack 小组的人员进行了交谈。他们还在测试中确认它仅适用于 GKE 私有集群。我们还没有开始使用私有集群。我找不到关于这个简单问题的可靠文档:如果我创建一个私有集群,我仍然可以在该集群中拥有公共 K8S 服务(又名负载均衡器)吗?有关私有 GKE 集群的所有文档都表明您不希望任何外部流量进入,但我们正在 GKE 集群上运行面向互联网的生产服务。

我向 GCP 支持人员提交了有关 Cloud NAT 问题的票证,他们的说法如下:

“我一直在检查您的配置,Cloud NAT 不起作用的原因是您的集群不是私有的。 要将 Cloud NAT 与 GKE 结合使用,您必须创建一个私有集群。在非私有集群中,集群的公共 IP 地址用于主节点和节点之间的通信。这就是 GKE 没有考虑您拥有的 Cloud NAT 配置的原因。 创建私有集群将允许您结合 Cloud NAT 和 GKE。

我知道我们的文档中对此还不是很清楚,我已报告对此进行了澄清并准确解释了它应该如何工作。”

我回复要求他们按照记录进行操作,而不是更改他们的文档。我正在等待他们的更新...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为公共 GKE 集群设置 Cloud NAT 的相关文章

随机推荐

  • 如何使用Python将主机名添加到known_hosts?

    我正在使用此代码将服务器添加到known hosts subprocess Popen sshpass p password ssh o StrictHostKeyChecking no add key stdout subprocess
  • SELECT DISTINCT 可以与 Perl 的 DBD::CSV 一起使用吗?

    我在网上找到了一个 SELECT example 当我在脚本中尝试它时 我收到此错误消息 Specifying DISTINCT when using aggregate functions isn t reasonable ignored
  • 在Android Gradle任务中获取编译后的.class输出目录

    我正在为我的 Android 项目创建一个 Gradle 任务 它需要知道编译后的路径 class文件 我怎样才能得到这条路径 我找到了建议 here https stackoverflow com a 26667774 3004881 a
  • Nuxtjs 与 scrollmagic 给我“窗口未定义”

    我想将scrollmagic 与nuxtjs 一起使用 我通过npm安装了scrollmagic npm install scrollmagic 在我的 nuxt config js 文件中我添加了 build vendor scrollm
  • 有没有办法否定正则表达式?

    给定一个正则表达式R它描述了一种常规语言 没有花哨的反向引用 有没有一种算法方法来构造正则表达式R 描述除以下描述的单词之外的所有单词的语言R 应该可以作为维基百科 http en wikipedia org wiki Regular la
  • useQuery 是否在服务器端渲染上运行?

    我是 Next js 的新手 对 Next js 中的客户端渲染和服务器端渲染有一些疑问 我发现 Next js 有两种获取数据的方法 其中之一是使用useQueryhook 但只能在 React 组件函数上调用 这是否意味着它仅在从客户端
  • jquery 1.6.1 - 选择 xml

    在 jquery 1 4 2 中 我可以通过执行以下操作来选择驻留在 html 页面中的 xml var xmlSettings xmlSettings 0 这与 document getElementById xmlSettings th
  • 打字稿找不到模块

    Filter ts mustache js 和 redux 3 5 2 js 位于同一目录 Scripts 中 Filter ts 有以下代码
  • Java 文件 - 打开文件并写入[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道我们应该在问题中添加一段代码
  • 从 MySQL 工作台正向工程到 SQL Server?

    是否可以将工程从 MySQL Workbench 转发到 SQL Server 2010年 当有人问这个问题时 答案是 不是以一种简单的方式 你需要创建一个 MySQL 模式 然后使用一些工具将其转换为MSSQL 然而 2014 年 菲利普
  • Redux Thunk 与 Typescript

    我正在学习 Typescript 并且正在尝试实现一个简单的 React Redux 应用程序 当我使用同步操作时 它工作正常 但问题出在异步操作上 我正在关注官方的 redux 教程 首先我声明会话的状态 export interface
  • 我可以使用 jquery 操作 css 来更改带有 base64 字符串的背景图像吗

    问题就在这里 我有一个 base64 图像字符串 它是通过 ajax 从数据库动态检索的 data image png base64 iVBORw0KGgoAAAANSUhEUgAAAvsAAAJECAYAAACIHevuAAAgAElEQ
  • 为什么 Rake 任务增强在我的本地环境和部署到 Heroku Cedar 时有所不同?

    我有这个lib tasks foo rake Rake Task assets precompile enhance do print gt gt gt gt gt gt gt gt hello from precompile end Ra
  • go :术语“go”未被识别为 cmdlet、函数、脚本文件或可操作程序的名称

    这个问题已得到解答here https stackoverflow com questions 48602324 the term go is not recognized as the name of a cmdlet function
  • Python if 语句未按预期工作

    我目前有代码 fleechance random randrange 1 5 print fleechance if fleechance 1 or 2 print You failed to run away elif fleechanc
  • 检查集合的集合是否成对不相交

    确定集合是否成对不相交的最有效方法是什么 即验证所有集合对之间的交集是否为空 这样做的效率如何 当且仅当它们并集的大小等于它们大小之和时 集合中的集合是成对不相交的 此语句适用于有限集 def pairwise disjoint sets
  • 当元素进入视口时 JavaScript/jQuery 添加类?

    当我想要应用类的元素进入视口时 有没有办法添加类 或者当屏幕底部距离元素顶部一定距离时 现在我想要使用这样的效果 if document scrollTop gt 100 graph line two addClass graph 75 问
  • 从域中提取二级域? - Python

    我有一个域列表 例如 英国网站 site com 英国网站 网站 jpn com 英国网站 site it 域名还可以包含第三级和第四级域 例如 test example site org uk test2 site com 我需要尝试提取
  • 更新多个 SharePoint 列表项

    我有一个 InfoPath 表单 当提交到 SharePoint 表单库时 还会将单个项目添加到任务列表中 任务列表中的每个项目都包含一个人员字段 该字段可能包含多个姓名 我的表单中的代码可以在自定义列表中创建单独的项目 每个项目对应 人员
  • 为公共 GKE 集群设置 Cloud NAT

    我想设置一个 NAT 网关 使用云NAT https cloud google com nat docs overview 以便公共 GKE 集群中的 VM Pod 使用静态 IP 地址 我面临的问题是 NAT 网关似乎只能在虚拟机没有其他