Kubernetes Loadbalancer Metallb

From UVOO Tech Wiki
Revision as of 05:19, 13 February 2021 by Busk (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Install and Use

https://kapuablog.wordpress.com/2020/02/15/k8s-and-metallb-a-local-non-cloud-loadbalancer/

Troubleshooting

microk8s.enable metallb
kubectl run --generator=run-pod/v1 mynginx --image nginx
kubectl expose pod nginx --port 80 --type LoadBalancer
kubectl get pods,services
curl -s -o - http://10.x.x.y | tail -4
kubectl get svc nginx -o yaml

Double ports on same ip mynginx.yaml

apiVersion: v1
kind: Service
metadata:
  annotations:
    # https://github.com/metallb/metallb/issues/121#issuecomment-367248030
    metallb.universe.tf/allow-shared-ip: shared-ip
  labels:
    run: nginx
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Cluster
  loadBalancerIP: 10.x.x.y
  type: LoadBalancer
  ports:
  - name: port-1
    port: 80
    protocol: TCP
    targetPort: 80
  - name: port-2
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  sessionAffinity: None
kubectl delete svc mynginx
kubectl apply -f mynginx.yaml
kubectl get pods,services -o wide

You now could have https running on your nginx docker container. pretty cool.