问题标签 [kubernetes-ingress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
516 浏览

web-applications - 如何在 Kubernetes 上部署微服务 Web 应用程序?

我想使用 Angular 和微服务后端创建一个 Web 应用程序,为一些 REST api 提供服务。然后我想把所有东西都部署在 Kubernetes 上。

假设应用程序将提供一些饮料(咖啡和茶)。为了简化,我们假设应用程序是完全无状态的,我希望 2 拥有微服务。

如果没有 Kubernetes,我会这样做:

  1. Coffea 服务 - /api/coffea 端点的 REST API

  2. 茶服务 - /api/tea 端点的休息 API

  3. Nginx - 带有 Angular 应用程序(HTML/CSS/JS/图像等)和网关(/api/coffea 和 /api/tea 端点的代理)的静态内容

现在的问题是如何在 Kubernetes 中体现这一点?将所有内容部署在多个副本中,然后将 Coffea 和 Tea 服务公开为 NodePort,最后将 Nginx 公开为 LoadBalancer 是否足够?这是一个正确的方法吗?我应该使用 Ingress 而不是制作自己的 nginx 代理吗?如果是,那么如何使用 Ingress Controller 提供静态内容?

提前致谢!

0 投票
0 回答
651 浏览

kubernetes - Kubernetes 入口 nginx 控制器

在 kubernetes kubeadm 集群中,我部署了我的应用程序:

公开应用程序:

我的 GMT-svc:

我可以在https://noedip:30723上访问我的应用程序

按照 github doc 我设法安装 nginx- 控制器:

我暴露了 nginx-controller:

我创建了一个入口资源:

现在,当我尝试使用https://ip_master:30000通过 nginx-controller 访问我的应用程序时,我得到了默认后端 -404 以及http://ip_master:30001相同的错误,知道我的应用程序只能在 https 中访问。在入口资源中,我尝试了 servicePort: 8181 但我得到了同样的错误。有任何想法吗 ?

0 投票
1 回答
1100 浏览

proxy - Ingress Controller (Traefik) 和 Kubernetes 上的后端服务之间的安全通信

我正在尝试在 Traefik 代理后面的 Kubernetes 集群中保护 Nifi。两者都在 K8S 中作为服务运行。Traefik 使用公共证书进行保护。我希望它将调用重定向到 nifi,同时保护 Traefik(作为入口控制器)和后端 pod 之间的通信:Nifi。

看起来安全配置应该存在于我的 Ingress YAML 描述符中。看起来我应该发出一个 CA 根来生成 Nifi 自签名证书并将这个 CA 根加载到 Traefik 中,这样它就可以在与它握手时验证 Nifi 发送的证书。

但是......我不知道 1)这是否是好方法,2)我如何使用 CA Root 为 NiFi 生成我的商店(信任,......),3)我应该如何设置我的 YAML(insecureSkipVerify似乎不支持,...)

提前感谢您的帮助。

干杯,

奥利维尔

0 投票
2 回答
1026 浏览

nginx - 回复地址中缺少 ASP.NET Core 2.0、Kubernetes、https?

我有一个 ASP.NET Core 2.0 Web 应用程序部署到 Kubernetes 集群。该应用程序使用 Azure AD 对某些受保护页面进行身份验证。Kubernetes 集群设置有 Nginx 入口控制器,让我们加密以支持 https。

我可以毫无问题地访问https://x.eastus.cloudapp.azure.com并且通过单击网站上的链接,我也会被定向到https://x.eastus.cloudapp.azure.com/link没有问题。

但是,当我单击需要登录用户的链接时,我得到:

请注意,上面的 URL 缺少 https,这就是问题所在。

我已将“ https://x.eastus.cloudapp.azure.com/signin-oidc ”注册为 Azure AD 中应用程序的回复 URL。

但是,我不明白为什么登录时使用的回复网址缺少 https。

如果我将完全相同的应用程序部署到 Azure Web 应用程序,我不会遇到这个问题。

可能是什么问题?

这是我的入口 YAML 文件:

我在 Startup.cs 中有以下代码:

0 投票
1 回答
1982 浏览

kubernetes - 按端口的入口后端规则?

我有一个使用 TLS 设置运行并正常工作的功能性 Ingress。我可以访问http://whoami.domain.comhttps://whoami.domain.com,并且在 https 域上使用了正确的证书。

我在谷歌上运行,我知道谷歌入口控制器不允许设置强制 ssl 以确保流量通过 https。我知道我可以使用kubernetes.io/ingress.allow-http: "false"禁用 http,但我们不希望用户知道他们需要使用 https://

我对如何解决这个问题的想法是有一个“重定向”后端,我将其定义为所有 port=80 请求的默认后端,只有 301 到 https ......但是,我找不到一种方法来定义尊重的入口规则传入端口。

这是我目前的想法,但它当然不起作用:)

我一直在试图找到一个可以提供的规则键,但找不到任何列表,只是它们都是关于主机和路径的示例。

0 投票
5 回答
46595 浏览

kubernetes - 获取 Kubernetes Ingress 端点/IP 地址

我是 Kubernetes Ingress 的新手,正在设置 2 个不同的服务,每个服务都有自己的路径。

我创建了 2 个部署:

我还创建了相应的服务:

svc的是:

我的 NodeIP 地址是172.16.16.2,我可以使用

现在最重要的是,我想部署一个 Ingress,这样我就可以访问两个 pod,而不使用 2 个 IP 和 2 个不同的端口,但 1 个 IP 地址具有不同的路径。

所以我的入口文件是:

这产生:

现在,当我尝试使用 NodeIP 地址 (172.16.16.2) 访问 Pod 时,我什么也得不到。

我的配置中有什么遗漏吗?

0 投票
1 回答
3520 浏览

kubernetes - 如何为 helmfile 中的变量赋值?

如何在helmfile中分配变量?

错误信息

如果我使用没有问题的纯helm安装:

这没有问题。我将需要添加大量注释

0 投票
4 回答
16258 浏览

nginx - nginx-ingress:启用 force-ssl 时重定向过多

我正在使用 nginx-ingress 在 kubernetes 中设置我的第一个入口。我像这样设置ingress-nginx负载均衡器服务:

请注意https端口如何使其targetPort属性指向端口 80 (http),以便在负载均衡器处终止 ssl。

我的入口看起来像这样:

现在,当我导航到 url 时,我得到一个Too many redirects error. 让我感到困惑的是,当我添加以下标题“X-Forwarded-Proto:https”时,我得到了预期的响应(curl https://www.example.com -v -H "X-Forwarded-Proto: https")。

有什么想法可以解决这个问题吗?

PS这很好用ingress.kubernetes.io/force-ssl-redirect: "false",似乎没有任何无关的重定向。

0 投票
3 回答
2241 浏览

nginx - 将 Google Cloud Storage Bucket 与 GCE LoadBalancer 一起使用...不在主机和路径中

我正在尝试将流量路由到 GCE 上的静态存储桶。现在我正在使用入口,但在这里找到了谷歌的文档:

https://cloud.google.com/compute/docs/load-balancing/http/adding-a-backend-bucket-to-content-based-load-balancing

我一直通过,但在主机和路径菜单中进行 url 映射时无法选择“后端存储桶”......即使它列在后端存储桶下。可以选择“后端服务”选项,但禁用后端存储桶菜单。有谁知道更好的教程,或者将流量路由到静态内容存储桶的更好方法?

我可以在入口 yaml 中指定它吗?

0 投票
2 回答
5537 浏览

nginx - 无法在 Kubernetes Ingress 中配置基于路径的路由

我在 version 上运行 3 个节点的裸机集群1.9.5

3个节点的IP是:

我在下面解释的所有内容都在 1 个命名空间中完成,即ingress-nginx

我部署了 2 个应用程序。

他们的服务是:

所以当我通过 访问它们时NodePort,我得到了我想要的结果。

现在我的目标是使用 nginx 入口控制器配置基于路径的路由,以便在它结束时,我可以使用路由到 app1

所以现在我已经使用ingress-nginx设置了一个入口控制器。

nginx 控制器也部署在应用程序的相同命名空间中,即ingress-nginx

如日志所示,我的入口控制器已成功部署:

然后我使用以下方式配置了我的入口:

我使用以下方法创建了这个:

然后我使用:

app: nginx-ingress从我在 ingress-controller pod 中的标签指向标签。

我使用以下方式部署它:

但是当我尝试使用 URL 访问应用程序时,我得到:

甚至在做

不起作用。

我的 /etc/hosts 文件是:

有什么我错过或做错了吗?

我什至更改了入口配置以删除主机并对所有主机开放:

现在我被重定向了。

入口控制器日志说: