问题标签 [kubernetes-service]

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 投票
2 回答
674 浏览

kubernetes - 阻止命名空间之间的访问,但允许访问外部流量

我有两个命名空间:proddefault. 我想禁用对这些命名空间内资源的访问(来自defaultNS 的资源无法访问来自 的资源,来自的prod资源prod无法访问来自 的资源default)但允许有机会访问这些资源以获取外部流量(入口)。

来自prod的 Pod 可以访问给定命名空间内的其他 Pod。来自default的 Pod 无法访问内部的 pod prod

当我尝试从浏览器访问该服务时,它被阻止了。当我尝试使用端口转发到内部服务时prod- 一切正常。

0 投票
1 回答
632 浏览

kubernetes - 如果它依赖于另一个服务端点,如何创建 Kubernetes 端点

我正在 kubernetes 中创建一个具有两个容器的 pod。一个容器试图找到正在运行的服务的端点。如果没有找到,它将退出,导致它重新启动,导致 pod #1 容器没有配置端点 ip。

Pod #2 做同样的事情,但它正在寻找 pod #1 的端点,在 pod #1 找到 pod #2 的端点之前不会配置。

我该如何解决这个问题,其中创建了 pod 的两个端点并且它们相互连接。

0 投票
1 回答
279 浏览

kubernetes - 如何解决状态集中的 Pod 启动和服务 DNS 查找之间的竞争

我正在尝试编写一个所有 pod 都相互连接的应用程序。我已阅读文档

Pod 的序号、主机名、SRV 记录和 A 记录名称未更改,但与 Pod 关联的 IP 地址可能已更改。在本教程使用的集群中,他们有。这就是为什么不要将其他应用程序配置为通过 IP 地址连接到 StatefulSet 中的 Pod 很重要的原因。

如果您需要查找并连接到 StatefulSet 的活动成员,则应查询无头服务的 CNAME ( nginx.default.svc.cluster.local)。与 CNAME 关联的 SRV 记录将仅包含 StatefulSet 中正在运行和就绪的 Pod。

如果您的应用程序已经实现了测试活动性和就绪性的连接逻辑,您可以使用 Pod 的 SRV 记录 ( web-0.nginx.default.svc.cluster.local, web-1.nginx.default.svc.cluster.local),因为它们是稳定的,并且您的应用程序将能够在 Pod 转换为 Running 和准备好。

我虽然可以通过以下方式做到这一点:

  • 查找服务的 SRV 记录以检查哪些 pod 已准备就绪
  • 连接到所有准备好的 pod
  • 打开表示准备就绪的端口

但是,当我开始在 minikube 上实现它时,它似乎很活泼,当我查询 A/SRV 记录时:

  • 在第一个节点上,我在打开端口之前没有找到记录错误(听起来不错)
  • 在第二个节点上,有时我找不到记录,有时只有一条记录
  • 在第三个节点上,我有时会得到一条记录,有时会得到两条记录

在我看来,更新 DNS 记录和 statefulset 启动之间存在竞争。我不完全确定我做错了什么以及我如何误解了文档。

编辑目前代码如下:

  • hello-world.default.svc.cluster.local.查询/的A / SRV记录_hello-world._tcp.hello-world.default.svc.cluster.local.并打印调试
  • 绑定3080端口开始监听(连接逻辑未实现)
  • 打开8080端口

我预计 A/SRV 记录 forhello-world-0将为空, forhello-world-1将包含 hello-world-0 并且 forhello-world-N+1将包含hello-world-0to hello-world-N。在滚动更新期间,A/SRV 记录将包含所有其他对等点。

然而,DNS 记录似乎是异步更新的,因此即使n检测到 pod的生命周期并n + 1启动 pod,也不能保证 pod会在 DNS 中n + 1看到 pod 的地址。n

0 投票
2 回答
6696 浏览

kubernetes - 单个服务公开的多个 Pod 的会话关联设置

我将 Metallb 设置为 LB,并在 K8S 集群上安装了 Nginx Ingress。我已经阅读了有关会话亲和力及其重要性的信息,但到目前为止我还没有清楚的了解。

如何创建一个服务来公开同一应用程序的多个 pod?创建单服务入口点后,如何将具体的客户端 IP 映射到服务抽象的 Pod 上?

是否有任何博客根据客户端 IP 和 POD 之间的映射如何在 kubernetes 中完成来解释这个概念?

但我在 YAML 中看不到客户的 IP。那么,该服务如何将到各个客户端的流量映射到其端点?这是我的问题。

0 投票
1 回答
184 浏览

kubernetes - PODS 之间的负载均衡

有没有办法在微服务的 2 个 POD 之间进行主动和被动负载平衡。假设我有 2 个运行微服务的实例(POD),它使用 K8s 服务对象公开。有没有办法配置负载平衡,这样一个 pod 将始终收到请求,当该 pod 关闭时,另一个 pod 将开始接收请求?

我在该服务之上也有入口对象。

0 投票
2 回答
116 浏览

kubernetes - 如何为没有端口的容器创建 Kubernetes 服务

我正在为 Kubernetes 带来一个由不同组件组成的应用程序。现在我遇到了一些组件,他们的 compose 文件没有任何端口,我不知道如何为它们创建服务。我检查了这些组件,它们的网络设置如下:

我们如何为这些组件创建服务?

0 投票
1 回答
1673 浏览

kubernetes - NodePort 服务不会将请求重定向到另一个节点

所以我有一个带有两个节点的本地 kubernetes 集群。我用法兰绒做苹果酒。

当我部署应用程序并且 pod 降落在工作节点上并且我尝试使用主节点 ip 和服务端口访问服务时,就会出现问题。集群 ip 与主节点 IP 相同。它不会将请求重定向到工作节点。我知道该应用程序可以正常工作,因为它会在我 curl 工作节点 IP 时向我显示结果。

我能做些什么来调试和解决这个问题?或者 NodePort 不是我需要的东西?

0 投票
1 回答
246 浏览

kubernetes - 通过数字海洋 Kubernetes 上的服务类型节点端口公开部署

我正在为多个客户端在 Kubernetes 中实施解决方案,并且我想使用 Prometheus 监控我的集群。但是,因为这可以快速扩展,并且我想降低成本,所以我将使用 Federation for Prometheus,来抓取 Kubernetes 的不同集群,但我需要公开我的 Prometheus 部署。

我已经使用服务类型 LoadBalancer 公开了我的 Prometheus 部署,但是这种方法将这笔额外费用添加到了我的基础设施(Digital Ocean LB)中。

是否可以使用服务类型 NodePort 来实现这一点,将端口暴露给我的集群 IP,如下所示:

XXXXXXXXXXXXXXXX.k8s.ondigitalocean.com:9090

我可以在哪里使用这个 URL 到我的主 Prometheus 报废所有“奴隶”Prometheus 实例?

我已经尝试过了,但我无法访问我的集群端口。有什么东西挡住了。我还删除了我的防火墙,以确保没有任何东西干扰这个实现,但什么也没有。

这是我的服务:

0 投票
0 回答
93 浏览

docker - 如何使用 Kubernetes 服务进行负载平衡——而不是 ClientIP 策略

我的服务/吊舱在服务后面运行,但我没有入口控制器。请求来自 GTM -> LTM -> K8s 服务 -> Pod。这里 LTM 覆盖了客户端 IP。因此,带有 ClientIP 策略的 SessionAffinity 不起作用。

我在请求中有 SMCookie。有没有办法可以在 K8s 服务中使用 cookie 进行负载平衡。或者建议一些其他的选择..

0 投票
1 回答
50 浏览

kubernetes - 基于zone的kubernetes服务负载均衡

假设我有两个区域 zone1 和 zone2,每个区域部署了 2 个应用程序。假设 App1 是从 App2 获取信息的客户端,App1 使用 k8s 服务连接到 App2,现在如何配置 zone1 的 app1 以连接到 zone1 的 app2(最好,如果 zone1 的 app2 已加载或向下连接到 app2 的区域 2)。

虽然这可以通过应用层使用 zuul 和带无头服务的功能区来实现,但我想将其移至基础层。有没有可能在 K8s 中做。

我看到 IPVS 支持Locality-Based Least Connection算法,但不确定 k8s 是否支持这种算法,我看到支持的算法是 rr、wrr、lc、sed。但没有关于支持 lblc 的文档。如果支持 lblc,这是更好的解决方案,可以在区域中的 dc/pod 中选择相同的节点/pod。

注意:这是纯粹针对本地 k8s 集群的解决方案。