问题标签 [kubernetes-networking]

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 回答
89 浏览

testing - 来自 envtest 的内部 IP 无法访问 k8s pod

我使用 envtest 和本地 Minikube 集群为我的 Kubernetes 操作员编写了一个集成测试。

我正在测试的控制器正在通过 IP 地址向其中一个 pod 发出 http 请求。我得到的地址是这样的:

如果我将操作员部署到 Kubernetes 集群,则此代码有效。

但是在运行测试时出现错误:

这是因为之前的 http 调用是通过操作员从 pod 进行的,但现在来自 envtest?

如何正确地为控制器编写测试?

0 投票
1 回答
40 浏览

kubernetes - 将 kubernetes 服务从 Loadbalancer 移动到 Ingress

目前,我们正在使用负载均衡器类型的服务将外部请求路由到我们的一个 pod。

我们想将其移动到入口类型服务(已经有一个外部负载平衡器设置以及一个入口控制器 - 我们确实有其他 Pod 配置为通过这个入口控制器接收外部请求)

我们现在拥有的是以下 url,客户端用于外部连接:

我们想把它移到

这样,我们就可以释放负载均衡器 IP 而不需要特定的端口。我们确实希望同时支持两个 url 一段时间 - 因为客户端已经连接到旧的。我们怎样才能做到这一点?

我能想到的选项(我们使用 helm):

  • 使用 Ingress 服务创建单独的图表和部署 - 旧的仍然使用 LoadBalancer
  • 相同的图表 - 以两种方式公开服务(这真的可能吗?)
  • 将当前的更改为 Ingress - 并且以某种方式确保我们将请求路由到旧的 url 到新的入口(如何?)

或者任何其他可能的方法?

0 投票
1 回答
289 浏览

kubernetes - EKS Fargate 连接到本地 kubelet

我正在尝试从 EKS fargate pod 连接到在“假节点”上运行的 kubelet。

例如,我有两个带有 IP 的 nginx pod,10.0.0.110.0.0.2托管在两个具有相同 IP10.0.0.110.0.0.2.

从 pod10.0.0.1我可以正确运行10.0.0.2

  • 但是,如果我尝试卷曲同一台主机10.0.0.1:10250,我会收到拒绝连接。

  • 从第二个 pod 执行相同操作会导致相反的结果,我可以查询10.0.0.1而不是10.0.0.2.

  • 请注意,如果我 curl 端口 80 nginx 正确回答,因此似乎从 pod 本身连接时,网络无法理解主机可以回答请求

  • 此外,我知道我可以通过代理(curl -X GET https://172.20.0.1:443/api/v1/nodes/fargate-ip-10-0-0-1.us-east-2.compute.internal/stats/summary --header "Authorization: Bearer $TOKEN" --insecure),但由于一些限制,这在我的场景中是不可行的

0 投票
1 回答
222 浏览

kubernetes - Kubernetes 节点端口在主机上侦听但服务正常工作时不可见

我有一个在通过 nodeport 暴露的 kubernetes 上运行的服务,如下所示:

该服务可以从其他节点访问并且工作正常;但是,如果我执行netstat -tunlp | grep 30005.

我有External Traffic Policy: Local,如果我理解正确,这应该意味着上面有 pod 的节点应该在所述端口上监听?同样,一切正常,但我试图弄清楚为什么我看不到主机上的端口监听。

0 投票
1 回答
1219 浏览

ssl - 使用互联网调试 kubernetes pod 的 SSL 握手问题

我最近在 debian 10 上安装了 k3s,但在从 pod 内部连接到 Internet 时遇到问题。Ping、DNS、HTTP 可以正常工作,但 TLS 在握手时出现问题。我做了一个 tcpdump 并查看了 ClientHello,然后立即从服务器响应内部错误 SSL 错误 80。在运行集群的 VM 上一切正常,只是不在 Pod 内。

容器中的示例:

在虚拟机上:

有人知道如何调试或修复它吗?

更新

这里是来自 VM 和 pod 内部的 curl。我还将 Web 服务器修复为 Internet 上已知的工作服务器(Vercel 托管网站),因此我们调试同一台服务器。但它在 pod 内总是相同的错误。无论我联系哪个服务器。

荚:

虚拟机:

0 投票
0 回答
68 浏览

kubernetes - Kubernetes pod 无法从 npm 注册表 EAI_AGAIN 下载

我有一个 minikube 设置,其中容器在启动时需要访问 npm 注册表。但是 pod 无法连接到 npm 注册表。我的印象是所有传出连接都是从 K8s 打开的。

从 pod 记录

kubectl logs <pod_name>

Dockerfile

入口点.sh

部署.yml

服务集群 Ip.yml

如果需要更多信息,请告诉我。我是k8s的新手。

0 投票
0 回答
120 浏览

kubernetes - Kubernetes 删除的 pod IP 地址由 rabbitmq 引用,它仍在接受消息

我在 kubernetes 上将 RabbitMQ 作为服务运行,并且我有多个微服务可以注册并使用来自 rabbitmq 的消息。

服务在多节点集群中运行

我已经使用带有单个副本的Bitnami helm chart 8.6.1 安装了 RabbitMQ

我为每个服务(消费者)有 2 个副本,因此 rabbitmq 上的该事件必须最多有 2 个消费者。

在已经终止的 K8s 旧容器(消费者)上部署新容器(消费者)后,在 RabbitMQ 连接上仍然可见,并且该消费者仍在接受消息,并且由于旧 pod 代码被执行(该旧容器于 2021 年 4 月 2 日注册)。

  1. 我已经验证了新部署的所有更新图像都带有新的哈希值。
  2. 我已经检查了 K8S pod 上的所有 IP 地址,但该未使用的 IP 不可见。

有谁知道我如何在 k8s 上追踪那个旧的 pod IP,因为那个 pod 在 k8s get pods 中不再可见。

谢谢

0 投票
1 回答
231 浏览

kubernetes - NGINX 入口未到达服务(clusterIP)

我正在尝试在 Kubernetes 集群中部署一个节点 js 应用程序。我为此创建了部署和服务(clusterIp),并在 nginx 入口配置文件中添加了一个角色,但似乎 nginx 无法访问该服务。

NodeJs 应用程序:

Dockerfile:

部署:

服务:

入口:

现在,每当我试图通过点击 /apple 来访问该服务时,我都会收到 Cannot GET /apple来自 Nginx 入口的响应。我在 nginx 入口控制器 pod 中找到了下面的日志。

任何的想法?

0 投票
1 回答
64 浏览

kubernetes-service - 将应用部署与 K8s 上的数据库服务连接起来

我必须将我的应用程序部署与 PostgresDB 部署连接起来。目前,我将 Postgres 集群 IP 放在我的应用程序环境中,如下所述:

我想做的是在 DB_HOST 的值中添加对 postgres 服务的引用,以便在部署应用程序时更加动态。这是我为 postgres 部署和服务所做的:

你能给我一个关于如何执行这个操作的例子吗?我认为不需要入口,因为我必须在同一个集群中关联两个部署。非常感谢你,戴夫。

0 投票
1 回答
361 浏览

kubernetes - Kubernetes 网络策略阻止 AKS 上节点之间的流量

我正在使用 Azure Kubernetes 服务 (AKS),并希望确保特定命名空间内的 pod 只能接收来自同一命名空间中其他 pod 的入口流量。

我找到了这个网络策略来实现这个命名空间隔离(从这里):

创建此网络策略后,它成功阻止了“my-namespace”上的 pod 与另一个命名空间之间的流量,而“my-namespace”中的 pod 之间的通信仍然是可能的。但是,仅当两个 pod 都安排在同一个节点上时,这才是正确的。如果两个 pod 都在“my-namespace”中但在不同的节点上运行,那么它们之间的连接将不再有效。一旦我删除了上述网络策略,连接就会再次起作用。我认为这不是预期的行为,因为 pod 位于同一个命名空间中,因此应该允许入口流量。有谁知道什么可能导致这个问题?

我正在使用 kubenet 和 calico 网络策略运行 Kubernetes 版本 1.19.6。