Blogs

  • Home
  • Blog
  • Efficient Traffic Management: Using NGINX Ingress Controller with KubeOps PLATFORM

Efficient Traffic Management: Using NGINX Ingress Controller with KubeOps PLATFORM

Efficient Traffic Management: Using NGINX Ingress Controller with KubeOps PLATFORM

In modern Kubernetes landscapes, managing and directing traffic efficiently is vital. The NGINX Ingress Controller, specifically designed for Kubernetes, offers precise control over inbound traffic. This blogpost provides an overview of the NGINX Ingress Controller and its integration with the KubeOps PLATFORM.

Kubernetes' growing ecosystem has brought about new challenges in traffic management. While traditional methods serve their purpose, they might not always meet the demands of current microservice structures. The NGINX Ingress Controller addresses these contemporary needs, and its integration with the KubeOps PLATFORM streamlines Kubernetes-related tasks.

What is an Ingress Controller?

At its core, an Ingress Controller is a vital component in a Kubernetes system. It governs and manages access to services within a Kubernetes cluster, typically HTTP traffic. In essence, it serves as a bridge between external traffic and services within the cluster.

While Kubernetes itself provides fundamental routing capabilities, an Ingress Controller augments this by introducing advanced routing rules and mechanisms. This not only ensures smoother traffic flow but also aligns with the scalability and flexibility mandates of Kubernetes. Simply put, while a Service can expose a single application, an Ingress Controller can direct traffic to multiple services based on various conditions such as path or domain.

 

 

Purpose of an Ingress Controller:

  • Manages traffic to Kubernetes services without needing multiple LoadBalancers.
  • Enables path-based routing. For example, /api can direct to a backend service, while / could lead to the frontend.
  • Facilitates SSL termination, JWT validation, rate limiting, among other functions.
  • Reduces the use of multiple load balancers, potentially cutting costs.
  • Allows routing rules to be managed from one point.
  • Distributes incoming traffic to multiple pods.
  • Provides content caching at the ingress point.
  • Supports custom annotations for extended functionality.

Features of the NGINX Ingress Controller

  • Known for its performance as a web server, NGINX also provides an Ingress Controller for Kubernetes.
  • Can handle multiple simultaneous requests.
  • Offers a wide range of configurations.
  • Supported by an active open-source community.
  • Requires fewer resources while operating.
  • Has demonstrated stability in high traffic conditions.
  • Includes built-in Prometheus support for monitoring.
  • Provides session persistence.
  • Has rate-limiting capabilities.
  • Uses algorithms such as Least Connections and IP Hash for load balancing.

Setting up NGINX Ingress Controller on KubeOps PLATFORM

Integration with the KubeOps PLATFORM requires a few YAML configurations.

Basic Steps:

In platform.yaml:

ingress: true #This has to be set!

Deploy the settings using:

kubeopsctl apply -f "platform.yaml"

After these initial configurations, further adjustments are required for the NGINX Ingress Controller.

Configuration Details for Nginx-Ingress-Controller

After initialization, a few more steps are needed.

To Locate the Service:

kubectl get service -A | grep ingress-nginx-controller

To Change Service Type to NodePort:

kubectl patch service ingress-nginx-controller -n kubeops -p '{"spec":{"type":"NodePort"}}'

For specific ports, such as 30080 and 30443:

kubectl patch service ingress-nginx-controller -n kubeops --type=json -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}, {"op":"add","path":"/spec/ports/0/nodePort","value":30080}, {"op":"add","path":"/spec/ports/1/nodePort","value":30443}]'

To Add External IPs: Example using "192.168.0.1":

kubectl patch service ingress-nginx-controller -n kubeops -p '{"spec":{"externalIPs":["192.168.0.1"]}}'

Managing Kubernetes components can be intricate. Among these, traffic management is essential. The NGINX Ingress Controller offers a solution to this aspect, and when used with the KubeOps PLATFORM, it simplifies many Kubernetes deployment challenges. As Kubernetes continues to be a focal point in many infrastructures, such tools and platforms become increasingly important.

Check out our latest blogpost


Kubernetes in Focus: An Outlook on Future Growth Areas

Die Weiterentwicklung von Kubernetes: Von hybriden Architekturen bis zur Cloud-übergreifenden Interoperabilität. Ein Vorgeschmack auf morgen.

Any Questions?

Please feel free to contact us for any question that is not answered yet. 

We are looking forward to get in contact with you!

Design Escapes

KubeOps GmbH
Hinter Stöck 17
72406 Bisingen
Germany

  • Telefon:

    +49 7433 93724 90

  • Mail:

    This email address is being protected from spambots. You need JavaScript enabled to view it.

Download Area
Certified as

KubeOps GmbH is the owner of the Union trademark KubeOps with the registration number 018305184. 

© KubeOps GmbH. All rights reserved. Subsidiary of