问题标签 [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.
kubernetes - 阻止命名空间之间的访问,但允许访问外部流量
我有两个命名空间:prod
和default
. 我想禁用对这些命名空间内资源的访问(来自default
NS 的资源无法访问来自 的资源,来自的prod
资源prod
无法访问来自 的资源default
)但允许有机会访问这些资源以获取外部流量(入口)。
来自prod
的 Pod 可以访问给定命名空间内的其他 Pod。来自default
的 Pod 无法访问内部的 pod prod
。
当我尝试从浏览器访问该服务时,它被阻止了。当我尝试使用端口转发到内部服务时prod
- 一切正常。
kubernetes - 如果它依赖于另一个服务端点,如何创建 Kubernetes 端点
我正在 kubernetes 中创建一个具有两个容器的 pod。一个容器试图找到正在运行的服务的端点。如果没有找到,它将退出,导致它重新启动,导致 pod #1 容器没有配置端点 ip。
Pod #2 做同样的事情,但它正在寻找 pod #1 的端点,在 pod #1 找到 pod #2 的端点之前不会配置。
我该如何解决这个问题,其中创建了 pod 的两个端点并且它们相互连接。
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-0
to hello-world-N
。在滚动更新期间,A/SRV 记录将包含所有其他对等点。
然而,DNS 记录似乎是异步更新的,因此即使n
检测到 pod的生命周期并n + 1
启动 pod,也不能保证 pod会在 DNS 中n + 1
看到 pod 的地址。n
kubernetes - 单个服务公开的多个 Pod 的会话关联设置
我将 Metallb 设置为 LB,并在 K8S 集群上安装了 Nginx Ingress。我已经阅读了有关会话亲和力及其重要性的信息,但到目前为止我还没有清楚的了解。
如何创建一个服务来公开同一应用程序的多个 pod?创建单服务入口点后,如何将具体的客户端 IP 映射到服务抽象的 Pod 上?
是否有任何博客根据客户端 IP 和 POD 之间的映射如何在 kubernetes 中完成来解释这个概念?
但我在 YAML 中看不到客户的 IP。那么,该服务如何将到各个客户端的流量映射到其端点?这是我的问题。
kubernetes - PODS 之间的负载均衡
有没有办法在微服务的 2 个 POD 之间进行主动和被动负载平衡。假设我有 2 个运行微服务的实例(POD),它使用 K8s 服务对象公开。有没有办法配置负载平衡,这样一个 pod 将始终收到请求,当该 pod 关闭时,另一个 pod 将开始接收请求?
我在该服务之上也有入口对象。
kubernetes - 如何为没有端口的容器创建 Kubernetes 服务
我正在为 Kubernetes 带来一个由不同组件组成的应用程序。现在我遇到了一些组件,他们的 compose 文件没有任何端口,我不知道如何为它们创建服务。我检查了这些组件,它们的网络设置如下:
我们如何为这些组件创建服务?
kubernetes - NodePort 服务不会将请求重定向到另一个节点
所以我有一个带有两个节点的本地 kubernetes 集群。我用法兰绒做苹果酒。
当我部署应用程序并且 pod 降落在工作节点上并且我尝试使用主节点 ip 和服务端口访问服务时,就会出现问题。集群 ip 与主节点 IP 相同。它不会将请求重定向到工作节点。我知道该应用程序可以正常工作,因为它会在我 curl 工作节点 IP 时向我显示结果。
我能做些什么来调试和解决这个问题?或者 NodePort 不是我需要的东西?
kubernetes - 通过数字海洋 Kubernetes 上的服务类型节点端口公开部署
我正在为多个客户端在 Kubernetes 中实施解决方案,并且我想使用 Prometheus 监控我的集群。但是,因为这可以快速扩展,并且我想降低成本,所以我将使用 Federation for Prometheus,来抓取 Kubernetes 的不同集群,但我需要公开我的 Prometheus 部署。
我已经使用服务类型 LoadBalancer 公开了我的 Prometheus 部署,但是这种方法将这笔额外费用添加到了我的基础设施(Digital Ocean LB)中。
是否可以使用服务类型 NodePort 来实现这一点,将端口暴露给我的集群 IP,如下所示:
XXXXXXXXXXXXXXXX.k8s.ondigitalocean.com:9090
我可以在哪里使用这个 URL 到我的主 Prometheus 报废所有“奴隶”Prometheus 实例?
我已经尝试过了,但我无法访问我的集群端口。有什么东西挡住了。我还删除了我的防火墙,以确保没有任何东西干扰这个实现,但什么也没有。
这是我的服务:
docker - 如何使用 Kubernetes 服务进行负载平衡——而不是 ClientIP 策略
我的服务/吊舱在服务后面运行,但我没有入口控制器。请求来自 GTM -> LTM -> K8s 服务 -> Pod。这里 LTM 覆盖了客户端 IP。因此,带有 ClientIP 策略的 SessionAffinity 不起作用。
我在请求中有 SMCookie。有没有办法可以在 K8s 服务中使用 cookie 进行负载平衡。或者建议一些其他的选择..
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 集群的解决方案。