0
0
Kubernetesdevops~30 mins

Ingress controllers (Nginx, Traefik) in Kubernetes - Mini Project: Build & Apply

Choose your learning style9 modes available
Setting Up Ingress Controllers with Nginx and Traefik in Kubernetes
📖 Scenario: You are managing a Kubernetes cluster for a small company. You want to expose two simple web applications to the internet using Ingress controllers. You will set up both Nginx and Traefik ingress controllers and configure them to route traffic to the right apps.
🎯 Goal: Learn how to deploy Nginx and Traefik ingress controllers in Kubernetes and create ingress resources to route traffic to two web applications.
📋 What You'll Learn
Create Kubernetes namespaces for the apps
Deploy two simple web applications
Install Nginx ingress controller
Install Traefik ingress controller
Create ingress resources for both controllers
Test routing by accessing the apps via ingress
💡 Why This Matters
🌍 Real World
Ingress controllers are used in Kubernetes to manage external access to services inside the cluster. They help route internet traffic to the right app based on domain names or paths.
💼 Career
Knowing how to install and configure ingress controllers like Nginx and Traefik is essential for DevOps engineers and Kubernetes administrators to expose applications securely and efficiently.
Progress0 / 4 steps
1
Create namespaces and deploy web applications
Create two Kubernetes namespaces called app-nginx and app-traefik. Then deploy a simple nginx web server in app-nginx namespace and a simple httpd web server in app-traefik namespace. Use the image nginx:stable for nginx and httpd:latest for httpd. Name the deployments nginx-app and httpd-app respectively.
Kubernetes
Need a hint?

Use kubectl create namespace to make namespaces and kubectl create deployment with --image and -n to deploy apps in namespaces.

2
Install Nginx ingress controller
Install the Nginx ingress controller in the ingress-nginx namespace using the official Kubernetes manifest from https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.9.1/deploy/static/provider/cloud/deploy.yaml. Create the namespace ingress-nginx before applying the manifest.
Kubernetes
Need a hint?

Use kubectl apply -f with the URL to install the Nginx ingress controller after creating its namespace.

3
Install Traefik ingress controller
Install the Traefik ingress controller in the ingress-traefik namespace. First create the namespace ingress-traefik. Then apply the official Traefik manifest from https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd.yaml and https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/static-configuration/kubernetes-deployment.yaml in this order.
Kubernetes
Need a hint?

Create the namespace first, then apply the CRD manifest, then the deployment manifest for Traefik.

4
Create ingress resources and test access
Create an ingress resource named nginx-ingress in the app-nginx namespace that routes host nginx.example.com to the nginx-app service on port 80. Also create an ingress resource named httpd-ingress in the app-traefik namespace that routes host httpd.example.com to the httpd-app service on port 80. Use the correct ingress class annotations: kubernetes.io/ingress.class: nginx for Nginx and kubernetes.io/ingress.class: traefik for Traefik. Finally, print Ingress setup complete to confirm.
Kubernetes
Need a hint?

Use YAML manifests with correct ingress class annotations and apply them with kubectl apply -n <namespace> -f -. Then print the confirmation message.