• Cygnet IRP
  • Glib.ai
  • IFSCA
Cygnet.One
  • About
  • Products
  • Solutions
  • Services
  • Partners
  • Resources
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Get Started
About
  • Overview

    A promise of limitless possibilities

  • We are Cygnet

    Together, we cultivate an environment of collaboration

  • Careers

    Join Our Dynamic Team: Careers at Cygnet

  • CSR

    Impacting Communities, Enriching Lives

  • In the News

    Catch up on the latest news and updates from Cygnet

  • Contact Us

    Connect with our teams across the globe

What’s new

chatgpt

Our Journey to CMMI Level 5 Appraisal for Development and Service Model

Full Story

chatgpt

ChatGPT: Raising the Standards of Conversational AI in Finance and Healthcare Space

Full Story

Products
  • Cygnet Tax
    • Cygnet Tax
    • e-Invoicing / Real time reportingIRP-integrated e-Invoicing with real-time validation
    • e-Way Bills / Road permitsGST-compliant centralized e-Way Bill platform for scalable operations
    • Direct Tax ComplianceAccurate direct tax compliance, filings, litigation, and assessments
    • Indirect Tax ComplianceEnterprise-grade platform for indirect tax compliance
      • Indirect Tax Compliance
      • GST Compliance India
      • VAT Compliance EU
      • VAT Compliance ME
    • Managed ServicesEnd-to-end indirect tax compliance support by experts
  • Global e-Invoicing
    • Global e-Invoicing
    • APAC
      • India
      • Malaysia
      • Singapore
      • Japan
    • Africa
      • Egypt
      • Kenya
      • Zambia
      • Nigeria
    • Europe
      • Spain
      • France
      • Germany
      • Poland
      • Belgium
    • Oceania
      • Australia
      • New Zealand
    • Middle East
      • UAE
      • Oman
      • Saudi Arabia
      • Bahrain
      • Qatar
      • Jordan
  • Cygnet Vendor Postbox
    • Cygnet Vendor PostboxDigitize purchase invoice validation & posting to ERPs & maximize ITC
  • Finance Transformation
    • Finance Transformation
    • Cygnet FinalyzeUnlock working capital with data-driven invoice-based credit decisions
    • Bank Statement AnalysisEvaluate company health by analyzing performance and financial risk
    • Financial Statement AnalysisAssess company performance and risk with financial statement analysis
    • GST Business Intelligence Report360-degree financial health insights using GST data analytics
    • GST Return Compliance ScoreGST-based compliance score to assess business risk and credibility
    • ITR AnalysisAssess creditworthiness and lending risk using ITR filing analysis
    • Invoice Verification for Trade FinanceVerify invoices to reduce fraud and improve credit decisions
    • Account Aggregator – Technology Service Provider (AA-TSP)Onboard to the Account Aggregator ecosystem with FIP & FIU modules
  • Cygnet BridgeFlow
    • Cygnet BridgeFlowAutomated digital onboarding with real-time validations and compliance
  • Cygnet Bills
    • Cygnet BillsGST-compliant centralized e-Way Bill platform for scalable operations
  • Cygnet IRP
    • Cygnet IRPIRP-integrated e-Invoicing with real-time validation
  • Cygnature
    • CygnatureSecure, compliant digital signing with audit-ready traceability

What’s new

e-Invoicing compliance Timeline

Know More →

UAE e-Invoicing: The Complete Guide to Compliance and Future Readiness

Read More →

Types of Vendor Verification and When to Use Them

Read More →

Safeguard Your Business with Vendor Validation before Onboarding

Read More →

Modernizing Dealer/Distributor & Customer Onboarding with BridgeFlow

Read More →

Accelerate Vendor Onboarding with BridgeFlow

Read More →

GST Filing 360°: GST, E-Invoicing, E-Way Bills & Annual Returns Made Simple

Read More →

Why Manual Tax Determination Fails for High-Volume, Multi-Country Transactions

Read More →

GST Filing 360°: GST, E-Invoicing, E-Way Bills & Annual Returns Made Simple

Read More →

Key Features of an Invoice Management System Every Business Should Know

Read More →

Automating the Shipping Bill & Bill of Entry Invoice Operations for a Leading Construction Company

Read More →

From Manual to Massive: How Enterprises Are Automating Invoice Signing at Scale

Know More →

Solutions
  • HireAI
  • AI-powered Voice Assistant
  • Generative AI Workshop
  • TestingWhiz
  • VIPRE

What’s new

AI powered Interviewer

AI-Powered Interviewing Helped an Education Group Reduce Hiring Time Significantly

Know More

Generative AI ebook

Navigating the Generative AI Landscape

Download eBook

Services
  • Data Analytics & AI
    • Data Analytics & AI
    • Data Engineering and ManagementData engineering and management for smart, scalable systems
    • Data Migration and ModernizationData migration and modernization for future-ready platforms
    • Insights Driven Business TransformationInsight-driven business transformation for faster decisions
    • Business Analytics and Embedded AIBusiness analytics and embedded AI for data-led growth
  • Digital Engineering
    • Digital Engineering
    • Technical Due DiligenceEnabling smarter decisions through future-ready digital ecosystems
    • Product EngineeringEngineering impactful digital products that elevate business growth
    • HyperautomationSmarter hyperautomation using low-code for agile business processes
    • Enterprise IntegrationIntegrating enterprise systems for seamless operations and growth
    • Application ModernizationModernizing IT ecosystems with scalable, AI-driven innovation
  • Quality Engineering
    • Quality Engineering
    • Test Consulting & Maturity AssessmentTest consulting and maturity assessments for reliable software QA
    • Business Assurance TestingBusiness assurance testing aligned with real business outcomes
    • Enterprise Application & Software TestingEnterprise application testing for continuity and scale
    • Data Transformation TestingData transformation testing for scalable, trusted data quality
  • Cloud Engineering
    • Cloud Engineering
    • Cloud Strategy and DesignCloud strategy and design services for secure, scalable growth
    • Cloud Migration & ModernizationORBIT: a proven framework for measurable cloud transformation
    • Cloud Native DevelopmentCloud-native development for resilient, scalable innovation
    • Cloud Operations and OptimizationCloud optimization and operations for enterprise resilience
    • Cloud for AI FirstAI-first cloud transformation for smarter, scalable enterprises
  • Managed IT Services
    • Managed IT Services
    • IT Strategy and ConsultingStrategic IT consulting to align technology with business goals
    • Application Managed Services24/7 managed application services for performance and security
    • Infrastructure Managed ServicesEnd-to-end infrastructure management for resilient IT operations
    • CybersecurityComprehensive cybersecurity solutions to protect business assets
    • Governance, Risk Management & ComplianceGRC solutions to manage risk, compliance, and governance
  • Cygnet TaxAssurance
    • Cygnet TaxAssurance
    • Tax DatalakeUnified tax data lake for intelligent, compliant decision-making
    • Tax InfraDigital tax infrastructure for efficient, compliant transformation
  • Amazon Web Services
    • Amazon Web Services
    • Migration and ModernizationMake Your Move to the Cloud With AWS Smarter & Faster
    • Generative AIRun your Gen AI workloads on AWS with full control

What’s new

AI-Powered Voice Assistant for Smarter Search Experiences

Explore More →

Cygnet.One’s GenAI Ideation Workshop

Know More →

Our Journey to CMMI Level 5 Appraisal for Development and Service Model

Read More →

Extend your team with vetted talent for cloud, data, and product work

Explore More →

Enterprise Application Testing Services: What to Expect

Read More →

Future-Proof Your Enterprise with AI-First Quality Engineering

Read More →

Cloud Modernization Enabled HDFC to Cut Storage Costs & Recovery Time

Know More →

Cloud-Native Scalability & Release Agility for a Leading AMC

Know More →

AWS workload optimization & cost management for sustainable growth

Know More →

Cloud Cost Optimization Strategies for 2026: Best Practices to Follow

Read More →

Cygnet.One’s GenAI Ideation Workshop

Explore More →

Practical Approaches to Migration with AWS: A Cygnet.One Guide

Know More →

Tax Governance Frameworks for Enterprises

Read More →

Cygnet Launches TaxAssurance: A Step Towards Certainty in Tax Management

Read More →

Partners
  • Products Partner Program
Resources
  • Blogs
  • Case Studies
  • eBooks
  • Events
  • Webinars

Blogs

A Step-by-Step Guide to E-Invoicing Implementation in the UAE

A Step-by-Step Guide to E-Invoicing Implementation in the UAE

View All

Case Studies

Cloud-Based CRM Modernization Helped a UK Based Organization Scale Faster and Reduce Deployment Complexity

Cloud-Based CRM Modernization Helped a UK Based Organization Scale Faster and Reduce Deployment Complexity

View All

eBooks

Build Smart Workflow with Intelligent Automation and Analytics

Build Smart Workflow with Intelligent Automation and Analytics

View All

Events

11th CIO Conclave & Awards

11th CIO Conclave & Awards

View All

Webinars

Beyond Chat: How Voice-Assisted AI is Redefining Digital Engagement

Beyond Chat: How Voice-Assisted AI is Redefining Digital Engagement

View All
Cygnet IRP
Glib.ai
IFSCA

Step-by-Step Guide: Creating Pod in Kubernetes for Microservices 

  • By Abhijit Sen
  • July 12, 2024
  • 8 minutes read
Share
Subscribe

In our previous article, we learned about the docker and creating the container image for microservices. Now, let’s explore Kubernetes guide to understand why and how to create Pod in Kubernetes for Microservices.

The diagram below provides a canonical example of co-locating multiple applications into a single fundamental entity scheduled onto a single machine. While one container is dedicated to serving web requests in this deployment, the second one synchronizes the filesystem with a remote Git repository.

Putting a web server and a Git sync tool in one box might look easy, but they need different resources, especially the memory requirements differ. The web server must always answer user requests quickly, while the Git synchronizer works in the background with a “best effort” approach.

This method of using separate resources fits the elementary goal of containers, offering a robust way to make sure the web server works well.

As these two containers rely on each other, putting the web server on one machine and the Git tool on another doesn’t make sense. So, Kubernetes merges several containers into one unified unit called a “Pod.” This term is similar to the marine theme of Docker containers, where a group of whales is called a “Pod.”

Pods in Kubernetes (K8S)

A Pod is a group of application containers and volumes streaming in the same execution environment. The smallest deployable artifact in a Kubernetes cluster is the Pod, not the container. This means all the containers in a Pod always land on the same machine.

Containers within a Pod run together but share certain Linux namespaces. Applications coexisting within a single Pod exhibit the following characteristics:

  • They utilize a common IP address and port range, sharing a network namespace.
  • They share an integrated hostname established within the UTS namespace.
  • They can link through inherent interprocess communication pathways, encompassing System V IPC or POSIX message queues facilitated by the IPC namespace.

However, applications in different Pods are kept separate; they have different IP addresses, hostnames, and more. Containers in different Pods running on the same node may also be on different servers.

Thinking with Pods

When venturing into Kubernetes adoption, a frequent inquiry arises: “What constitutes suitable content for a Pod?” Sometimes, combining a WordPress container and a MySQL database container within a single Pod seems appealing. This combination, however, is not a good example of an approach to constructing Pods. Two key factors contribute to this assertion:

  1. Lack of True Interdependence: WordPress and its associated database aren’t inherently dependent on being co-located. Even if these containers are on different machines, they work well together as they communicate with each other effectively over network connections.
  2. Dissimilar Scaling Requirements: WordPress and its database have different scaling dynamics. While WordPress is easy to use and flexible for frontend load adjustments by creating additional WordPress Pods, a MySQL database scaling needs more careful planning. The constraint of utilizing a unified scaling strategy for both containers within the same Pod proves impractical.

The Pod Manifest

Pods are described in a Pod manifest – a text-file representation of the Kubernetes API object. Kubernetes strongly believes in declarative configuration, which means that you write down the desired state of the world in a Kubernetes Pod configuration and then submit that configuration to a service that takes actions to ensure the desired state becomes the actual state. This approach is a central part of any Kubernetes guide, specifically when working with microservices in Kubernetes.

  1. The Kubernetes API server accepts and processes Pod manifests before storing them in persistent storage (etcd).
  2. The scheduler also uses the Kubernetes API to find Pods that haven’t been scheduled to a node.
  3. It then places the Pods onto nodes depending on the resources and other constraints expressed in the Pod manifests.
  4. The scheduler can place several Pods on one machine, as long as there are enough resources. However, placing multiple copies of an application on the same machine could make it a single point of failure, reducing reliability. As a result, the Kubernetes scheduler aims to spread application Pods across different machines to enhance reliability and reduce the effects of potential failures.
  5. Once scheduled to a node, Pods don’t move and must be explicitly destroyed and rescheduled.

You can deploy multiple instances of a Pod repeating the workflow described here. However, ReplicaSets are better suited for running multiple instances of a Pod.

Creating a Pod

The simplest way to create a Pod is via the imperative kubectl apply command. For example, to run the my-cygnet-pod server, use the below code and create a file named “my-cygnet-pod”.

After creating the above file, run the kubectl apply command to create and run the pod.

$ kubectl apply -f my-cygnet-pod.yaml

You can see the status of this Pod by running the following:

$ kubectl get pods

Initially, you might observe the container in a Pending state, but later it will change to Running, indicating successful creation of the Pod and its containers.

For now, you can delete this Pod by running the following:

$ kubectl delete pods/my-cygnet-pod

Creating a Pod Manifest

You can write a Pod manifest using YAML or JSON, but YAML is generally preferred because it is slightly more human-editable and can add comments. It is essential to treat Pod manifests (along with other Kubernetes API objects) similar to source code, where comments play a role in explaining the Pod to new team members.

Pod manifests consist of various important fields and attributes. This includes a metadata section that defines the Pod and its labels, a specification section that details volumes, and a list of containers assigned to run within the Pod. Let’s deploy my-cygnet-pod using the following Docker command:

$ kubectl apply -f my-cygnet-pod.yaml

You can achieve a similar result by instead writing the below example to a file named my-cygnet-pod.yaml and then using kubectl commands to load that manifest to Kubernetes.

apiVersion: v1
kind: Pod
metadata:
         name: my-cygnet-pod
spec: containers:
         - image: nginx:latest
         name: my-cygnet-pod
         ports:
              - containerPort: 8080
              name: http
              protocol: TCP

While it might appear initially more intricate to oversee your application through this approach, maintaining a documented representation of the intended state proves to be the optimal strategy in the long term. This holds particularly true for sizable teams managing a multitude of applications.

Running Pods

We have created a Pod manifest that can be used to start a Pod running my-cygnet-pod. Now, we can use the kubectl apply command to launch a single instance of my-cygnet-pod:

$ kubectl apply -f my-cygnet-pod.yaml

The Kubernetes API server will receive and process the Pod manifest. Subsequently, the Kubernetes system will orchestrate the scheduling of the Pod onto a healthy node within the cluster, where the kubelet daemon will conduct continuous monitoring.

Listing Pods

We can list all Pods running in the cluster using the kubectl command-line tool. Here, this is the single Pod that we created in the previous step:

$ kubectl get pods

You can observe the Pod’s designated name (my-cygnet-pod), as assigned in the preceding YAML file. Aside from the count of operational containers (1/1), the output provides insights into the Pod’s current state, the frequency of its restarts and its lifespan.

Running this command promptly after the Pod’s creation could reveal further detail:

NAMEREADYSTATUSRESTARTSAGE
My-cygnet-pod0/1Pending01s

The Pending state implies that the Pod has been submitted but not scheduled yet.

When a more significant error occurs, such as trying to create a Pod with a container image that doesn’t exist, it is also listed in the status field.

Pod Details

Sometimes, the single-line view is insufficient because it is too terse. Additionally, Kubernetes maintains numerous events about Pods in the event stream, not attached to the Pod object.

To learn more about a Pod (or any Kubernetes object), you can use the kubectl describe command. For example, to describe the Pod we previously created, you can run the following:

$ kubectl describe pods my-cygnet-pod

This command generates a plethora of details concerning the Pod, organized into various sections.

At the top, fundamental information regarding the Pod is shown.

Then, there is information about the containers running in the Pod:

Finally, the events related to the Pod are listed. This includes information such as when the event was scheduled, when its image was pulled, and if/when it had to be restarted due to failing health checks.

Deleting a Pod

When deleting a Pod, you can delete it either by name:

$ kubectl delete pods/my-cygnet-pod

Or you can delete it using the same file that you used to create it:

$ kubectl delete -f my-cygnet-pod.yaml

When a Pod is deleted, it is not abruptly terminated abruptly. Instead, upon executing the command kubectl get pods, you’ll observe the Pod in a Terminating state.

Each Pod is allocated a termination grace period, typically set to 30 seconds by default. As a Pod transitions to the Terminating state, it ceases to accept new requests. This grace period serves a vital role by allowing the Pod to conclude ongoing requests and finalize processing before being shut down. This mechanism contributes significantly to enhancing reliability.

Accessing Pod

You may want to load the web service running in the Pod, view its logs, debug any problem, or even execute other commands inside it to help debug. Let’s learn how you can interact with the code and data inside your Pod.

Using Port Forwarding

While load balancers can make services accessible to the public or other containers, there are instances where you require direct access to a particular Pod, regardless of its internet traffic-serving status. This can be achieved through Kubernetes’ built-in port-forwarding feature, accessible via its API and command-line tools.

When you initiate the command:

$ kubectl port-forward my-cygnet-pod 8080:8080

A secure tunnel is established, extending from your local machine through the Kubernetes master and connecting to the active instance of the Pod on one of the worker nodes.

If the port-forward command is still running, you can access the Pod (the my-cygnet-pod web interface) at http://localhost:8080.

Getting More Info with Logs

You can dig deeper than describe to understand what the application is doing to debug it using Kubernetes commands for debugging running containers.

$kubectl debug <pod-name> -it –image=<debugging-tool-image>

Using the kubectl logs command, you can download the current logs from the running instance.

$ kubectl logs my-cygnet-pod

Adding the -f flag will cause you to stream logs continuously. The kubectl logs command attempts to fetch logs from the currently running container. Adding the –previous flag will get logs from a previous container instance. This is useful in cases where your containers are continuously restarting because of a problem at container startup.

Running Commands in Your Container with exec

Occasionally, logs might not provide adequate information, necessitating the execution of commands within the container’s environment to comprehend the situation. To achieve this, you can employ the following command:

$ kubectl exec my-cygnet-pod date  or  kubectl exec my-cygnet-pod – date

You just mastered the creation of Pods in Kubernetes for Microservices!

Conclusion

While microservices architecture helps you deploy features that prevent cascading failures, creating additional pods with Kubernetes deployments ensures no downtime, as containerized microservices in Kubernetes can be automatically managed and scaled.

To avail the additional benefits of deploying Kubernetes with microservices and creating pods for enhanced efficiency, contact our experts at Cygnet and learn more about the transformational outcomes your application can achieve with Kubernetes microservices architecture.

Author
Abhijit Sen
VP & Head of Architecture and Innovation

Abhijit Sen is a business and technology architect with a proven ability to develop and implement Information Technology strategies to drive business operations. 14 years of experience in Fintech across technology and strategic change management with significant analysis, design, and architecture contributions to the delivery of regulatory, control, and large-scale changes.

Related Blog Posts

What is Cloud Native Application Development?
What is Cloud Native Application Development?

CalendarNovember 18, 2025

Re-Architecting for Failure: Designing Cloud Systems That Assume Things Will Break 
Re-Architecting for Failure: Designing Cloud Systems That Assume Things Will Break 

CalendarFebruary 23, 2026

The Role of Cloud in clouDigital Transformation
The Role of Cloud in clouDigital Transformation

CalendarOctober 28, 2024

Sign up to our Newsletter

    Latest Blog Posts

    How Technology Simplifies Direct Tax Compliance Across Multiple Jurisdictions 
    How Technology Simplifies Direct Tax Compliance Across Multiple Jurisdictions 

    CalendarMarch 18, 2026

    ROI of E-Invoicing UAE: Cost vs Compliance 
    ROI of E-Invoicing UAE: Cost vs Compliance 

    CalendarMarch 17, 2026

    How to Avoid Distributed Monoliths When Modernizing on AWS? 
    How to Avoid Distributed Monoliths When Modernizing on AWS? 

    CalendarMarch 17, 2026

    Let’s level up your Business Together!

    The more you engage, the better you will realize our role in the digital transformation journey of your business








      I agree to the Terms & Conditions and Privacy Policy and allow Cygnet.One (and its group entities) to contact me via Promotional SMS / Email / WhatsApp / Phone Call.*

      I agree to receive occasional product updates and promotional messages from Cygnet.One (and its group entities) on Promotional SMS / Email / WhatsApp / Phone Call.

      Cygnet.One Locations

      India India

      Cygnet Infotech Pvt. Ltd.
      2nd Floor, The Textile Association of India,
      Dinesh Hall, Ashram Rd,
      Navrangpura, Ahmedabad, Gujarat 380009

      Cygnet Infotech Pvt. Ltd.
      6th floor, A-wing Ackruti Trade Center,
      Road number 7, MIDC, Marol,
      Andheri East, Mumbai-400093, Maharashtra

      Cygnet Infotech Pvt. Ltd.
      WESTPORT, Urbanworks,
      5th floor, Pan Card Club rd.,
      Baner, Pune, Maharashtra 411045

      Cygnet Infotech Pvt. Ltd.
      10th floor, 73 East Avenue,
      Sarabhai campus, Vadodara, 391101

      Global

      CYGNET INFOTECH LLC
      125 Village Blvd, 3rd Floor,
      Suite 315, Princeton Forrestal Village,
      Princeton, New Jersey- 08540

      CYGNET DIGITAL IT SOLUTION LLC
      Office 707, Magnum Opus Tower,
      Al Thanyah First, Dubai, U.A.E,
      P.O. Box 125608

      CYGNET INFOTECH PRIVATE LIMITED
      Level 35 Tower One,
      Barangaroo, Sydney, NSW 2000

      CYGNET ONE SDN.BHD.
      Unit F31, Block F, Third Floor Cbd Perdana 3,
      Jalan Perdana, Cyber 12 63000 Cyberjaya Selangor, Malaysia

      CYGNET INFOTECH LIMITED
      C/O Sawhney Consulting, Harrow Business Centre,
      429-433 Pinner Road, Harrow, England, HA1 4HN

      CYGNET INFOTECH PTY LTD
      152, Willowbridge Centre,
      39 Cronje Drive, Tyger Valley,
      Cape Town 7530

      CYGNET INFOTECH BV
      Peutiesesteenweg 74, Machelen (Brab.), Belgium

      Cygnet One Pte. Ltd.
      160 Robinson Road,
      #26-03, SBF Centre,
      Singapore – 068914

      • Explore more about us

      • Download Corporate Deck
      • Terms of Use
      • Privacy Policy
      • Contact Us
      © Copyright – 2026 Cygnet.One
      We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.

      Cygnet.One AI Assistant

      ✕
      AI Assistant at your help. Cygnet AI Assistant