问题标签 [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 投票
0 回答
129 浏览

docker-networking - 从不同网络上的外部系统访问 k3d 服务

我有一个 Rocky Linux (Vagrant VM),我在其上创建了一个 k3d 集群并使用 metallb 为我的服务分配 IP 地址。我可以从 Vagrant 机器访问服务(keycloak)。但我想知道是否有办法直接从我的桌面访问 keycloak 服务。

从本地 MAC 路由

使用此配置,我无法从我的 MAC 访问该服务。关于如何解决这个问题的任何想法?

0 投票
0 回答
27 浏览

kubernetes - Kubernetes 负载均衡器不会使用每个 IP

我在 4 个 Raspberry Pi 和 3 个虚拟机上设置了一个 Kubernetes 集群(k3s)。树莓派的 IP 为 192.168.1.101-192.168.1.104,而虚拟机的 IP 为 192.168.1.121-192.168.1.123。我的问题是,当我为测试创建负载均衡器时,负载均衡器使用了 IP:192.168.1.101,192.168.1.121,192.168.1.122 和 192.168.1.123。但它应该使用所有的IP。所有节点都有状态就绪,所以我认为这不是节点的问题,更多的是配置问题。如何向负载均衡器添加另一个 IP。

第二个可能相关的问题,它的优先级要低得多,但可能也可以用相同的解决方案解决,我有使用 IP 192.168.1.100 的 Keepalived 设置,我可以将它也添加到负载平衡器吗?集群中的任何节点也具有正确的 Keepalived 配置。

我很抱歉我的英语不好,我知道我的“设置/基础设施”不是“正常的”,但我用它来测试和学习。也许有人可以帮助我。

感谢您的任何回应。

0 投票
3 回答
89 浏览

kubernetes - 在 ClusterIP 服务的上下文中,“集群内”是什么意思?

我有一个包含以下内容的 Kubernetes 集群:

  • 一些演示 Web 服务器的部署
  • 公开此部署 pod 的 ClusterIP 服务

现在,我有了服​​务的集群 IP:

现在我可以看到我可以从主机(!)访问此服务 - 而不是在 Pod 或任何东西中:

问题是我不确定此功能是否是 ClusterIP 服务定义的一部分 - 即,无论我使用什么网络插件,它是否都能保证以这种方式工作,或者这个插件依赖于插件。

Kubernetes文档指出:

ClusterIP:在集群内部 IP 上公开服务。选择此值使服务只能从集群内访问。这是默认的服务类型

目前尚不清楚“集群内”是什么意思——这是否意味着集群中的容器(pod)内?甚至像上面的例子一样从节点本身?

0 投票
1 回答
46 浏览

kubernetes - 托管 Kubernetes 服务(特别是 AWS-EKS)中的 UDP/TCP 广播

我们有一个应用程序,它使用 UDP 广播消息来形成在同一子网中运行的所有实例的“集群”。

我们可以使用hostNetwork:truefor pods 在我们的(相当标准的)本地 K8s 安装中成功运行这个应用程序。这是可行的,因为所有 K8s 节点都在同一个子网中,并且可以进行广播。(小提示:K8s 设置使用 flannel 网络插件)

现在我们想将此应用程序移动到托管的 K8s 服务 @AWS。但我们最初的尝试都失败了。在 2 个不同的 pod 中运行的 2 个守护进程没有看到彼此。我们认为这很可能是因为 AWS K8s 服务自动生成的 EC2 工作节点实例位于不同的子网上。然后我们在同一个子网(和同一个可用区)中创建了 2 个全新的 EC2 实例,并尝试直接在它们上运行应用程序(不是作为 K8s 的一部分),但这也失败了。即使 2 个 EC2 实例位于同一子网/可用区,它们也无法通过广播消息进行通信。

因此,以下问题:

  • 我们初步搜索显示AWS EC2可能不支持广播/多播,但还是想问有没有办法启用它?(在 AWS 或其他云提供商上)?

  • 我们之所以使用hostNetwork:true,是因为我们认为使用 K8s pod-networking 进行广播会更加困难,甚至是不可能的。但似乎有些公司提供了支持此功能的 K8s 网络插件。有人对其中任何一个有经验(或推荐)吗?例如,考虑到 AWS 在 EC2 级别上不支持它,他们会在 AWS 上工作吗?

  • 非常感谢任何关于如何解决这个问题以及我们是否有任何选择的指示..

谢谢

0 投票
0 回答
30 浏览

kubernetes - EKS 上的某些 pod 到 pod 连接失败

我们在 EKS 上有一个集群,从 2 天前开始,我们注意到集群中存在一些网络问题。想象一个场景,我们有 2 个工作节点(w1 和 w2)和 3 个具有自己的服务(A、B 和 C)的 Pod。Pod A 和 B 位于 w1 上,Pod C 位于 w2 上。

问题是A无法到达C,但B可以。当我进入 pod A 并尝试curl -vvv http://C/DNS 解析为 C 的服务的 IP 但之后它挂起并且一段时间后我得到了超时。奇怪的是重新启动/删除 pod A 并没有解决问题,但是当我删除 C 时,它解决了问题。

我从未见过这样的事情,我检查了工作节点的 kube-proxy 的日志,但没有看到错误或任何奇怪的东西。有人知道这里发生了什么吗?

0 投票
1 回答
35 浏览

kubernetes - Calico 全球网络策略和 ​​ip 表规则

我试图了解 Calico 全球网络政策如何“在幕后”工作。假设我有很多(命名空间)网络策略。例如,相同的策略部署到许多命名空间。常见示例可能是阻止或允许所有命名空间中的特定流量。假设在这个例子中,这些都是专门的工作负载,都部署到一个节点上。如果我用单个全局网络策略替换这些大量(命名空间)策略,是否会减少节点上配置的 IP 表规则的数量?