美文网首页
解决非公有云上的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