部署 metallb 裸金属负载均衡

kubernetes 在裸金属环境部署的时候,可以利用 metallb 创建负载均衡服务,
这样外部可以通过 ingress 的LoadBalance 模式访问集群的容器服务。
注意: metallb 不会持久化分配的地址,不推荐用在线上环境。

wget https://raw.githubusercontent.com/google/metallb/v0.8.1/manifests/metallb.yaml



cat <<EOF | tee metallb-conf.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.10.6.240-10.10.6.250
      - 10.10.7.240-10.10.7.250
EOF

kubectl apply -f  metallb.yaml

kubectl get pods -n metallb-system  -o wide

kubectl apply -f metallb-conf.yaml

说明:
metallb 有两种运行模式: layer2 和 bgp。
bgp 配合 anycast 很强大,不过需要物理或是虚拟的路由器修改相应的配置。
layer2 则不需要任何网络设备的配置修改,只需要虚地址绑定到相同 VLAN 的节点上。

故障排查:arping -I eth0 -s 10.10.7.242 10.10.7.254

# vlan 选择
cat <<EOF | tee metallb-conf2.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.10.6.240-10.10.6.250
    node-selectors:
    - match-labels:
        vlan: vlan6
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.10.7.240-10.10.6.250
    node-selectors:
    - match-labels:
        vlan: vlan7

EOF

kubectl label nodes <node-name> vlan=vlan7
kubectl label nodes <node-name> vlan=vlan6

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容