Kubernetes集群位于ISP路由器后面



我正在尝试使用3 raspberry pi 4在家里创建一个k3s集群。我花了很多时间来设置nginx-ingress + letsencrypt pod。事实上,它似乎可以工作,但我现在无法检查。

现在我的问题是:

我使用ISP路由器(Livebox Orange)连接到互联网。

我的3个RPI连接到它,并有以下ip:

  • Master: 192.168.1.20
  • Node1: 192.168.1.21
  • Node2: 192.168.1.22

我已经将我的域名链接到指向我的ISP盒子IP的动态DNS(是的,这个狗屎盒子不能处理持久的IP)。

负载均衡器的取值范围为192.168.1.240 ~ 192.168.1.250。

现在我的问题是如何将端口从ISP转发到负载均衡器?

我有一个配置UI上它允许我重定向端口到现有的设备IP,但作为loadbalancer IP不是一个真实的设备,我不能选择它。

对不起,我是kubernetes的新手。如果你需要更多的细节,尽管问,我会提供给你。

提前谢谢你。

对于当前情况:

你需要在你的网络中引入一个新的k3s独立组件,它可以是一个像HAProxy这样的反向代理,它可以设置为在3个ip之间平衡请求。

或者:

在没有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按照下面的设置,你就可以不用nginx了https://github.com/sleighzy/k3s-traefik-v2-kubernetes-crd作者使用了2个rpi

# 4从你的路由器,你应该转发端口80/443到有流量的节点。您可以不使用外部LoadBalancer,因为该设置中的服务流量被定义为LoadBalancer,并且只在一个节点上运行。它可能会在节点重启之间迁移——你必须调整你的路由器。

相关内容

  • 没有找到相关文章

最新更新