metallb | network load-balancer implementation | Load Balancing library

 by   metallb Go Version: v0.13.10 License: Apache-2.0

kandi X-RAY | metallb Summary

kandi X-RAY | metallb Summary

metallb is a Go library typically used in Networking, Load Balancing applications. metallb has no vulnerabilities, it has a Permissive License and it has medium support. However metallb has 47 bugs. You can download it from GitHub.

MetalLB is a load-balancer implementation for bare metal Kubernetes clusters, using standard routing protocols. Check out MetalLB's website for more information.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              metallb has a medium active ecosystem.
              It has 5840 star(s) with 766 fork(s). There are 102 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 93 open issues and 842 have been closed. On average issues are closed in 333 days. There are 16 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of metallb is v0.13.10

            kandi-Quality Quality

              metallb has 47 bugs (0 blocker, 0 critical, 6 major, 41 minor) and 179 code smells.

            kandi-Security Security

              metallb has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              metallb code analysis shows 0 unresolved vulnerabilities.
              There are 883 security hotspots that need review.

            kandi-License License

              metallb is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              metallb releases are available to install and integrate.
              metallb saves you 12160 person hours of effort in developing the same functionality from scratch.
              It has 27568 lines of code, 491 functions and 195 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed metallb and discovered the below as its top functions. This is intended to give you an instant insight into metallb implemented functionality, and help decide if they suit your requirements.
            • Auto - complete event handler
            • Initialize the lunr index . json file
            • Calculates the width of scroll bar .
            • constructs a fallback message from an action
            • Performs a search query to find and return the results
            • live event handler
            • Adjusts the next scroll bar to scroll bar if necessary
            • Executes fn .
            • remove event handlers
            • get a predecessor
            Get all kandi verified functions for this library.

            metallb Key Features

            No Key Features are available at this moment for metallb.

            metallb Examples and Code Snippets

            No Code Snippets are available at this moment for metallb.

            Community Discussions

            QUESTION

            Ingress no address
            Asked 2022-Apr-10 at 22:15

            I have little k8s cluster in my machine and I try to make something for learn but I stack right now.

            I have 2 app, one of mysql and another one wordpress and they are working good. When I give a LoadBalancer type for wordpress, it's taking a ip and I can see in my browser.

            So I want to create a Ingress and call by hostname but Ingress not take a Loadbalancer IP.. Am I doing wrong anythin?

            This is my Ingress configuration

            ...

            ANSWER

            Answered 2022-Apr-10 at 07:52

            I solved. Thank for help :) The problem was about to ingress class.

            Source https://stackoverflow.com/questions/71806609

            QUESTION

            Metallb multiple ip(nic) in Layer 2 config
            Asked 2022-Mar-08 at 14:28

            i have an on-premise kubernetes cluster setup with 1 master and 2 workernodes. I have two adress-ranges where master and workernodes having ips in boths nets. Master (192.168.0.10 and 192.168.1.10), node1 (192.168.0.11 and 192.168.1.11), node2 (192.168.0.12 and 192.168.1.12). I can ping from each node to each other node with either ip adress. I can also ping both all adresses 192.168.0.x and 192.168.1.x from external network.

            the adress range named "intnet" is 192.168.0.200-192.168.0.250 the adress range named "extnet" is 192.168.1.200-192.168.0.250 services requiering ips from extnet stall in pending state.

            my metallb adress pool config is as follows

            ...

            ANSWER

            Answered 2022-Mar-08 at 14:28

            Guided by the official documentation on this issue, you have to configure Metallb file removing the second line address-pools:

            Source https://stackoverflow.com/questions/71394279

            QUESTION

            metallb round robin not working when accessed from external HAProxy
            Asked 2022-Feb-11 at 20:51

            I have a sample app running in a kubernetes cluster with 3 replicas. I am exposing the app with type=LoadBalancer using metallb.

            The external ip issued is 10.10.10.11

            When I run curl 10.10.10.11 I get a different pod responding for each request as you would expect from round robin. This is the behaviour I want.

            I have now setup HAProxy with a backend pointing to 10.10.10.11, however each time I access the HAProxy frontend, I get the same node responding to each request. If I keep refreshing I intermittently get different pods, sometimes after 20 refreshes, sometimes after 50+ refreshes. I have tried clearing my browser history, but that has no effect.

            I assume it is my HAProxy config which is the cause the problem, perhaps caching? but I have not configured any caching. I am a HAProxy newbie, so I might be missing something.

            Here is my HAProxy config.

            I have tried both mode tcp and mode http, but both give the same result (the same pod responding to each request)

            ...

            ANSWER

            Answered 2022-Jan-31 at 23:19

            I eventually found the answer. I needed to use option http-server-close in my frontend settings.

            Source https://stackoverflow.com/questions/70933691

            QUESTION

            Why is ArgoCD confusing GitHub.com with my own public IP?
            Asked 2022-Jan-10 at 17:37

            I have just set up a kubernetes cluster on bare metal using kubeadm, Flannel and MetalLB. Next step for me is to install ArgoCD.

            I installed the ArgoCD yaml from the "Getting Started" page and logged in.

            When adding my Git repositories ArgoCD gives me very weird error messages: The error message seems to suggest that ArgoCD for some reason is resolving github.com to my public IP address (I am not exposing SSH, therefore connection refused).

            I can not find any reason why it would do this. When using https:// instead of SSH I get the same result, but on port 443.

            I have put a dummy pod in the same namespace as ArgoCD and made some DNS queries. These queries resolved correctly.

            What makes ArgoCD think that github.com resolves to my public IP address?

            EDIT:

            I have also checked for network policies in the argocd namespace and found no policy that was restricting egress.

            I have had this working on clusters in the same network previously and have not changed my router firewall since then.

            ...

            ANSWER

            Answered 2022-Jan-08 at 21:04

            That looks like argoproj/argo-cd issue 1510, where the initial diagnostic was that the cluster is blocking outbound connections to GitHub. And it suggested to check the egress configuration.

            Yet, the issue was resolved with an ingress rule configuration:

            need to define in values.yaml.
            argo-cd default provide subdomain but in our case it was /argocd

            Source https://stackoverflow.com/questions/70600322

            QUESTION

            kubernetes deployments or pods on port 8080 result in 504 error
            Asked 2022-Jan-06 at 17:09

            I have a bit of a problem, I am trying to access a Keycloak pod through an ingress and I keep getting a 504 error I have tried other deployments (nginx, apache, pg-admin) and they all work. The common aspect is that those pods run on port 80 and keycloak runs on port 8080. I have also tried to deploy apache airflow and by default port 8080 is used. I can't set port 80 or 443 on the Keycloak deployment, I get the following error:

            ...

            ANSWER

            Answered 2022-Jan-06 at 06:58

            i am not sure that might due to you are using the bitnami image, still i would suggest trying with below deployment file.

            Source https://stackoverflow.com/questions/70603375

            QUESTION

            Access kubernetes external IP from the internet
            Asked 2022-Jan-02 at 10:34

            I am currently setting up a kubernetes cluster (bare ubuntu servers). I deployed metallb and ingress-nginx to handle the ip and service routing. This seems to work fine. I get a response from nginx, when I wget the externalIP of the ingress-nginx-controller service (works on every node). But this only works inside the cluster network. How do I access my services (the ingress-nginx-controller, because it does the routing) from the internet through a node/master servers ip? I tried to set up routing with iptables, but it doesn't seem to work. What am I doing wrong and is it the best practise ?

            ...

            ANSWER

            Answered 2021-Dec-23 at 12:35

            Bare-metal cluster are a bit tricky to set-up because you need to create and manage the point of contact to your services. In cloud environment these are available on-demand.

            I followed this doc and can assume that your load balancer seems to be working fine as you are able to curl this IP address. However, you are trying to get a response when calling a domain. For this you need some app running inside your cluster, which is exposed to hostname via Ingress component.

            I'll take you through steps to achieve that. First, create a Deployment to run a webservice, I'm gonna use simple nginx example:

            Source https://stackoverflow.com/questions/70439430

            QUESTION

            How can I deploy Node JS app along with dist folder for production in Kubernetes?
            Asked 2021-Dec-16 at 11:16

            The Node JS app that I'm trying to deploy in Kubernetes runs on express js as a backend framework.The repository is managed via Bitbucket. The application is a microservice and the pipeline manifest file for building the Docker image is written this way:

            ...

            ANSWER

            Answered 2021-Dec-16 at 11:16

            Eventually, I could resolve the issue. The issue was trivial yet bothering. In the Dockerfile, there was a missing script, i.e., npm run build. So, here is the final Dockerfile I used it for building the dist directory along with other requirements:

            Source https://stackoverflow.com/questions/70249466

            QUESTION

            Bind kubernetes istio ingress gateway to local ports 80 and 443
            Asked 2021-Dec-15 at 12:14

            I managed to install kubernetes 1.22, longhorn, kiali, prometheus and istio 1.12 (profile=minimal) on a dedicated server at a hosting provider (hetzner).

            I then went on to test httpbin with an istio ingress gateway from the istio tutorial. I had some problems making this accessible from the internet (I setup HAProxy to forward local port 80 to the dynamic port that was assigned in kubernetes, so port 31701/TCP in my case)

            How can I make kubernetes directly available on bare metal interface port 80 (and 443).

            I thought I found the solution with metallb but I cannot make that work so I think it's not intended for that use case. (I tried to set EXTERNAL-IP to the IP of the bare metal interface but that doesn't seem to work)

            My HAProxy setup is not working right now for my SSL traffic (with cert-manager on kubernetes) but before I continue looking into that I want to make sure. Is this really how you are suppose to route traffic into kubernetes with an istio gateway configuration on bare metal?

            I came across this but I don't have an external Load Balancer nor does my hosting provider provide one for me to use.

            ...

            ANSWER

            Answered 2021-Dec-14 at 09:31

            Posted community wiki answer for better visibility based on the comment. Feel free to expand it.

            The solution for the issue is:

            I setup HAProxy in combination with Istio gateway and now it's working.

            The reason:

            I think the reason why SSL was not working was because istio.io/latest/docs/setup/additional-setup/gateway creates the ingress gateway in a different namespace (istio-ingress) from the rest of the tutorials (istio-system).

            Source https://stackoverflow.com/questions/70247196

            QUESTION

            ingress-nginx not working when using ingressClassName instead of kubernetes.io/ingress.class in annotations
            Asked 2021-Nov-16 at 13:42

            I have a baremetal cluster deployed using Kubespray with kubernetes 1.22.2, MetalLB, and ingress-nginx enabled. I am getting 404 Not found when trying to access any service deployed via helm when setting ingressClassName: nginx. However, everything works fine if I don't use ingressClassName: nginx but kubernetes.io/ingress.class: nginx instead in the helm chart values.yaml. How can I get it to work using ingressClassName?

            These are my kubespray settings for inventory/mycluster/group_vars/k8s_cluster/addons.yml

            ...

            ANSWER

            Answered 2021-Nov-16 at 13:42

            Running kubectl get ingressclass returned 'No resources found'.

            That's the main reason of your issue.

            Why?

            When you are specifying ingressClassName: nginx in your Grafana values.yaml file you are setting your Ingress resource to use nginx Ingress class which does not exist.

            I replicated your issue using minikube, MetalLB and NGINX Ingress installed via modified deploy.yaml file with commented IngressClass resource + set NGINX Ingress controller name to nginx as in your example. The result was exactly the same - ingressClassName: nginx didn't work (no address), but annotation kubernetes.io/ingress.class: nginx worked.

            (For the below solution I'm using controller pod name ingress-nginx-controller-86c865f5c4-qwl2b, but in your case it will be different - check it using kubectl get pods -n ingress-nginx command. Also keep in mind it's kind of a workaround - usually ingressClass resource should be installed automatically with a whole installation of NGINX Ingress. I'm presenting this solution to understand why it's not worked for you before, and why it works with NGINX Ingress installed using helm)

            In the logs of the Ingress NGINX controller I found (kubectl logs ingress-nginx-controller-86c865f5c4-qwl2b -n ingress-nginx):

            Source https://stackoverflow.com/questions/69878685

            QUESTION

            Accessing an external InfluxDb Database from a microk8s pod using selectorless service and manual endpoint?
            Asked 2021-Nov-11 at 21:45

            Gist: I am struggling to get a pod to connect to a service outside the cluster. Basically the pod manages to resolve the ClusterIp of the selectorless service, but traffic does not go through. Traffic does go through if i hit the ClusterIp of the selectorless service from the cluster host.

            I'm fairly new with microk8s and k8s in general. I hope i am making some sense though...

            Background:

            I am attempting to move parts of my infrastructure from a docker-compose setup on one virtual machine, to a microk8s cluster (with 2 nodes).

            In the docker compose, i have a Grafana Container, connecting to an InfluxDb container.

            kubectl version:

            ...

            ANSWER

            Answered 2021-Nov-11 at 21:45

            As I haven't gotten much response, i'll answer the question with my "workaround". I am still not sure this is the best way to do it though.

            I got it to work by exposing the selectorless service on metallb, then using that exposed ip inside grafana

            Source https://stackoverflow.com/questions/69833009

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install metallb

            You can download it from GitHub.

            Support

            We welcome contributions in all forms. Please check out the hacking and contributing guide for more information. Participation in this project is subject to a code of conduct. One lightweight way you can contribute is to tell us that you're using MetalLB, which will give us warm fuzzy feelings :).
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Load Balancing Libraries

            ingress-nginx

            by kubernetes

            bfe

            by bfenetworks

            metallb

            by metallb

            glb-director

            by github

            Try Top Libraries by metallb

            metallb-operator

            by metallbGo

            frr-k8s

            by metallbGo