Kubernetes Ingress 在 nginx 反向代理后面运行

2024-05-13

我已经在可以从互联网访问的服务器上安装了 minikube。

我创建了一个可用的 kubernetes 服务:

>kubectl get service myservice
NAME        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
myservice   10.0.0.246   <nodes>       80:31988/TCP   14h

minikube的IP地址是:

>minikube ip
192.168.42.135

我想要网址http://myservice.myhost.com(即端口 80)映射到 minikube 中的服务。

我在主机上运行 nginx(与 kubernetes 完全无关)。我可以设置一个虚拟主机,将 URL 映射到192.168.42.135:31988(节点端口)并且工作正常。

我想使用入口。我已经添加并启用了入口。但我不确定:

a) yaml 文件应包含什么

b) 如何将来自浏览器的端口 80 上的传入流量重定向到入口和 minikube。

c) 我还需要使用 nginx 作为反向代理吗?

d) 如果是这样,ingress-nginx 运行在哪个地址(以便我可以将流量映射到它)?


Setup

首先,你需要一个nginx 入口控制器 https://github.com/kubernetes/ingress-nginx.

nginx 实例将侦听主机 80 和 443 端口,并将每个 HTTP 请求重定向到定义了入口配置的服务,如下所示。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-service-ingress
annotations:
  # by default the controller redirects (301) HTTP to HTTPS,
  # the following would make it disabled.
  # ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: myservice
          servicePort: 80

Use https://{host-ip}/要访问 myservice,主机应该是运行 nginx 控制器的主机。

Outside

通常你不需要在 kubernetes 集群之外安装另一个 nginx。

虽然 Minikube 有点不同,它是在虚拟机而不是主机中运行 kubernetes。

我们需要做一些端口转发,例如 host:80 => minikube:80,在主机中运行反向代理(如 nginx)是一种优雅的方式。

也可以通过以下方式完成在 Virtualbox 中设置虚拟网络端口转发 https://www.virtualbox.org/manual/ch06.html#natforward.

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

Kubernetes Ingress 在 nginx 反向代理后面运行 的相关文章

  • Kubernetes Web UI(仪表板)缺少图表

    我已经使用 Kubeadm v1 6 安装了 Docker v1 13 和 Kubernetes 然后我安装了 Web UI 仪表板 我可以访问它 但缺少 CPU 内存使用图 为什么会发生这种情况 对我来说 安装后使用图就起作用了heaps
  • 如何为某些节点分配命名空间?

    有什么办法可以配置吗nodeSelector在命名空间级别 我只想在此命名空间的某些节点上运行工作负载 为了达到这个目的 你可以使用PodNodeSelector准入控制器 首先 您需要在您的kubernetes apiserver Edi
  • NGINX 上的 SSL 终止

    我已经购买了 SSL 证书 并在验证模数时正确地将其捆绑在一起 即https kb wisc edu middleware 4064 https kb wisc edu middleware 4064 那么哈希值是相同的 我已将证书和密钥移
  • Openresty 中的并发模型是什么?

    我很难理解 openresty 或 nginx 的并发模型 我读了Lua变量作用域 http wiki nginx org HttpLuaModule Lua Variable Scope 它解释了变量的生命周期 但它没有说明对它们的并发访
  • 如何修复 Nginx 自动 301 重定向到带有尾部斜杠的相同 URL?

    当我尝试将 Web 应用程序的子目录中的索引文件访问到相同的 URL 但附加了斜杠 时 Nginx 出现了不良行为 它正在重新路由请求 我有一个简单的 Web 应用程序 其中设置了一个根目录和其中的许多子目录 每个子目录中都有一个 inde
  • 抑制 nginx 访问被拒绝错误日志

    我在 nginx 中设置了一些规则来拒绝 IP 访问 这很有效 但对于来自被拒绝 IP 的每个请求 都会记录以下开头的错误 error 7325 0 5761 access forbidden by rule client 有没有办法抑制这
  • 如何使用gunicorn和bokeh服务配置Nginx

    我想提供一个 Flask 应用程序 该应用程序使用本地网络服务器上的嵌入式散景服务 为了说明这一点 我使用了一个例子散景服务示例 https github com bokeh bokeh blob 0 12 11 examples howt
  • Nginx merge_slashes 重定向

    我在我的 Java 应用程序中使用 nginx 我的问题是 nginx 正在合并斜杠 我无法将我的网站重定向到正确的版本 例如 http goout cz cs koncerty praha 被合并到 http goout cz cs ko
  • 在 docker 中将 pgadmin 连接到 postgres

    我有一个docker compose与服务文件python nginx postgres and pgadmin services postgres image postgres 9 6 env file env volumes postg
  • Logrotate - nginx 日志不在 docker 容器内旋转

    我有一个运行 nginx 的 docker 容器 它正在将日志写入 var log nginxLogrotate 安装在 docker 容器中 并且 nginx 的 logrotate 配置文件已正确设置 尽管如此 logrotate 仍不
  • 连接被拒绝:当uwsgi和nginx在不同容器中时

    我正在尝试设置两个 docker 容器 是的 无需 docker compose 分开 一个带有 nginx 另一个带有带有基本 Flask 应用程序的 uwsgi 我在 docker 内的同一网络中运行容器我的 nginx 配置已添加 链
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • 如何将 kubectl 配置文件与 ~/.kube/config 合并?

    有没有一个简单的kubectl命令采取kubeconfig文件 包含 cluster context user 并将其合并到 kube config 文件作为附加上下文 Do this export KUBECONFIG kube conf
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • 如何解决 https://kubernetes-charts.storage.googleapis.com”不是有效的图表存储库

    我正在开发 helm 2 并尝试将 Tiller 部署为 pod gt helm init service account tiller 但我遇到以下错误 错误 初始化错误 看起来像 https kubernetes charts stor
  • 如何将我的 pod 日志存储在持久存储中?

    我已经使用以下命令为我的 Pod 生成了日志kubectl logs pod name 但我想将这些日志保存在一个卷 某种持久存储 中 因为如果 Pod 宕机 容器日志将被清除 有没有办法做到这一点 我必须写某种脚本吗 我已经阅读了很多答案
  • 如何避免 nginx“上游发送太大的标头”错误?

    我正在运行 nginx Phusion Passenger 和 Rails 我遇到了以下错误 upstream sent too big header while reading response header from upstream
  • 什么是 Kubernetes 清单?

    我在网上搜索过 大多数链接似乎都提到了清单 但没有实际解释它们是什么 什么是清单 它基本上是 Kubernetes API 对象描述 配置文件可以包含其中的一个或多个 即 Deployment ConfigMap Secret Daemon
  • Kubernetes 反关联规则将 Deployment Pod 分散到至少 2 个节点

    我在 k8s 部署中配置了以下反关联性规则 spec selector matchLabels app my app environment qa template metadata labels app my app environmen
  • ResourceVersion 和 Generation 之间有什么区别?

    在 Kubernetes 对象元数据中 有的概念resourceVersion and generation https github com kubernetes community blob master contributors de

随机推荐

  • 替代 header("Content-type: text/xml");

    是否存在与以下内容等效的内容 header Content type text xml 我将 Google 地图与 Wordpress 一起使用 但收到 标头已发送 错误 我已经检查了所有文件并删除了所有空白 但错误仍然出现 所以只是想知道
  • 我想在 64 位模式下运行我的视觉工作室

    我正在 NET 3 5 中编写 Web 服务 在此我必须访问 SharePoint 2010 数据 但 SharePoint 需要我的应用程序使用 64 位模式 Visual Studio 默认处于 32 位模式 如何以 64 位运行 Vi
  • 将 JSON 转换为对象失败 - 无法将当前 JSON 对象反序列化为 System.Collections.Generic.List

    我正在使用 www textlocal in 的 API 它返回 JSON 格式的对象 JSON warnings message Number is in DND numbers 917000000000 balance 900 batc
  • 查找并替换超过 1 个单词?

    我需要使用 jQuery 更改页面上的一堆不同的单词 这是我到目前为止的代码 function var thePage body thePage html thePage html replace My Classes g My Level
  • C++ 凯撒密码程序

    我正在尝试用 C 编写凯撒密码程序 我使用四个函数 一个用于选择 Shift key 两个用于加密和解密 最后一个用于实现凯撒密码 使用输入文件读取文本并将加密或解密的文本输出到输出文件中 我正在尝试运行代码 但它崩溃了 我认为问题出在凯撒
  • 检测 UISwitch 的变化

    这听起来微不足道 但我注意到一些奇怪的地方 我已经为 UISwitch 的 Value Changed 事件连接了一个处理程序 我会做什么expect是每次调用处理程序时 开关的值都会改变 但实际上并非如此always案子 如果您快速按下开
  • 通过 Maven 到达罗马

    我正在使用 Maven 并且希望开始在项目中使用 Rome 当我在 Eclipse 的 m2 实例中查找 rome 时 我得到了一些结果 net java dev rome rome 1 0 0 2010 04 17 org rometoo
  • Beanstalk 部署忽略 .ebextensions 中的 nginx 配置文件

    我在单实例 Elastic Beanstalk 环境中托管 Java Web 应用程序 并添加了几个 ebextension 文件 这些文件在每次部署时成功为我创建配置文件 然而 我无法找到一种方法让 Beanstalk 在 etc ngi
  • Python 中 datetime.timedelta 的人类可读日期时间间隔?

    我发现自己经常需要在 python 配置文件中指定时间跨度 有没有一种方法可以让我在带有 stdlib 的 python 配置文件中指定更易读的时间范围 类似于 PostgreSQL 的 Interval 语法 或者这需要第三方库吗 澄清我
  • jQuery 按 1 个 td 的值对表行进行排序

    您将如何按以下顺序对该表进行排序pts我有的课程 table tr th rank th th team th th pts th tr tr td 1 td td Chelsea td td class pts 3 td tr tr td
  • 如何在多个包之间共享analysis_options.yaml 文件?

    我正在开发一个Flutter Module 多种的Flutter Plugins 他们之间的关系是 module取决于所有plugins 所有插件均未发布到 pub 并使用 git 依赖项 我现在需要添加analysis options y
  • 当我在空表上执行 Hibernate saveOrUpdate 时失败

    我尝试使用以下代码插入或更新数据库记录 Category category new Category category setName catName category setId 1L categoryDao saveOrUpdate c
  • 如何取消同步 WinHttp 请求?

    我的服务有一个线程可能正在执行WinHttpSendRequest当有人试图停止我的服务时 The WinHttpCloseHandle 文档 http msdn microsoft com en us library windows de
  • 将 r 数据框中的列字符串转换为数字

    我有一个数据框 其中有一列字符串 如下所示 mydata lt c 1 356670 35 355030 1 356670 35 355030 1 356620 35 355890 1 356930 35 358660 1 357000 3
  • 图中的后边

    I m having a hard time understanding Tarjan s algorithm for articulation points I m currently following this tutorial he
  • SQL Server:复制表中的列

    将表中的列中的所有值复制到同一表中的另一列的最简单方法是什么 使用单个语句 如果列具有相同的数据类型 UPDATE
  • GAE Go — 如何对不存在的实体键使用 GetMulti?

    我发现自己需要做一个GetMulti使用键数组进行操作 其中某些实体存在 但有些实体不存在 我当前的代码 如下 返回错误 datastore no such entity err datastore GetMulti c keys info
  • 将剪贴板上的图像粘贴到 Emacs Org 模式文件而不保存它

    由于我使用 Emacs Org 模式作为研究日志 有时我想通过屏幕截图来跟踪某些内容 但我绝对不想保存它们 所以我想知道是否有任何方法可以将这些数字插入到我的组织模式文件中 就像使用 word 从剪贴板复制它们一样 您想要的确切功能目前尚未
  • 将二维数组拆分为每行数组的最Pythonic方法是什么?

    我有一个函数 foo 返回形状为 1000 2 的数组 如何将其拆分为两个数组 a 1000 和 b 1000 我正在寻找这样的东西 a b foo 我正在寻找一个可以轻松推广到形状为 1000 5 左右的情况的答案 The zip idi
  • Kubernetes Ingress 在 nginx 反向代理后面运行

    我已经在可以从互联网访问的服务器上安装了 minikube 我创建了一个可用的 kubernetes 服务 gt kubectl get service myservice NAME CLUSTER IP EXTERNAL IP PORT