- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
作为序言,我正在研究 GCE 和 Kuberenetes。我的目标只是通过 SSL 公开集群上的所有微服务。理想情况下,它的工作方式与您通过 type=‘LoadBalancer’ 公开部署并获得单个外部 IP 时的工作方式相同。这是我的目标,但 SSL 不适用于那些基本的负载均衡器。
根据我的研究,目前最好的解决方案是设置一个 nginx 入口 Controller ,使用入口资源和服务来公开我的微服务。下面是我根据自己对这个过程的理解画的图。
我已经掌握了这一切,以便在 HTTP 上成功工作。我从这里部署了默认的 nginx Controller :https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx .以及默认后端和默认后端服务。我自己的微服务的入口有规则设置为我的域名和路径:/。
这是成功的,但有两件事让我有点困惑。
在为我的后端(微服务)公开服务资源时,我遵循的一个指南使用了 type=‘NodePort’,而另一个指南只是放置了一个端口来访问服务。两者都将目标端口设置为后端应用程序端口。我尝试了这两种方式,它们似乎都有效。指南一来自上面的链接。指南 2:http://blog.kubernetes.io/2016/03/Kubernetes-1.2-and-simplifying-advanced-networking-with-Ingress.html .这里有什么区别?
另一个令人困惑的地方是我的入口总是有两个 IP。我最初的想法是应该只有一个外部 ip,它会到达我的入口,然后由 nginx 引导进行路由。还是ip直接给nginx?无论如何,创建的第一个 IP 地址似乎给了我预期的结果,因为访问第二个 IP 地址失败。
尽管我很困惑,但在 HTTP 上似乎一切正常。通过 HTTPS 不是那么多。起初,当我通过 https 发出网络请求时,一切都会挂起。我在我的防火墙规则上打开了 443,这似乎有效,但我会点击我的默认后端而不是我的微服务。
阅读让我从 Kubernetes 文档中了解到:目前 Ingress 资源仅支持 http 规则。这也许可以解释为什么我会点击默认后端,因为我的规则仅适用于 HTTP。但如果是这样,我应该如何将这种方法用于 SSL?
我注意到的另一件事是,如果我编写一个没有规则的入口资源并为其提供我想要的后端,我仍然会被定向到我原来的默认后端。这更奇怪,因为 kubectl describe ing updated 并声明我的默认后端是我想要的后端......
任何帮助或指导将不胜感激。谢谢!
最佳答案
因此,对于 #2,您可能最终配置了 Google HTTP(S) LoadBalancer,这可能是因为您缺少 kubernetes.io/ingress.class: "nginx"
此处描述的注释:https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx#running-multiple-ingress-controllers .
GKE 有它自己的入口 Controller ,您需要通过将该注释粘贴在您的 nginx 部署上来覆盖它。 This article对这些东西有很好的解释。
kubernetes docs对什么有很好的描述NodePort
意思是 - 基本上,该服务将从集群中每个节点上的高范围分配一个端口,节点会将流量从该端口转发到您的服务。这是在不同环境中设置负载均衡器的一种方法,但对于您的方法而言,这不是必需的。你可以省略 type
微服务的 Service 字段,它将被分配默认类型,即 ClusterIP
.
至于 SSL,它可能是一些不同的东西。我会确保您已经按照他们在 nginx controller docs 中描述的那样设置了 Secret。 ,例如 tls.cert
和 tls.key
字段。
我还会检查 nginx Controller 的日志 - 找出它正在运行的 pod kubectl get pods
,然后跟踪它的日志:kubectl logs nginx-pod-<some-random-hash> -f
.这将有助于查明您是否配置错误,例如服务是否没有配置任何端点。大多数时候我搞砸了入口的东西,这是由于服务/部署的一些非常基本的错误配置。
您还需要为指向 LoadBalancer 静态 IP 的主机名设置 DNS 记录,或者使用 cURL 的 -H
ping 您的服务。 flag as they do in the docs ,否则您最终可能会被路由到默认后端 404。
关于ssl - Kubernetes、GCE、负载均衡、SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431522/
在 Web 应用程序架构设计期间,我必须从概念上计算我的服务器之一可以服务多少个当前客户端。然后我可以预算它。 那么,有什么公式可以遵循吗?或者,你如何计算这个?或者,通常,一个 httpd/tomc
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
我正在使用 Angular 5,我正在尝试在加载 div 的背景图像时获取加载图标。 如果它是一个普通的 img,我对此没有问题,但如果我尝试将它作为背景,它就不起作用。 这里是一些示例代码 app.
我们怎么知道我们的程序在 CPU 上有多少负载? 我尝试使用 htop 找到它。但是 htop 不会给 cpu 负载。它实际上给出了我程序的 cpu 利用率(使用 pid)。 我正在使用 C 编程,L
我们发现从Spark 1.3到当前的Spark 2.0.1以来,从Oracle数据库使用Spark的API加载数据一直很慢。典型的代码在Java中是这样的: Map options =
我有时会收到 mnesia overloaded主要使用时的错误消息 async_dirty查询和 ram_copies表。所以为了了解发生了什么,我想获得更多关于 mnesia 状态的信息,例如每秒
对于通常使用很少 CPU 的程序来说,内核 CPU 非常高。 Linux 机器在状态之间交替。大多数时候,程序使用低 CPU 正常执行。在 CPU“激增”期间,程序使用 100% 可用 CPU 使用高
我正在使用 Raspberry Pi 2 来路由 wifi-eth 连接。因此,从 eth 方面来看,我有一台可以使用 Pi wifi 连接到互联网的计算机。在 Raspberry 上我启动 htop
基本上我有一个网页,其中有一个 iframe 可以从不同的域加载另一个网页。它移动得很慢,我想证明整个页面很慢只是因为 iframe 内的页面。 有什么方法可以测量总页面负载以及总页面负载中有多少%来
我们有一个基于 Spring 的应用程序,它充当使用其他 Rest API 的编排层。我只想测试这个组件的性能,而不测试正在使用的下游 api。 我正在寻找有关如何完成此操作的任何架构建议? 当前的方
我正在学习 hibernate 。为了进行测试,我使用无效 key 调用了 session.load 。当我在调试器(JB Idea)中跨过该行后,没有任何反应 - 我预计会得到 ObjectNotF
我正在开发一个小型的待办事项 PHP 应用程序。我正在使用 jQuery 构建 HTML。其中一个是一个按钮,用于启动一个模式,允许用户编辑该项目。我很好奇加载数据时更好的方法是什么: 1) 在初始加
我尝试在 twitch 播放器中使用 angular 作为覆盖标记。 我将 ng-repear 与(键,值)结合使用。 //player is here 设置是一个全局对象。但是当我尝试加载页面
我即将了解 C 语言中的特定进程如何在特定时间范围内加载 CPU。该进程可能会在运行时切换处理器核心,因此我也需要处理这个问题。 CPU为ARM处理器。 我研究了从标准顶部获取负载的不同方法,perf
这个问题在这里已经有了答案: XMLHttpRequest Origin null is not allowed Access-Control-Allow-Origin for file:/// t
您好,我正在用 Java 开发负载平衡算法。在我的系统中将有一个主节点和 n 个从节点。主节点将接收查询分发给它的从节点。但是在将查询分发到其从节点之一之前,我想测量从节点中的当前负载,以检查特定从节
我正在渲染由大约 50 万个三角形组成的相当重的对象。我使用 opengl 显示列表,在渲染方法中只调用 glCallList。我认为一旦图形基元被编译成显示列表,cpu 的工作就完成了,它只是告诉
我正在尝试加密 Sipdroid,为此我必须在 RTP 数据包获得编码的音频负载后对其进行加密。我在 RTP 数据包类中使用这个函数: public byte[] getPayload() {
我正在尝试解析以下 JSON 负载: { "results":[ [ 298.648132, 280.68692, 356.54
在动画期间 cpu 负载非常高(高达 75%) 是否有优化代码以降低 CPU 负载的方法? 我的代码: ImageView myImageView = (ImageView)findViewById(
我是一名优秀的程序员,十分优秀!