vagrant@Master:~$ kubectl get pods -n metallb-system --show-labels
NAME                         READY   STATUS              RESTARTS   AGE   LABELS
controller-bb5f47665-sg6wz   0/1     Running             0          27s   app=metallb,component=controller,pod-template-hash=bb5f47665
speaker-8jqdn                0/1     ContainerCreating   0          27s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-nqr5d                0/1     ContainerCreating   0          27s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-p78bb                0/1     ContainerCreating   0          27s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
vagrant@Master:~$ kubectl patch svc metallb-webhook-service -n metallb-system --type='json' -p='[{"op":"replace","path":"/spec/selector","value":{"app":"metallb","component":"controller"}}]'
service/metallb-webhook-service patched
vagrant@Master:~$ kubectl get pods -n metallb-system --show-labels
NAME                         READY   STATUS              RESTARTS   AGE   LABELS
controller-bb5f47665-sg6wz   1/1     Running             0          78s   app=metallb,component=controller,pod-template-hash=bb5f47665
speaker-8jqdn                0/1     ContainerCreating   0          78s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-nqr5d                0/1     ContainerCreating   0          78s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-p78bb                0/1     ContainerCreating   0          78s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
vagrant@Master:~$ kubectl get pods -n metallb-system --show-labels
NAME                         READY   STATUS              RESTARTS   AGE    LABELS
controller-bb5f47665-sg6wz   1/1     Running             0          106s   app=metallb,component=controller,pod-template-hash=bb5f47665
speaker-8jqdn                0/1     ContainerCreating   0          106s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-nqr5d                0/1     ContainerCreating   0          106s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-p78bb                0/1     ContainerCreating   0          106s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
vagrant@Master:~$ sudo nano
vagrant@Master:~$ sudo nano metallb-config.yaml
vagrant@Master:~$ kubectl get pods -n metallb-system --show-labels
NAME                         READY   STATUS    RESTARTS   AGE     LABELS
controller-bb5f47665-sg6wz   1/1     Running   0          3m15s   app=metallb,component=controller,pod-template-hash=bb5f47665
speaker-8jqdn                1/1     Running   0          3m15s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-nqr5d                1/1     Running   0          3m15s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
speaker-p78bb                1/1     Running   0          3m15s   app=metallb,component=speaker,controller-revision-hash=779c7bb879,pod-template-generation=1
vagrant@Master:~$ kubectl apply -f metallb-config.yaml
ipaddresspool.metallb.io/default-address-pool created
l2advertisement.metallb.io/default-l2-advertisement created
vagrant@Master:~$ kubectl get pods -n metallb-system -o wide
NAME                         READY   STATUS    RESTARTS   AGE     IP                NODE      NOMINATED NODE   READINESS GATES
controller-bb5f47665-sg6wz   1/1     Running   0          4m12s   10.42.1.3         worker    <none>           <none>
speaker-8jqdn                1/1     Running   0          4m12s   192.168.121.144   worker    <none>           <none>
speaker-nqr5d                1/1     Running   0          4m12s   192.168.121.36    master    <none>           <none>
speaker-p78bb                1/1     Running   0          4m12s   192.168.121.159   worker2   <none>           <none>
vagrant@Master:~$ kubectl get endpoints metallb-webhook-service -n metallb-system
NAME                      ENDPOINTS        AGE
metallb-webhook-service   10.42.1.3:9443   4m38s
vagrant@Master:~$ kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.43.0.1    <none>        443/TCP   37m
vagrant@Master:~$ kubectl get svc -A
NAMESPACE        NAME                      TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                      AGE
default          kubernetes                ClusterIP      10.43.0.1       <none>          443/TCP                      37m
kube-system      kube-dns                  ClusterIP      10.43.0.10      <none>          53/UDP,53/TCP,9153/TCP       37m
kube-system      metrics-server            ClusterIP      10.43.68.27     <none>          443/TCP                      37m
kube-system      traefik                   LoadBalancer   10.43.223.224   192.168.121.2   80:31265/TCP,443:32732/TCP   35m
metallb-system   metallb-webhook-service   ClusterIP      10.43.3.13      <none>          443/TCP                      5m11s
vagrant@Master:~$ cat metallb-config.yaml 
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: default-address-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.121.2-192.168.121.255
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: default-l2-advertisement
  namespace: metallb-system
spec:
  ipAddressPools:
  - default-address-pool
vagrant@Master:~$