Load Balancing for K8S

Load Balancing for K8S

When you deploy your application, system, or solution within a Kubernetes cloud native infrastructure, there will be three levels of load balancing as illustrated in the banner diagram above.

Traffic to your applications is expected to come from one or more of three definitive sources: a web browser accessing your frontend web graphic interface (GUI), a mobile client app, or an integrating solution invoking an API exposed by your system.

Usually, most end consumers access the application over the Internet while some WAN users do access it through a VPN.

Regardless of the channel used the traffic will arrive to a network load balancer (NLB) after being filtered out by a web application firewall (WAF) and/or a normal firewall depending on the far end it is coming from.

The NLB will distribute traffic among the configured cluster nodes in this case Kubernetes nodes.

Each of the cluster nodes is equipped with an application load balancer (ALB) such as Istio or NGINX.

The ALB does not no on which node application PODs are actually deployed, but it can communicate with the application designated deployment service through service discovery.

The application service does know and can reach out to all application PODs on all cluster nodes and hence it can distribute requests among the configured application instances (PODs).

The beauty of this configuration is that utilizing horizontal scalability features in K8S we can continue load balancing traffic among a dynamically launched number of application instances based on CPU and RAM utilization rules.

要查看或添加评论,请登录

Mahmoud Zamel的更多文章

  • Determining Customer Story Complexity

    Determining Customer Story Complexity

    As we are using customer stories as an indicator of team productivity, we figure out that each story contribution is…

  • Customer Stories Factor in Productivity Measurements

    Customer Stories Factor in Productivity Measurements

    Customer stories can be used as a metric to measure software team productivity. When a sprint starts with planning…

  • Measuring Software Team Productivity

    Measuring Software Team Productivity

    Productivity of a software development team is a bit tricky to measure without falling int one or more fallacy beliefs.…

    1 条评论
  • Playing Multiple Roles During Project Execution

    Playing Multiple Roles During Project Execution

    In the far past I had the chance to play multiple roles during execution of an undertaken project. I did that in so…

    2 条评论
  • Planning vs. Procrastination

    Planning vs. Procrastination

    Should you plan your daily activities? Should you plan your month, your year, and your life? Planning is a crucial…

  • Scaling PostgreSQL Database

    Scaling PostgreSQL Database

    Database scalability is one of the most crucial aspects of software solutions design and development, as well as the…

  • The Journey from Business Requirements to Production Code

    The Journey from Business Requirements to Production Code

    I am an advocate of using agile processes to tackle undertaken projects to implement custom code solutions. But agile…

  • The Software Bug Nightmare - September of 2001

    The Software Bug Nightmare - September of 2001

    The first recorded instance of a bug causing a technical malfunction occurred in 1947 when engineers working on the…

  • Converting from Monolith to Microservice Architecture

    Converting from Monolith to Microservice Architecture

    Monolith applications may suffer from multiple problems and issues that can be resolved using microservices…

  • The Gift of Fast Failing

    The Gift of Fast Failing

    We fail more times than those we do succeed! Failing fast is a gift given to those who know the value of failing fast…

社区洞察

其他会员也浏览了