美文网首页
解决非公有云上的kubernetes 不支持 LoadBalan

解决非公有云上的kubernetes 不支持 LoadBalan

作者: 0neBean | 来源:发表于2019-09-26 15:18 被阅读0次

不是运行在公有云上(GCP,AWS,Azure …)的k8s 不支持LoadBalancers模式的service。
好在社区有一个软件解决了这个问题:metallb

Metallb 会在 Kubernetes 内运行,监控服务对象的变化,一旦察觉有新的LoadBalancer 服务运行,并且没有可申请的负载均衡器之后,就会完成两部分的工作:
1.地址分配
用户需要在配置中提供一个地址池,Metallb 将会在其中选取地址分配给服务。
2.地址广播
根据不同配置,Metallb 会以二层(ARP/NDP)或者 BGP 的方式进行地址的广播。
关于裸金属集群的负载均衡方案介绍

接着我们就来安装配置Metallb:

  • 安装
kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.8.1/manifests/metallb.yaml

-下载配置文件

wget https://raw.githubusercontent.com/google/metallb/v0.7.3/manifests/example-layer2-config.yaml

#修改ip地址:

[centos@k8s-master ~]$ vim example-layer2-config.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 10.30.80.200-10.30.80.201 #这里填写你的集群node地址范围
  • 添加配置文件到k8s:
kubectl apply -f example-layer2-config.yaml
  • 接下来重新添加 LoadBalancer 的服务到k8s

可以看到LoadBalancers模式的service成功运行。

相关文章

网友评论

      本文标题:解决非公有云上的kubernetes 不支持 LoadBalan

      本文链接:https://www.haomeiwen.com/subject/keuxuctx.html