c12s-kubespray/contrib/metallb
Kenichi Omichi fd7829d468
Update MetalLB version (#6139)
If running MetalLB v0.7.3 on k8s v1.18.2, metallb pods output the
following parsing error of v1.ServiceList:

  $ kubectl logs controller-dbb46cf84-fw8h8 -n metallb-system
  {
    "caller":"reflector.go:205",
    "level":"error",
    "msg":"go.universe.tf/metallb/internal/k8s/k8s.go:231:
      Failed to list *v1.Service: v1.ServiceList:
        Items: []v1.Service: v1.Service: ObjectMeta:
        v1.ObjectMeta: readObjectFieldAsBytes:
        expect : after object field, parsing 1605

Then an external IP address is never allocated to the Service of
LoadBalancer type.
By updating MetalLB version to the latest v0.9[1] today, this issue
can be solved.

[1]: https://hub.docker.com/r/metallb/controller/tags
2020-05-27 14:10:03 -07:00
..
roles/provision Update MetalLB version (#6139) 2020-05-27 14:10:03 -07:00
library Fix MetaLB library (#4195) 2019-02-07 17:31:53 +03:00
metallb.yml Honor bastion host config from inventary (#5522) 2020-03-30 01:11:53 -07:00
README.md Update MetalLB README (#6140) 2020-05-18 01:17:36 -07:00

Deploy MetalLB into Kubespray/Kubernetes

MetalLB hooks into your Kubernetes cluster, and provides a network load-balancer implementation. In short, it allows you to create Kubernetes services of type "LoadBalancer" in clusters that don't run on a cloud provider, and thus cannot simply hook into paid products to provide load-balancers. This playbook aims to automate this. It deploys MetalLB into Kubernetes and sets up a layer 2 load-balancer.

Install

Defaults can be found in contrib/metallb/roles/provision/defaults/main.yml. You can override the defaults by copying the contents of this file to somewhere in inventory/mycluster/group_vars such as inventory/mycluster/groups_vars/k8s-cluster/addons.yml and making any adjustments as required. MetalLB allocates external IP addresses from this ip_range option, so you need to update this ip_range option at least for suiting your network environment.

ansible-playbook --ask-become -i inventory/sample/hosts.ini contrib/metallb/metallb.yml