问题标签 [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.
web-applications - 如何在 Kubernetes 上部署微服务 Web 应用程序?
我想使用 Angular 和微服务后端创建一个 Web 应用程序,为一些 REST api 提供服务。然后我想把所有东西都部署在 Kubernetes 上。
假设应用程序将提供一些饮料(咖啡和茶)。为了简化,我们假设应用程序是完全无状态的,我希望 2 拥有微服务。
如果没有 Kubernetes,我会这样做:
Coffea 服务 - /api/coffea 端点的 REST API
茶服务 - /api/tea 端点的休息 API
Nginx - 带有 Angular 应用程序(HTML/CSS/JS/图像等)和网关(/api/coffea 和 /api/tea 端点的代理)的静态内容
现在的问题是如何在 Kubernetes 中体现这一点?将所有内容部署在多个副本中,然后将 Coffea 和 Tea 服务公开为 NodePort,最后将 Nginx 公开为 LoadBalancer 是否足够?这是一个正确的方法吗?我应该使用 Ingress 而不是制作自己的 nginx 代理吗?如果是,那么如何使用 Ingress Controller 提供静态内容?
提前致谢!
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 但我得到了同样的错误。有任何想法吗 ?
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
似乎不支持,...)
提前感谢您的帮助。
干杯,
奥利维尔
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 中有以下代码:
kubernetes - 按端口的入口后端规则?
我有一个使用 TLS 设置运行并正常工作的功能性 Ingress。我可以访问http://whoami.domain.com和https://whoami.domain.com,并且在 https 域上使用了正确的证书。
我在谷歌上运行,我知道谷歌入口控制器不允许设置强制 ssl 以确保流量通过 https。我知道我可以使用kubernetes.io/ingress.allow-http: "false"禁用 http,但我们不希望用户知道他们需要使用 https://
我对如何解决这个问题的想法是有一个“重定向”后端,我将其定义为所有 port=80 请求的默认后端,只有 301 到 https ......但是,我找不到一种方法来定义尊重的入口规则传入端口。
这是我目前的想法,但它当然不起作用:)
我一直在试图找到一个可以提供的规则键,但找不到任何列表,只是它们都是关于主机和路径的示例。
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 时,我什么也得不到。
我的配置中有什么遗漏吗?
kubernetes - 如何为 helmfile 中的变量赋值?
如何在helmfile中分配变量?
错误信息
如果我使用没有问题的纯helm安装:
这没有问题。我将需要添加大量注释。
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"
,似乎没有任何无关的重定向。
nginx - 将 Google Cloud Storage Bucket 与 GCE LoadBalancer 一起使用...不在主机和路径中
我正在尝试将流量路由到 GCE 上的静态存储桶。现在我正在使用入口,但在这里找到了谷歌的文档:
我一直通过,但在主机和路径菜单中进行 url 映射时无法选择“后端存储桶”......即使它列在后端存储桶下。可以选择“后端服务”选项,但禁用后端存储桶菜单。有谁知道更好的教程,或者将流量路由到静态内容存储桶的更好方法?
我可以在入口 yaml 中指定它吗?
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 文件是:
有什么我错过或做错了吗?
我什至更改了入口配置以删除主机并对所有主机开放:
现在我被重定向了。
入口控制器日志说: