Google Cloud Kubernetes Ingress 静态 IP 地址未反映且与设置不同

2023-12-02

我正在尝试在 Google Cloud 上使用 GKE 部署完整的 Web 应用程序(后端为 Nodejs,前端为 Angular)。然后为其启用 SSL。

我创建了一个全局 IP 地址(随后在列表中看到了它): gcloud 计算地址创建 mathbux-static-ip --global

之后,我部署了后端和前端 - 容器和 yaml 文件。

How it looks like in Google Cloud

这里的问题是入口控制器上反映的IP地址来自任何地方,并且与我设置的不同(我上面刚刚创建的静态IP地址)。

我遵循了如何在 GKE 上安装 Nginx-ingress 设置的指南:https://kubernetes.github.io/ingress-nginx/deploy/#gce-gke

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/cloud/deploy.yaml

这里有一个snippet我的 ingress.yaml 的一部分:

.... truncated . . .
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mathbux-ingress-frontend
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/ingress.global-static-ip-name: "mathbux-static-ip"
    networking.gke.io/managed-certificates: mathbux-ssl
    nginx.ingress.kubernetes.io/rewrite-target: /

这是我的托管证书文件的片段,如 Google 文档中所示:

apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
  name: mathbux-ssl
spec:
  domains:
    - mathbux.com
    - www.mathbux.com

当我访问生成的 IP 地址时,整个应用程序完美运行,并且仅按预期运行:

1.) IP 地址不是我创建并假定在 ingress.yaml 上设置的特定静态全局 IP 地址

2.) 相应地,SSL 也会失败。 (请注意,我已经将我的域名指向我手动创建的静态 IP 地址)


您正在使用的注释 -kubernetes.io/ingress.global-static-ip-name- 可用于默认的 GKE 入口,它本质上是一个 google 负载均衡器 - 请参阅此处的文档 -https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer.

但是,您所做的是部署 ingress-nginx (这是一个不同的入口提供程序)并通过以下方式将入口资源分配给它:kubernetes.io/ingress.class: nginx这本质上使您的静态 ip 注释毫无意义。

因此,您需要决定要使用哪个入口。如果您想使用 GKE 的负载均衡器,请删除入口 nginx 并遵循我上面链接的默认 GKE 入口的文档。

如果您想使用 ingress nginx,您可以在这里找到它的文档,包括 ssl 配置 -https://kubernetes.github.io/ingress-nginx/.

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

Google Cloud Kubernetes Ingress 静态 IP 地址未反映且与设置不同 的相关文章

随机推荐

  • 分割文件 - Java/Linux

    我有一个包含近 2 5 亿个字符的大文件 现在 我想将其分成几个部分 每个部分包含 3000 万个字符 因此前 8 部分将包含 3000 万个字符 最后一部分将包含 1000 万个字符 另一点是 我想在下一部分的开头包含每个文件的最后 10
  • 如何通过 ZF2 FormElementManager 将 Doctrine ObjectManager 传递到表单

    我想在 ZF2 中创建自定义表单元素 这需要 FormElementManager 我目前在表单创建中使用 Doctrine Hydrator 如下所示本教程 在此方法中 在控制器中创建一个 ObjectManager 对象 并在实例化时将
  • 基于 R 中的值进行迭代和分配的函数

    我正在编写一个函数 该函数迭代一个帐户列表 每个帐户都有一个关联的值 并为该帐户分配名称列表中的一个名称 名称列表将具有关联的值 我希望分配的名称是具有最小值的名称 name totalvalue Jeff 54 Christy 43 Ma
  • Adobe flash cs6 输出窗口在 .exe 文件中执行 Filesteam 操作时自动关闭,但在 Flash 调试模式下工作正常

    我在用Adobe Flash CS6用于创建桌面应用程序 在该应用程序中我使用闪存文件系统文件流保存文本文件 我不想使用文件参考因为我不想显示保存对话框 当我在导出的文件中调用 new FileStream 时 swf or exe文件后
  • 使用 URL 中的 ID 从 mySQL 选择数据

    我有一个包含列的表 GroupID GroupName GroupDesc Overs 1 Test Group Description Yes 我有一个名为 list php 的页面 它当前为组表 上图 中数据库中的每一行创建 URL 该
  • 如何中断 Scanner.nextline() 调用

    SO 上有很多关于中断读取 system in 的线程 但我在这里寻找的是一些关于如何最好地编码我想要实现的目标的建议 我有一个getlogin 需要执行以下操作的方法 要求用户输入所需的登录环境详细信息 如果 6 秒后用户没有输入有效值
  • 从 Android 应用程序中的 Sqlite 数据库读取数据。

    我正在尝试从数据库读取数据 我将数据库导入到sqlite手动 现在只想在 android 应用程序中建立连接 并希望读取行并将其显示在文本字段中 但是我使用的代码要么每次都创建新数据库 要么在该数据库中再次创建表 我出现运行时错误 我的代码
  • 像 € 这样的 Html 实体在 CSV 转换中不会转换为其符号

    我使用过 CSV 解析器http code google com p parsecsv for php 将我的报告导出为 PHP 中的 CSV 我已显示销售总额 euro XXXX XX 在浏览器以及Excel 导出后 中 显示为欧元符号
  • 使用 JavaScript 淡出 Mp3 歌曲

    我正在尝试创建一个嵌入了一些 JavaScript 的 HTML 文件 该文件允许我按下按钮并开始淡出歌曲 我已经设法让它工作 以便它播放歌曲 这是一个开始 但我一直在尝试使用第二个功能来尝试降低音量并在该功能上设置延迟 有人可以帮忙吗
  • WPF C# Web浏览器滚动到顶部菜单

    我有一个网格 里面有菜单和滚动查看器 在滚动查看器中 我有一个带有另一个网格的组框和一个网络浏览器元素 现在 当我使窗口小于网络浏览器内容的内容并在滚动查看器中向下滚动时 问题就出现了 所有内容都有边距 因此它位于顶部菜单下方 但网络浏览器
  • 需要在java中以某种方式识别本地机器

    我试图找出应用程序正在运行的本地计算机的名称 或唯一标识特定计算机的其他方式 我一直在用这个 String hostname java net InetAddress getLocalHost getHostName 效果很好 但我碰巧在分
  • 无法使用 AWS Glue 中的 cx_oracle 连接 Oracle 数据库

    我正在尝试使用 cx oracle 从 AWSglue 连接 Oracle 数据库 但收到此错误消息 数据库错误 DPI 1047 无法找到 64 位 Oracle 客户端库 libclntsh so 无法打开共享对象文件 没有这样的文件或
  • 在不同的 Activity 或 Fragment 之间共享数据的正确方法是什么?

    我需要一个应该具有 UI 工作流程的应用程序 其中用户应该能够浏览应用程序的特定部分 可以是 ListView 或 GridView 并且他可以点击某个项目以显示该特定项目的详细信息 现在 如果用户向右滑动 即ViewPager 视图分页器
  • 更改 lubridate 函数以从星期一而不是星期日开始

    dates lt NULL date lt as Date 01 01 2014 d m Y dates lt data frame date as Date character cal day in year num numeric ca
  • 将大文本文件添加到资产文件夹

    我正在开发一个 Android 2 2 应用程序 我想向 Android 项目添加一些大文本文件 4 5MB 或更多 首先我不知道是否可以将此类大文件添加到资产文件夹中 但是 如果可以的话 是否可以压缩它们 如何压缩文件 并解压 还有其他更
  • 如何从 WebAPI 传递 pdf 并从 MVC 控制器读取 pdf?

    我有一个 Web API 服务 应该返回 PDF 然后我尝试调用该 WebAPI 方法来读取 PDF 这是我的 API 方法 HttpPost Route GetTestPDF public HttpResponseMessage Test
  • Git 推送问题

    我有一个从 github 上新克隆的存储库 地址是git github com JoshClose CsvHelper git如果你想尝试一下 我正在使用 tortoisegit 但如果需要的话 我会使用命令行来解决这个问题 我可能需要稍微
  • 如何动态改变webView的高度?

    我目前正在使用webView来显示新闻 在新闻下面我打算放一些按钮 所以我需要获取webView的高度 以便在所有下载后根据webView的高度改变按钮的位置 在其他那么 如何动态改变webView的高度呢 try this void we
  • ref($variable) 何时返回“IO”?

    这是文档的相关摘录ref功能 返回的值取决于引用所引用的事物的类型 内置类型包括 SCALAR ARRAY HASH CODE REF GLOB LVALUE FORMAT IO VSTRING Regexp 基于此 我想象调用ref在文件
  • Google Cloud Kubernetes Ingress 静态 IP 地址未反映且与设置不同

    我正在尝试在 Google Cloud 上使用 GKE 部署完整的 Web 应用程序 后端为 Nodejs 前端为 Angular 然后为其启用 SSL 我创建了一个全局 IP 地址 随后在列表中看到了它 gcloud 计算地址创建 mat