Skip to main content
Kafka Setup with Script Code प्रकाशित: 03 जुलाई 2026 | श्रेणी: DevOps | लेखक: तकनीकी विशेषज्ञ 🌙 Dark Mode Apache Kafka एक शक्तिशाली डेटा स्ट्रीमिंग प्लेटफॉर्म है। यहाँ इसे स्क्रिप्ट कोड के ज़रिए सेटअप करने की पूरी गाइड दी गई है। Twitter LinkedIn WhatsApp चरण 1: सिस्टम जावा अपडेट काफ्का के लिए जावा आवश्यक है, इसे इंस्टॉल करने की स्क्रिप्ट नीचे दी गई है: Copy sudo apt update && sudo apt install default-jdk -y चरण 2: काफ्का डाउनलोड स्क्रिप्ट Copy wget https://apache.org tar -xzf kafka_2.13-3.5.0.tgz cd kafka_2.13-3.5.0 चरण 3: ज़ूकीपर और सर्वर स्टार्ट टर्मिनल 1 में ज़ूकीपर चलाएं: ...

How to setup host based routing in eks with ingress controller ?

Of course. To set up host-based routing in EKS, you define an Ingress resource with multiple rules. Each rule specifies a hostname (e.g., app1.example.com) and maps it to a corresponding backend Service. The AWS Load Balancer Controller reads this resource and provisions an Application Load Balancer (ALB) to route traffic based on the Host header of incoming requests.
Here’s a complete guide.
Prerequisites
A running Amazon EKS cluster.
kubectl configured to connect to your cluster.
The AWS Load Balancer Controller installed in your cluster. This is the standard Ingress controller for EKS.
A registered domain name (e.g., your-domain.com) that you can manage.
Step 1: Deploy Sample Applications
First, let's deploy two different applications to route traffic to: a "coffee" app ☕ and a "tea" app 🍵. Each application will have a Deployment and a Service.
Save the following YAML as apps.yaml:
# apps.yaml

# --- Coffee App ---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: coffee-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: coffee
  template:
    metadata:
      labels:
        app: coffee
    spec:
      containers:
      - name: coffee-container
        image: hashicorp/http-echo:latest # A simple echo server
        args:
        - "-text=Welcome to the Coffee Service!"
        ports:
        - containerPort: 5678
---
apiVersion: v1
kind: Service
metadata:
  name: coffee-service
spec:
  type: ClusterIP
  selector:
    app: coffee
  ports:
  - protocol: TCP
    port: 80
    targetPort: 5678
---
# --- Tea App ---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tea-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: tea
  template:
    metadata:
      labels:
        app: tea
    spec:
      containers:
      - name: tea-container
        image: hashicorp/http-echo:latest
        args:
        - "-text=Welcome to the Tea Service!"
        ports:
        - containerPort: 5678
---
apiVersion: v1
kind: Service
metadata:
  name: tea-service
spec:
  type: ClusterIP
  selector:
    app: tea
  ports:
  - protocol: TCP
    port: 80
    targetPort: 5678


Apply this manifest to your cluster:
kubectl apply -f apps.yaml


Step 2: Create the Ingress Resource
Next, create the Ingress resource. This object defines the routing logic. The spec.rules section is where you map each hostname to its backend service.
Save the following as host-based-ingress.yaml. Remember to replace coffee.your-domain.com and tea.your-domain.com with your actual hostnames.
# host-based-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: main-ingress
  annotations:
    # This annotation specifies that the ALB should be internet-facing
    alb.ingress.kubernetes.io/scheme: internet-facing
    # This annotation directs the ALB to route traffic directly to pod IPs
    alb.ingress.kubernetes.io/target-type: ip
spec:
  # This field tells Kubernetes that the AWS Load Balancer Controller should manage this Ingress
  ingressClassName: alb
  rules:
    # Rule for requests to the coffee host
    - host: "coffee.your-domain.com"
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: coffee-service # Routes traffic to the coffee-service
                port:
                  number: 80
    # Rule for requests to the tea host
    - host: "tea.your-domain.com"
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: tea-service # Routes traffic to the tea-service
                port:
                  number: 80


Apply the Ingress manifest:
kubectl apply -f host-based-ingress.yaml


Step 3: Verify the Load Balancer
The AWS Load Balancer Controller will now provision an ALB in your AWS account. This can take a few minutes.
Check Ingress Status: Find the DNS address of the newly created ALB.
kubectl get ingress main-ingress
Wait until the ADDRESS column is populated with a DNS name (e.g., k8s-...-.elb.amazonaws.com).
Test Routing: Before setting up DNS, you can test the routes using curl and specifying the Host header. Let's say your ALB address is YOUR_ALB_ADDRESS.
Test the coffee route:
# Replace YOUR_ALB_ADDRESS with the address from the previous command
curl http://YOUR_ALB_ADDRESS -H "Host: coffee.your-domain.com"
This should return Welcome to the Coffee Service!.
Test the tea route:
curl http://YOUR_ALB_ADDRESS -H "Host: tea.your-domain.com"
This should return Welcome to the Tea Service!.
Step 4: Configure DNS 🌐
The final step is to point your public hostnames to the ALB.
Go to your DNS provider (e.g., Amazon Route 53, GoDaddy, Cloudflare).
Create two CNAME records:
Record 1:
Name: coffee (or coffee.your-domain.com)
Type: CNAME
Value/Target: The ALB address you got from kubectl get ingress.
Record 2:
Name: tea (or tea.your-domain.com)
Type: CNAME
Value/Target: The same ALB address.
Note: If you use Amazon Route 53, it is best practice to create an A record and use the Alias feature to point it directly to the Application Load Balancer.
After the DNS records propagate, you can access your services using their public URLs:
curl http://coffee.your-domain.com
curl http://tea.your-domain.com



Comments

Popular posts from this blog

देवोप्स की पढ़ाई कैसे करें?

 DevOps (डेवऑप्स) एक ऐसा तरीका है जो सॉफ्टवेयर डेवलपमेंट (Dev) और IT ऑपरेशन्स (Ops) को एक साथ लाता है। इसका मुख्य लक्ष्य सॉफ्टवेयर बनाने, टेस्ट करने और डिलीवर करने की प्रक्रिया को तेज और अधिक विश्वसनीय बनाना है। DevOps की पढ़ाई के लिए आप नीचे दिए गए स्टेप्स को फॉलो कर सकते हैं: 1. मूलभूत अवधारणाओं को समझें सबसे पहले, आपको DevOps क्या है, यह क्यों महत्वपूर्ण है, और इसके मुख्य चरण (जैसे कंटीन्यूअस इंटीग्रेशन, कंटीन्यूअस डिलीवरी, मॉनिटरिंग) को समझना होगा। DevOps एजाइल मेथोडोलॉजी (Agile methodology) से बहुत प्रेरित है, इसलिए एजाइल के सिद्धांतों को समझना भी मददगार होगा। 2. आवश्यक स्किल्स और टूल्स सीखें DevOps इंजीनियर बनने के लिए कुछ प्रमुख स्किल्स और टूल्स में महारत हासिल करनी होगी:  * प्रोग्रामिंग स्किल्स (Programming Skills): कम से कम एक स्क्रिप्टिंग भाषा (जैसे Python, Bash, Ruby) का ज्ञान आवश्यक है, क्योंकि ऑटोमेशन में इनका उपयोग होता है। Java, JavaScript, या SQL का ज्ञान भी फायदेमंद हो सकता है।  * Linux/Unix: ऑपरेटिंग सिस्टम (OS) की गहरी समझ, खासकर Linux कमांड-लाइन और फाइ...

What modifications are required in Jenkins after changing the public IP address?

When you change the public IP address of a server running Jenkins , several modifications and checks are required to ensure Jenkins continues to function properly and remains accessible. Here’s a list of key updates you might need to make: 🔧 1. Update Jenkins URL Configuration: Why : Jenkins uses its root URL for things like generating links in email notifications, webhook callbacks, and UI redirects.