1.10. fejezet, MetalLB - terhelés elosztás

Szükséges szolgáltatás az ingress address IP cím kiosztásához.

Kapcsolódó hivatkozások

  • Bare-metal considerations
  • MetalLB
  • MetalLB load-balancer for Kubernetes
  • Telepítés

    kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.9/config/manifests/metallb-native.yaml

    IP address pool

    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      name: default
      namespace: metallb-system
    spec:
      addresses:
      - 192.168.1.10-192.168.1.15
      autoAssign: true
    ---
    apiVersion: metallb.io/v1beta1
    kind: L2Advertisement
    metadata:
      name: default
      namespace: metallb-system
    spec:
      ipAddressPools:
      - default

    Teszt

    kubectl run nginx-pod --image=nginx --restart=Always --port=80 -n default
    kubectl expose pod nginx-pod --type=LoadBalancer --port=80 --name=nginx-service
     
    kubectl run hello-minikube-pod --image=kicbase/echo-server:1.0 --restart=Never --port=8080 -n default
    kubectl expose pod hello-minikube-pod --type=LoadBalancer --port=8080 --name=hello-minikube-service
     
    kubectl get svc

    ingress.yaml

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: hello-minikube-ingress
      namespace: default
      annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /
    spec:
      ingressClassName: nginx
      rules:
      - host: nginx.vrlaptop.me.local
        http:
          paths:
          - path: /nginx
            pathType: Prefix
            backend:
              service:
                name: nginx-service
                port:
                  number: 80 #szolgáltatás belső portja ami át lesz irányítva a 80-as portra
          - path: /hello
            pathType: Prefix
            backend:
              service:
                name: hello-minikube-service
                port:
                  number: 8080 #szolgáltatás belső portja ami át lesz irányítva a 80-as portra
    kubectl apply -f ingress.yaml
    kubectl get ingress -w
     
    # nano /etc/hosts
    192.168.1.10 nginx.vrlaptop.me.local
     
    # browserbe megnyitható url
    http://nginx.vrlaptop.me.local/nginx
    http://nginx.vrlaptop.me.local/hello