Kubernetes Loadbalancer Metallb
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
- https://metallb.universe.tf/configuration/troubleshooting/
- Reserve range on dhcp server
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.