===== Installation Loadbalancer MetalLB=====
Bei der Installation von K3s haben ich den Traefik LB ausgenommen und es wird der Metallb installiert da dieses System nicht in einer Cloud durchgeführt wird. \\
Die aktuelle Manifest'e kann man sich auf der [[https://metallb.universe.tf/installation/|Hersteller Seite]] ansehen und runerladen.
Auf der Master Node:
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.5/manifests/metallb.yaml
# On first install only
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
\\
Netzwerk Infos für den LB konfigurieren
Auf der Master Node:
nano metallb_network.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: address-pool-1
protocol: layer2
addresses:
- 192.168.88.124-192.168.88.130
kubectl apply -f metallb_network.yaml
\\
Es ist auch möglich via Subnet das Netz einzustellen
addresses:
- 192.168.88.0/26
\\
===== Test Container =====
Test container um den LB zu testen
Auf dem Master:
kubectl create deployment my-nginx --image=nginx
kubectl expose deployment my-nginx --name=my-nginx --port=80 --type=LoadBalancer
root@kube01:~# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.43.0.1 443/TCP 64m
my-nginx LoadBalancer 10.43.2.242 192.168.88.124 80:31200/TCP 59m
root@kube01:~# curl -I http://192.168.88.124
HTTP/1.1 200 OK
Server: nginx/1.19.5
Date: Thu, 26 Nov 2020 10:19:05 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 24 Nov 2020 13:02:03 GMT
Connection: keep-alive
ETag: "5fbd044b-264"
Accept-Ranges: bytes
\\