在不同的 vps 服务器上使用 kubernetes 运行 配置 metallb
Configure metallb with kubernetes running on different vps servers
我在 VPS 服务器上有一个 运行 Kubernetes 集群,由 3 个节点和一个主机 运行 组成,每个节点和主机都有自己的 public 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 config map 中设置 IP 范围?
这里是一个配置映射的例子
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- PUBLIC_IP-PUBLIC_IP
在 Metallb 文档中提到您可以使用某些 IP metallb.universe.tf/address-pool
。参见 here
apiVersion: v1
kind: Service
metadata:
name: nginx
annotations:
metallb.universe.tf/address-pool: production-public-ips
spec:
ports:
- port: 80
targetPort: 80
selector:
app: nginx
type: LoadBalancer
production-public-ips
必须如图所示进行配置 here。
至 configure MetalLB,您应该使用您的 ips 创建一个 configmap。由于您没有范围,您可以将 /32
设置为您的 ips 的子网,如下例所示。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: production-public-ips
protocol: layer2
addresses:
- 115.203.150.255/32
- 94.217.238.58/32
- 46.12.5.65/32
- 76.47.79.44/32
它应该适用于您的场景。
我在不同国家/地区遇到与 VPS 相同的问题,但 NGINX 入口控制器裸机考虑不允许 IP 节点作为“地址”中的 IP/32 范围。
https://kubernetes.github.io/ingress-nginx/deploy/baremetal/
MetalLB requires a pool of IP addresses in order to be able to take
ownership of the ingress-nginx Service. This pool can be defined in a
ConfigMap named config located in the same namespace as the MetalLB
controller. This pool of IPs must be dedicated to MetalLB's use, you
can't reuse the Kubernetes node IPs or IPs handed out by a DHCP
server.
我在 VPS 服务器上有一个 运行 Kubernetes 集群,由 3 个节点和一个主机 运行 组成,每个节点和主机都有自己的 public 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 config map 中设置 IP 范围?
这里是一个配置映射的例子
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- PUBLIC_IP-PUBLIC_IP
在 Metallb 文档中提到您可以使用某些 IP metallb.universe.tf/address-pool
。参见 here
apiVersion: v1
kind: Service
metadata:
name: nginx
annotations:
metallb.universe.tf/address-pool: production-public-ips
spec:
ports:
- port: 80
targetPort: 80
selector:
app: nginx
type: LoadBalancer
production-public-ips
必须如图所示进行配置 here。
至 configure MetalLB,您应该使用您的 ips 创建一个 configmap。由于您没有范围,您可以将 /32
设置为您的 ips 的子网,如下例所示。
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: production-public-ips
protocol: layer2
addresses:
- 115.203.150.255/32
- 94.217.238.58/32
- 46.12.5.65/32
- 76.47.79.44/32
它应该适用于您的场景。
我在不同国家/地区遇到与 VPS 相同的问题,但 NGINX 入口控制器裸机考虑不允许 IP 节点作为“地址”中的 IP/32 范围。
https://kubernetes.github.io/ingress-nginx/deploy/baremetal/
MetalLB requires a pool of IP addresses in order to be able to take ownership of the ingress-nginx Service. This pool can be defined in a ConfigMap named config located in the same namespace as the MetalLB controller. This pool of IPs must be dedicated to MetalLB's use, you can't reuse the Kubernetes node IPs or IPs handed out by a DHCP server.