如何解决ISP 路由器后面的 Kubernetes 集群
我正在尝试使用 3 raspBerry pi 4 在家里创建一个 k3s 集群。 我为设置 nginx-ingress +letsencrypt pod 付出了很多努力。 实际上,它似乎有效,但我现在无法检查。
现在我的问题如下:
我使用 ISP 路由器(LiveBox Orange)连接到互联网。
我的 3 个 RPI 已连接到它并具有以下 IP:
- 大师:192.168.1.20
- 节点 1:192.168.1.21
- 节点 2:192.168.1.22
我已将我的域名链接到指向我的 ISP 盒 IP 的动态 DNS(是的,这个 sh*tty 盒无法处理永久 IP)。
负载均衡器的范围从 192.168.1.240 到 192.168.1.250。
现在我的问题是如何将端口从 ISP 转发到负载均衡器?
我有一个配置 UI,它允许我将端口重定向到现有设备 IP,但作为 负载均衡器 IP 不是真实设备,我无法选择它。
对不起,我是 kubernetes 的真正菜鸟。 如果您需要更多详细信息,请询问,我会提供。
提前致谢。
解决方法
对于您当前的情况:
你需要在你的网络中引入一个新的 k3s 独立组件,它可以是一个像 HAProxy 这样的反向代理,它可以设置为平衡 3 个 IP 之间的请求。
或:
#1 在没有 Traefik 和 Service LoadBalancer 的情况下重建您的 k3s 集群:
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC='server --no-deploy servicelb --no-deploy traefik --flannel-backend=host-gw --write-kubeconfig-mode 644' sh -
#2 部署 MetalLB
https://metallb.universe.tf/configuration/#layer-2-configuration 与配置:
---
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.1.20-192.168.1.22
这将为集群添加一个功能,其中负载均衡器类型的任何服务都将绑定到节点的 IP。
我自己的例子:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node02 Ready <none> 13d v1.20.2+k3s1 192.168.1.202 <none> Alpine Linux v3.13 5.10.12-0-virt containerd://1.4.3-k3s1
node03 Ready <none> 2d11h v1.20.2+k3s1 192.168.1.203 <none> Alpine Linux v3.13 5.10.12-0-virt containerd://1.4.3-k3s1
node01 Ready control-plane,master 13d v1.20.2+k3s1 192.168.1.201 <none> Alpine Linux v3.13 5.10.12-0-virt containerd://1.4.3-k3s1
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 13d k8s-app=kube-dns
metrics-server ClusterIP 10.43.254.20 <none> 443/TCP 13d k8s-app=metrics-server
traefik LoadBalancer 10.43.130.1 192.168.1.201 80:31666/TCP,443:31194/TCP,8080:31199/TCP 13d app=traefik
#3 按照这个设置让 traefik 运行而不是 nginx https://github.com/sleighzy/k3s-traefik-v2-kubernetes-crd 作者使用了 2 rpis。
#4 从您的路由器,您应该将端口 80/443 转发到有流量的节点。 您可以在没有外部 LoadBalancer 的情况下离开,因为该设置中的服务 traefik 被定义为 LoadBalancer 并且只会在一个节点上运行。可能是它在节点重新启动之间迁移 - 您必须调整路由器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。