Difference between revisions of "Kubernetes Loadbalancer Metallb"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "https://kapuablog.wordpress.com/2020/02/15/k8s-and-metallb-a-local-non-cloud-loadbalancer/")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 +
# Install and Use
 
https://kapuablog.wordpress.com/2020/02/15/k8s-and-metallb-a-local-non-cloud-loadbalancer/
 
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.

Latest revision as of 05:19, 13 February 2021

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.