在裸机 RPI 集群上使用 Metallb 的 LoadBalancer 安装后无法工作

2024-03-01

我正在摆弄我设置的 RPI 集群Kubeadm我想让 LoadBalancers 能够在集群上工作。 节点的 IP 是静态的,并且设置为192.168.1.100-192.168.1.103对于主节点和工作节点。

我已经使用官方网站文档安装了 Metallb。

这是我的 Metallb 配置图:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.2.240-192.168.2.250

据我了解,您应该为负载均衡器指定一个超出路由器 DHCP 范围的范围?但即使将地址范围更改为类似的内容192.168.1.200-192.168.1.240不会改变我得到的结果。

我的路由器的 DHCP 设置。

K8s节点信息

NAME            STATUS   ROLES    AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION   CONTAINER-RUNTIME
k8s-master      Ready    master   5d15h   v1.17.4   192.168.1.100   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7l+     docker://19.3.8
k8s-worker-01   Ready    worker   5d15h   v1.17.4   192.168.1.101   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7+      docker://19.3.8
k8s-worker-02   Ready    worker   4d14h   v1.17.4   192.168.1.102   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7+      docker://19.3.8
k8s-worker-03   Ready    worker   4d14h   v1.17.4   192.168.1.103   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7+      docker://19.3.8

然后我尝试设置一个小型 nginx 部署

kubectl run nginx --image=nginx 
kubectl expose deploy nginx --port=80 --type=LoadBalancer

Running kubectl get svc返回:

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP      10.96.0.1        <none>        443/TCP          5d15h
nginx        LoadBalancer   10.96.53.50      <pending>     80:31253/TCP     4s

这就是我现在被困住的地方。我似乎无法让 LoadBalancer 使用此设置,而且我不太确定哪里出了问题。

金属输出

NAME                              READY   STATUS    RESTARTS   AGE
pod/controller-65895b47d4-q25b8   1/1     Running   0          68m
pod/speaker-bnkpq                 1/1     Running   0          68m
pod/speaker-d56zg                 1/1     Running   0          68m
pod/speaker-h9vpr                 1/1     Running   0          68m
pod/speaker-qsl6f                 1/1     Running   0          68m

NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
daemonset.apps/speaker   4         4         4       4            4           beta.kubernetes.io/os=linux   68m

NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/controller   1/1     1            1           68m

NAME                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/controller-65895b47d4   1         1         1       68m

除非启用混杂模式,否则 MetalLB Layer2 模式不会接收广播数据包。

尝试下面

sudo ifconfig wlan0 promisc

添加一个 Crontab 来运行每次启动,这样您就不会在重新启动时丢失此更改。

    1. sudo crontab -e
    2. Add this line at the end of the file 
         @reboot sudo ifconfig wlan0 promisc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在裸机 RPI 集群上使用 Metallb 的 LoadBalancer 安装后无法工作 的相关文章

  • 如何在 kubernetes 中传递命令行参数?

    需要在 pod yaml 中传递 docker 容器 appContainer1 和 appContainer2 的命令行参数 pod yaml apiVersion v1 kind Pod metadata name microservi
  • 从 celery 工作人员到普罗米修斯的自定义指标

    我有一些 celery 工作人员在 kubernetes 下的容器中运行 它们不会由 celery 自动缩放 并且每个都在单个进程中运行 即没有多处理 我想从他们那里获取一堆不同的指标到普罗米修斯中 我研究过 celery promethe
  • Kubernetes coredns pod 陷入待处理状态。无法启动仪表板[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我正在按照此构建 Kubernetes 集群tutorial https www profiq com kubernetes clus
  • kubectl --token=$TOKEN 未使用令牌的权限运行

    当我使用命令时kubectl与 token标记并指定令牌 它仍然使用来自kubeconfig file 这就是我所做的 NAMESPACE default SERVICE ACCOUNT NAME sa1 kubectl create sa
  • Kubernetes - 服务之间的通信

    我目前正在开发 kubernetes 集群 集群工作正常 我需要在不使用代理的情况下建立服务之间的通信 例如我有以下服务 worker app1 app2 app3 Worker 需要直接通过 SSH 登录应用程序容器并执行一些命令 在 d
  • 如何为容器设置正确的 cpu 毫核?

    我想要优化配置 CPU 核心 而不会分配过多或不足 如何测量给定容器所需的 CPU 毫核 它还带来了一个问题 即代理将根据 CPU 消耗将多少流量发送到任何给定的 Pod 以便我们可以最佳地使用计算 目前我发送请求并进行监控 kubectl
  • kubernetes/openshift 中的请求与限制 cpu

    我在为 Openshift 中的 pod 选择正确的请求和限制设置时遇到一些困境 一些数据 在启动期间 应用程序需要至少 600 毫核才能在 150 秒内完成就绪检查 启动后 200 毫核应该足以让应用程序保持空闲状态 所以我从文档中的理解
  • Spark 执行器 STDOUT 到 Kubernetes STDOUT

    我在 Spark Worker 中运行的 Spark 应用程序将执行程序日志输出到特定文件路径 worker home directory app xxxxxxxx 0 stdout I used log4j properties将日志从
  • 如何将新的 Kubernetes Minion 添加到当前集群

    我有一个运行在 3 台服务器上的 Kubernetes 集群 一台主服务器和 2 台服务器 我想添加另一个小黄人 是否可以添加 Minion 而无需再次进行完整安装 到目前为止 在寻找执行此操作的指南时 我只能找到有关建立整个集群的优秀指南
  • 允许 Kubernetes 用户列表/获取命名空间

    我有以下用户清单 我希望允许 myapp user 获取集群内所有命名空间的列表 根据我的查找 我应该创建一个 ClusterRole 但我无法真正找到足够的详细信息 是否有所有 apiGroup 以及相应资源和动词的列表 apiVersi
  • 如何将 configmap 附加到 Kubernetes 中的部署?

    根据此处找到的说明 https kubernetes io docs tasks access application cluster connecting frontend backend https kubernetes io docs
  • 无法使用 minikube 设置 Istio

    我按照 Istio 的官方文档为带有 minikube 的示例 bookinfo 应用程序设置了 Istio 但我得到了无法连接到服务器 net http TLS 握手超时错误 这些是我遵循的步骤 我安装了 kubectl 和 miniku
  • 在 Raspberry Pi 上 - 登录后自动启动终端?

    我现在正在做一个小项目 我希望 python 脚本在登录 GUI 后自动运行 我按照这里的步骤操作 https www raspberrypi org forums view https www raspberrypi org forums
  • Kubernetes 通过基于时间的触发器扩展 Pod

    我有一台在 Kubernetes 上运行的服务器来处理每小时的处理作业 考虑使用服务来公开 pod 并使用 外部 cron 作业来访问负载均衡器 以便 kubernetes 可以根据需要自动缩放以处理更高的负载 然而在实现中 如果 cron
  • 通过 SSH 的 Pygame 不注册击键(Raspberry Pi 3)

    所以我得到了 raspi 3 和简单的 8x8 LED 矩阵 在玩了一些之后 我决定用 pygame 的事件制作一个简单的蛇游戏 显示在该矩阵上 我之前没有 pygame 的经验 除了 LED 矩阵之外 没有连接任何屏幕 显示器 所以最初的
  • 让我们加密证书颁发

    我正在尝试获取 Let s Encrypt 颁发的证书 已经过去了 3 个半小时 我不小心最初将我的 SecretName 设置为 echo tls 然后将其切换到我想使用的正确的 pandaist tls 我目前有这个 kubectl g
  • Kubernetes / kubectl - “必须指定容器名称”,但看起来确实如此?

    我正在调试 kubectl 的日志输出 其中指出 Error from server BadRequest a container name must be specified for pod postgres operator 49202
  • 树莓派的设备树驱动内核

    我想用设备树驱动的 Linux 内核启动树莓派 有什么特别的事情要做吗 谁能指出为树莓派设置基于设备树的内核启动需要什么 我可能需要有树莓派内核源代码 其中设备驱动程序应与设备树兼容 如果是这样 我在哪里可以找到 Raspberry Pi
  • Kubernetes - 尝试部署时“安装卷失败”

    我部署了第一个容器 我得到了信息 deployment apps frontarena ads deployment created 但后来我看到我的容器创建陷入等待状态 然后我看到日志使用kubectl describe pod fron
  • 您可以将 Docker 映像直接拉入 IBM Cloud Kubernetes 集群吗?

    TL DR 抱歉 如果这是基础知识 我正在学习 Kubernetes 我尝试在 IBM Cloud 中创建 Kubernetes 部署 但失败了 该部署在我的本地 minikube 上运行良好 但在 IBM Cloud 中失败 我是否需要使

随机推荐

  • python 中的 crontab

    我正在用 python 为某种守护进程编写代码 该守护进程必须在由 crontab 字符串定义的特定时间实例执行特定操作 有我可以使用的模块吗 如果没有 有人可以粘贴 链接一个算法 我可以用它来检查 crontab 定义的时间实例是否在上次
  • 相对于 DBUnit 数据集中当前的日期

    我想知道是否有任何方法可以指定例如明天作为 DBUnit XML 数据集中的日期 有时 未来日期和过去日期的代码逻辑是不同的 我想测试这两种情况 当然 我可以指定 2239 年 11 月 5 日之类的日期 并确保测试在此日期之前有效 但是否
  • 当遵守里氏替换原则(LSP)时,子类可以实现额外的接口吗?

    考虑这个红宝石示例 class Animal def walk In our universe all animals walk even whales puts walking end def run Implementing to co
  • 从 mysql 查询创建数组。 Column2 作为键 Column 1 作为值

    我有一张表 其中包含 column 1 state column 2 link Alabama auburn alabama com Alabama bham alabama com Alabama dothan alabama com 我
  • 如何发送带有查询字符串作为查询字符串的 URL

    我正在执行从一个页面到另一个页面的重定向 以及从第二页面到第三页面的另一个重定向 我有来自第一页的信息 该信息未在第二页上使用 但必须转移到第三页 是否可以将第三页的 URL 及其查询字符串作为查询字符串发送到第二页 这是一个例子 Resp
  • Android 进度条未更新

    我在更新进度条时遇到问题 我正在单独的线程中更新进度条 并在另一个线程中更新进度条进度所依赖的变量 这是一个类变量 因此 进度对话框显示但始终为 0 不更新进度 请帮帮我 public void setProgressbar progres
  • 何时在模块方法中使用 self

    我的模块定义如下所示 module RG Stats def self sum a args a inject 0 accum i accum i end end 要使用此方法 我只需要包含此定义的文件 以便我可以执行以下操作 RG Sta
  • 从 CMake 文件执行 bash 命令

    我无法理解 CMake 我想要做的是在构建过程中执行以下 bash 命令 date F T gt timestamp 这会获取当前日期并将其写入文件 但是 我似乎无法使用 CMake 命令重现这个简单的操作 以下是我尝试过的一些事情 exe
  • 为什么默认参数后面允许有参数包?

    也许我遗漏了一些明显的东西 但是以下编译并运行 我不确定为什么 我知道this https stackoverflow com questions 27303283 clang vs gcc variadic template parame
  • 使用 Java 8 按属性对自定义对象列表进行分组

    我正在学习 lambda 的许多新功能 并想知道如何根据某些属性作为键按自定义对象列表进行分组 例如 我在 json 中有这样的对象列表 account checking source BOA account checking source
  • 是否有必要将“passHref”传递给具有 Semantic UI React 作为其子组件的 NextJS

    我一直在阅读 nextjs 文档 它说here https nextjs org docs api reference next link if the child is a function component that 如果孩子Link
  • 使用 AppCompat ActionBarActivity 更改状态栏颜色

    在我的一项活动中 我使用更改了工具栏颜色Palette 但在 5 0 设备上使用ActionBarActivity the status bar颜色是我的颜色colorPrimaryDark在我的活动主题中 所以我有两种截然不同的颜色 但看
  • 如何在Xcode lldb中打印超过256个数组元素?

    当我使用p or print它只会打印前 256 个元素 我怎样才能打印所有这些 您可以告诉 lldb 强制打印特定表达式求值的所有数组元素 lldb expr A array variable 您还可以通过运行以下命令来提高默认打印的最大
  • 如何在自组织图中关联回原始数据点

    我正在使用 R kohonen 包来实现 SOM 我发现将自组织映射产生的代码向量与原始数据点相关联时遇到麻烦 我尝试在训练过程中包含没有权重的标签 但结果令人难以理解 有没有办法在训练过程完成后从每个节点引用原始数据点 您将从中获得中心值
  • C 中的有符号除法

    我正在阅读书中有关 C 可移植性的部分C Traps and Pitfalls安德鲁 科尼格 关于整数除法 q a b r a b 如果a是负数 显然是提醒r可以是负数或正数 同时满足属性 q b r a 通常我会期望r如果股息为负a是负数
  • iOS:位置服务列表中缺少应用程序

    我的应用程序使用 iPhone 的 GPS 功能 之前运行良好 因为它提示用户允许使用位置服务 并且它显示在 设置 gt 位置服务 列表下 我从应用程序商店卸载并重新下载了该应用程序 但它们都不再起作用 该应用程序是同一版本 并且已经有一段
  • Flutter 中的 Sqlite,数据库资产如何工作

    我正在看这个 https github com tekartik sqflite blob master doc opening asset db md https github com tekartik sqflite blob mast
  • 更改 UIAlertView 的背景颜色?

    我想更改 UIAlertView 的背景颜色 但这似乎没有颜色属性 AlertView的背景是一张图片 你可以改变这个图像 UIAlertView theAlert UIAlertView alloc initWithTitle Atent
  • “似乎不是 NgModule 类。”更新到 Angular@15 后出错

    我正在尝试从以下位置更新Angular 13 to Angular 15 这样做之后 我收到了我完全不明白的编译错误 SharedModule does not appear to be an NgModule class src app
  • 在裸机 RPI 集群上使用 Metallb 的 LoadBalancer 安装后无法工作

    我正在摆弄我设置的 RPI 集群Kubeadm我想让 LoadBalancers 能够在集群上工作 节点的 IP 是静态的 并且设置为192 168 1 100 192 168 1 103对于主节点和工作节点 我已经使用官方网站文档安装了