问题标签 [metallb]

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

metallb - 你如何让 MetalLB 围绕它的 iP 进行分析?

我有一个裸机 kube 集群(PI Cluster)。它有一个简单的 hello world 网页跨节点拆分,并且运行良好。从那以后,我创建了一项服务,以使其在事物的公共方面公开,但该站点不会呈现。看来我没有收到要发布的公告。

我的 config.map 非常简单。

我的服务看起来不错:

在主节点上,我可以 curl 192.168.1.16:8081 并获取我期望的数据。但是,如果我转到 192.168.1.0 网络上的任何其他机器,我根本无法渲染它。

我知道公共地址没有重叠。我的 DHCP 服务器屏蔽了 192.168.1.16-192.168.1.31 范围,因此该范围内没有任何内容。

那么如何让我的 master-001 节点宣布它正在处理 192.168.1.16 的流量?(它的唯一地址是 0.250,并且确实宣布了,但那不是服务,等等)。

我在 Raspberry PI 4s 上使用 Ubuntu 20。192 地址是事物的 wifi 端,10. 是事物的有线端。

谢谢,尼克

0 投票
0 回答
385 浏览

kubernetes - metallb 扬声器崩溃loopbackoff

我想将一个 pod 应用程序公开到端口 80,因为我已经安装了 Metallb 并配置了一个负载均衡器,如下所示:

metallb-config.yaml

负载均衡器.yaml

但是当我执行kubectl get svcloadBalancer 时,如果我使用 `kubectl -n metallb-system get all 检查 metallb,我可以看到:

在此处输入图像描述

如果我检查日志:

在此处输入图像描述

与我的配置有关还是我错过了 Metallb 配置中的某些步骤?

编辑:

的输出kubectl -n kube-system get pods 在此处输入图像描述

显然,coredns 和存储都已关闭。

0 投票
0 回答
211 浏览

kubernetes - tcpdump 到 kubernetes 负载均衡器分配的服务

我的 k8 集群有 MetalLB。现在我想得到一个tcpdump检查相互通信。如此处所述

在这种模式下,服务由集群中的一个节点拥有。它通过宣布与外部IP匹配的第2层地址(MAC地址)为节点的MAC地址来实现。对于外部设备,节点有多个 IP 地址。

所以我已经获取MAC了我的服务运行节点的地址并尝试将sudo tcpdump -i eth0 ether host aa:bb:cc:11:22:33. 参考

我的服务已192.168.10.101分配 IP。

正如官方故障排除所暗示的那样,我使用tcpdump -n -i ens3 arp src host 192.168.10.101了 ,但没有捕获数据包。

metalLB 配置

但我无法匹配任何数据包。

我有点卡在这里。我试过了kubectl get svc,让服务运行端口和tcpdump那个端口,仍然没有匹配任何数据包。tcpdump基本上我怎么能把

  • 负载均衡器服务
  • ClusterIP 运行服务
0 投票
1 回答
270 浏览

nginx - 在 kubernetes 中,我无法访问使用 MetalLB Loadbalancer 分配的外部 IP

首先,我在本地使用 kubernetes 设置集群。
https://metallb.universe.tf/installation/所示,我按照以下方式安装了 MetalLB 并配置了 configmap、deployment 和 service。

configmap.yaml

教程.yaml

配置后,当我使用命令检查服务时kubectl get svc,有一个带有EXTERNAL-IP的nginx服务。

当我输入“192.168.143.230”时,我无法访问该页面并显示消息“无法访问此站点 192.168.143.230 响应时间太长”。
我应该怎么做才能使用 EXTERNAL-IP 访问该页面?

0 投票
1 回答
329 浏览

nginx - 在 nginx 和 metalLB 后面无法访问服务

我有一个带有金属 LB 和 ngnix 的裸机 kubernetes 集群,我可以在端口 80 上访问 nginx 并查看欢迎页面。我应用了一个 Ingress 资源,但我无法访问我的服务,尽管我可以通过工作人员(在指定的节点端口上)访问我的服务。我在这里有什么遗漏吗?

入口:

服务:

部署:

更新:我能够跟踪日志并且看到这些可疑日志:

0 投票
1 回答
1169 浏览

kubernetes - 使用 ingress-nginx、Iptables 和 MetalLb 在 Kubernetes 裸机上保留源 IP

我有一个带有一个主节点和一个工作节点的 Kubernetes 集群设置。

通过从主机到 LoadBalancer 类型的 ingress-nginx 服务进行 NAT 将流量路由到集群,使用 MetalLb 设置:

$1是 ingress-nginx 的外部 IP。

此时,如果我查看 ingress-nginx pod 的日志,我可以看到真实的源 IP 地址。

问题是当我检查从入口获取流量的下游应用程序的日志时,源 IP 是入口 pod 的 IP。

有谁知道我为了在后端 pod 中保留源 IP 而缺少什么?

0 投票
1 回答
619 浏览

traefik - Traefik,Metallb 端口转发

我在端口转发 traefik 时遇到问题。我在 Rancher 有一个部署,我使用 metallb 和 traefik 来获得 ssl 证书。应用于我的服务。所有这些都在本地工作,我在 traefik 日志中没有看到任何错误消息。这很有趣,因为有时我可以在我的网络之外访问我的服务,但有时不能。

  • 我已将 80、433、8080 端口转发到 192.168.87.135
  • 我究竟做错了什么?我缺少一些端口吗?

traefik 日志 的图片 暴露的 traefik 负载均衡器的图片

0 投票
2 回答
8955 浏览

kubernetes - Microk8s、MetalLB、ingress-nginx - 如何路由外部流量?

Kubernetes/Ubuntu 新手在这里!

我正在使用单个 Raspberry Pi 设置一个 k8s 集群(希望将来有更多)。我正在使用 microk8sv1.18.8和 Ubuntu Server 20.04.1 LTS (GNU/Linux 5.4.0-1018-raspi aarch64)

我正在尝试在 port 上访问我的 k8s 服务之一80,但我无法正确设置它。我还设置了用于访问服务的静态 IP 地址,并将流量从路由器路由到服务的 IP 地址。

我想知道我做错了什么,或者是否有更好的方法来解决我正在尝试做的事情!

我正在遵循的步骤:

  1. 我跑了microk8s enable dns metallb。我提供了未被 DHPC 服务器处理的 MetalLB IP 地址 ( 192.168.0.90-192.168.0.99)。
  2. 我已经ingress-nginx通过运行安装了kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.35.0/deploy/static/provider/baremetal/deploy.yaml. 这会创建一个NodePort服务,ingress-nginx-controller该服务不适用于 MetalLB。正如这里提到的,我通过运行来编辑spec.type服务的从NodePort到。MetalLB 然后将 IP 分配给服务。LoadBalancerkubectl edit service ingress-nginx-controller -n ingress-nginx192.168.0.90
  3. 然后我应用以下配置文件:

这些是我看到的一些输出:

microk8s kubectl get all --all-namespaces

microk8s kubectl get ingress --all-namespaces

我一直认为这可能与我的 iptables 配置有关,但我不确定如何将它们配置为与 microk8s 一起使用。

sudo iptables -L

更新#1

metallb ConfigMap( microk8s kubectl edit ConfigMap/config -n metallb-system)

我很感激你能给我的任何帮助!

0 投票
2 回答
1012 浏览

kubernetes - 使用运行在不同 vps 服务器上的 kubernetes 配置 metallb

我有一个正在运行的 Kubernetes 集群,由 3 个节点和一个在 VPS 服务器上运行的主节点组成,每个节点和主节点都有自己的公共 IP 和浮动 IP,并且所有这些 IP 都与其他 IP 不同

我正在尝试将 metallb 配置为我的 Kubernetes 集群的负载均衡器,但我不知道如何将 metalLb IP 设置为配置文件中的范围

这是我的服务器的 IP 示例

  • 115.203.150.255
  • 94.217.238.58
  • 46.12.5.65
  • 76.47.79.44

正如您在此处看到的,每个 IP 都不同,那么如何在 metallb 配置映射中设置 IP 范围?

这是一个配置映射的示例

0 投票
1 回答
549 浏览

docker - 无法通过 Internet 访问我的本地 kubernetes 服务

实施目标

将运行在 kubernetes 上的 Zookeeper 实例暴露给 Internet。

(底部提供配置和版本信息)

实施尝试

我目前有一个minikube集群在运行ubuntu 14.04,由docker容器支持。我正在运行一个裸机 k8s 集群,并且正在尝试将 zookeeper 服务公开到互联网。看到我的集群没有在云提供商上运行,我设置了metallb,以便为我的 zookeeper 服务提供网络负载均衡器实现。

启动时一切看起来都很好,分配了一个外部 IP,我可以通过 curl 命令从同一主机访问它。

当我卷曲上述外部 IP 时,我得到一个有效的响应

到目前为止,一切看起来都不错,我可以从集群外部毫无问题地访问 LB,但这就是我缺乏 Kubernetes/网络知识的地方。我发现无法将此 LB 公开到 Internet。我曾尝试过minikube tunnel我寄予厚望的跑步,结果却深感失望。

从另一个节点运行 curl 命令,而 minikube 隧道正在运行,只会看到请求超时。

在这一点上,正如我之前提到的,我被卡住了。AWS有没有什么方法可以让我在不把我的灵魂献给或的情况下让这项服务暴露在互联网上GCP

任何帮助将不胜感激。

服务配置

minikube:v1.13.1
码头工人:18.06.3-ce