# DevOpsCube – Easy DevOps, SRE Guides & Reviews > DevOpsCube – Award-winning Blog on DevOps, SRE, MLOps, Cloud, Automation, CI/CD, SaaS Tools, and Software Reviews Public Ghost content for AI and LLM tooling. This file includes a bounded export of public pages first, then recent public posts. Append `.md` to any post or page URL to get the content in Markdown (for example, `/example-post.md`). ## Pages ### Blog URL: https://devopscube.com/blog-67d1aedf37a2cd001b59f5d8/ Last updated: 2025-03-12T16:51:44.000Z _No content available._ ### DevOps Courses To Become a DevOps Engineer URL: https://devopscube.com/devops-courses/ Last updated: 2025-03-16T05:46:36.000Z These Devops courses are based on our [becoming a devops engineer guide](https://devopscube.com/become-devops-engineer/). There is no course that teaches DevOps because it is not a technology, it is a philosophy. But, there are various tools and technologies which help in driving a [DevOps culture](https://devopscube.com/what-is-devops-what-does-it-really-mean/) in your organization. In this guide, we will cover different verticals and related technologies that can help you become a Devops Engineer. ## DevOps Courses ( Developer and Automation tools) In this section, we have listed some of the courses which might interest you. We have added the links to websites that offer discounts on these courses. 1. [Learn Devops: Continuously Deliver Better Software](https://devopscube.com/go/devops-course/) This course will teach you DevOps principles and tools and technologies like chef, vagrant, docker, Jenkins which help you achieve DevOps workflow in your team. ### Linux Courses 1. [Complete Linux course: Become a Linux professional](https://resources.devopscube.com/coupon/complete-linux-course-professional-coupon/?ref=devopscube.com) ### Docker Courses 1. [The Docker for DevOps course: From development to production](https://devopscube.com/go/docker-course/) 2. [Docker Mastery: The Complete Toolset From a Docker Captain](https://resources.devopscube.com/coupon/docker-mastery-complete-toolset/?ref=devopscube.com) ### Kubernetes Courses Kubernetes is the first option for organizations when it comes to container orchestration. Following are the better resources to get started with Kubernetes. 1. [Learn DevOps: The Complete Kubernetes Course](https://devopscube.com/recommends/kubernetes-course/) 2. [Kubernetes the hard way (Hands-on Cluster Guide for Beginners)](https://github.com/kelseyhightower/kubernetes-the-hard-way?ref=devopscube.com#kubernetes-the-hard-way) 3. [Kubernetes Certification Coupon](https://devopscube.com/kubernetes-certification-coupon/) ### Amazon Web Services Courses If you are a sysadmin or a developer, trying to fit into DevOps culture, excellent knowledge about cloud environments is a must. There are many cloud providers but AWS is the top market player. It offers certifications for developers, sysadmins, and architects. Having an AWS certification is an added advantage for your career. 1. AWS certified solutions architect – Associate 2. [AWS Certified Developer – Associate](https://devopscube.com/go/aws-developer/) 3. AWS certified Sysops Administrator – Associate 4. AWS Lambda – Complete Guide ### Configuration Management One of the main aspects of DevOps is [infrastructure automation. ](https://devopscube.com/devops-tools-for-infrastructure-automation/) If your organization is moving to a DevOps culture, knowledge about configuration management is a must. 1. Learning Puppet 2. [Learn Chef – Offical Chef Tutorial](https://learn.chef.io/?ref=devopscube.com) 3. [Learning chef](https://www.shareasale.com/r.cfm?u=746540&b=611266&m=53701&afftrack=&urllink=https%3A%2F%2Fwww%2Epluralsight%2Ecom%2Fcourses%2Fchef%2Dplanning%2Dinstalling&ref=devopscube.com) ### Hadoop Courses If you want to get your hands dirty with Hadoop Big Data technology, you can make use of any of the following courses. 1. Hadoop Developer Certification – Training for Beginners 2. Master Big Data and Hadoop Step-By-Step from Scratch 3. Master Hadoop Cluster Administration 4. Big Data and Hadoop Essentials ### Developer Tools If you a developer and you are not using vagrant, you are wasting a lot of time in setting up the dev environment. You should start using vagrant because it increases your productivity in testing and development. 1. Vagrant Up! Comprehensive development system automation **Note:** You can find [Udemy coupons](https://crunchadeal.com/?ref=devopscube.com) up 95% from [here](http://crunchadeal.com/coupon-category/udemy-coupons/?ref=devopscube.com) ## Cloud Hosting Credits 1. Get $10 free credit on [Digital Ocean](https://m.do.co/c/44de387956f4?ref=devopscube.com) once you signup ### Advertise URL: https://devopscube.com/advertise/ Last updated: 2026-10-20T13:12:51.000Z DevOpsCube helps DevOps Platform, Cloud, SRE, Kubernetes, and MLOps teams learn through practical guides, technical guides, and hands-on resources. Today, the DevOpsCube community reaches a huge number of tech people around the world. You can see the numbers in the image below. ![DevOpsCube's social media audience reach & distribution](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-94.png) If your product is built for technical teams, we can help you reach engineers through our newsletter, practical technical content, and social media campaigns. ## Sponsor the DevOpsCube Newsletter The DevOpsCube newsletter reaches **21,000+ subscribers** interested in DevOps, Kubernetes, Cloud, and MLOps. Instead of waiting for readers to discover your tutorial, newsletter sponsorship lets you take your message directly to their inbox. You can find more information about our audience, newsletter performance, and sponsorship opportunities in the DevOpsCube Media Kit. [Media Kit (DevOpsCube)Media Kit (DevOpsCube).pdf2 MBdownload-circle](https://devopscube.com/content/files/2026/10/Media-Kit--DevOpsCube--1.pdf "Download") [Ask About Newsletter Sponsorship](https://form.jotform.com/260422550323041?ref=devopscube.com) ![Devopscube newsletter performance metrics](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-144.png) Here are some of the major sponsors we have worked with. ![DevOpscube's previous sponsors](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-147.png) Newsletter sponsorship is useful for getting your product in front of our audience. But, if your product needs more explanation, a practical tutorial can show engineers exactly how it works, and where it fits into their workflow. ## Sponsored Content We offer two options depending on how much involvement you want from the DevOpsCube team. ### Option 1: Your Team Writes the Guide You can provide the tutorial or technical article, and our team will review it before publication #### What's Included: - One sponsored tutorial or technical guide - Editorial review by the DevOpsCube team - Publication on DevOpsCube - Relevant screenshots, diagrams, and code examples supplied by your team - Promotion through the DevOpsCube channel if the content is good. 🗞️ ****Note:** Your content should be educational and useful to Engineers rather than purely promotional. If we detect even ****1% AI-generated content**, we will not publish it on our site. Price: **$399** > Submit Your Sponsored Guide to **hello@devopscube.com** ### Option 2: DevOpsCube Writes the Complete Tutorial Give us access to your product, documentation, or technical team, and our team will create the tutorial from start to finish. #### What's Included: - Topic and use-case planning - Hands-on product testing - Technical environment setup where required - Complete article written by the DevOpsCube team - Step-by-step implementation - Screenshots from the setup - Architecture or workflow explanation where useful - Technical editing - SEO optimization - Publication on DevOpsCube - Promotion through the DevOpsCube channel. Price: **$799** > Let DevOpsCube Build My Tutorial. You can reach us at **hello@devopscube.com** ## Get Featured as DevOpsCube's Tool of the Week Want to introduce your product to the DevOpsCube social media audience without creating a full technical tutorial? Our **Tool of the Week** sponsorship is designed for that. We feature your product in a dedicated social media post, and explain, in simple technical terms, what the tool does, what problem it solves, and where engineers can use it. ### What We Cover Depending on the product, the post can highlight: - What the tool does - The engineering problem it solves - key features - Common use cases - A link to your website, documentation, GitHub repository, or landing page. Price: **$200** ## Why Sponsor DevOpsCube? Technical audiences are difficult to reach with normal advertising. Engineers rarely choose a product because they saw another banner ad. They want to understand: - What problem does the product solve? - How does it work? - How do I set it up? - How does it fit into my existing stack? - What does it look like in a real environment? That is exactly the type of content we create at DevOpsCube. Instead of simply placing your logo on our website, we can help engineers understand and use your product through practical technical content. ### Payment and Contact We accept payments exclusively via PayPal for all our services. For any queries or for more detailed information about our advertising and partnership options, feel free to drop us an email at **hello@devopscube.com**. Let DevOpsCube help you reach the right audience and grow your brand visibility. ### Contribute URL: https://devopscube.com/contribute/ Last updated: 2026-10-20T13:25:47.000Z Are you looking to share your knowledge and insights in the DevOps domain? We're always excited to showcase new perspectives and expertise. You can contribute by writing an article for devopscube.com. ### Benefits of Contributing When your article qualifies for publication on our blog, you stand to benefit in the following ways: 1. **Visibility**: We provide links to your social media profiles or personal blog in your author bio, promoting your digital footprint. 2. **Author Profile:** You'll receive an author profile integrated with all your social media channels, giving readers a chance to connect with you. 3. **Promotion**: Your article will be promoted across all DevOpsCube social media channels, enhancing your reach and engagement within the **500k+ DevOps community.** ### How to Contribute If you're interested in contributing, send your articles to **hello@devopscube.com**. All submissions are carefully reviewed, and if your article aligns with our guidelines and audience, we will publish it on our blog. We look forward to showcasing your expertise and insights in the DevOps domain! ### Privacy Policy URL: https://devopscube.com/privacy-policy-67d1aedf37a2cd001b59f5da/ Last updated: 2025-03-16T05:46:06.000Z At **devopscube**, accessible from https://devopscube.com, one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by devopscube and how we use it. If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us. This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in devopscube. This policy is not applicable to any information collected offline or via channels other than this website. ## Consent By using our website, you hereby consent to our Privacy Policy and agree to its terms. ## Information we collect The personal information that you are asked to provide, and the reasons why you are asked to provide it, will be made clear to you at the point we ask you to provide your personal information. If you contact us directly, we may receive additional information about you such as your name, email address, phone number, the contents of the message and/or attachments you may send us, and any other information you may choose to provide. When you register for an Account, we may ask for your contact information, including items such as name, company name, address, email address, and telephone number. ## How we use your information We use the information we collect in various ways, including to: - Provide, operate, and maintain our website - Improve, personalize, and expand our webste - Understand and analyze how you use our website - Develop new products, services, features, and functionality - Send you emails - Find and prevent fraud ## Log Files devopscube follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information. ## Cookies Like any other website, devopscube uses 'cookies'. These cookies are used to store information including visitors' preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information. For more general information on cookies, please read ["What Are Cookies"](https://www.cookieconsent.com/what-are-cookies/?ref=devopscube.com). ## Google DoubleClick DART Cookie Google is one of a third-party vendor on our site. It also uses cookies, known as DART cookies, to serve ads to our site visitors based upon their visit to www.website.com and other sites on the internet. However, visitors may choose to decline the use of DART cookies by visiting the Google ad and content network Privacy Policy at the following URL – [https://policies.google.com/technologies/ads](https://policies.google.com/technologies/ads?ref=devopscube.com) ## Advertising Partners Privacy Policies You may consult this list to find the Privacy Policy for each of the advertising partners of devopscube. Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in their respective advertisements and links that appear on devopscube, which are sent directly to users' browser. They automatically receive your IP address when this occurs. These technologies are used to measure the effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on websites that you visit. Note that devopscube has no access to or control over these cookies that are used by third-party advertisers. ## Third Party Privacy Policies devopscube's Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may include their practices and instructions about how to opt-out of certain options. You can choose to disable cookies through your individual browser options. To know more detailed information about cookie management with specific web browsers, it can be found at the browsers' respective websites. ### Disclaimer URL: https://devopscube.com/disclaimer/ Last updated: 2025-03-16T05:45:32.000Z Any opinions and views that are expressed here are **purely individual opinions.** ### **Email** Email addresses mentioned in the comment form will always be used for privacy and **never be used for spamming or sold to anyone.** ### **Comments** We love comments, but any comments which are abusive, spread hatred, are racial, or in any way hurting anyone’s opinions will **never be entertained.** We keep our comments moderated to maintain the integrity of individuals. We reserve all rights to accept or reject comments. ### Affiliate Disclaimer Periodically we will review or mention products and services on our website. If we believe it is a **good** service, it might contain an affiliate link, which means we may receive a commission or some form of compensation if you buy the service we recommend. ### About DevOpscube URL: https://devopscube.com/about-devopscube/ Last updated: 2025-03-16T05:45:58.000Z A community for developers and system admins. Our goal is to continue to build a growing DevOps community offering the best in-depth articles, interviews, event listings, whitepapers, infographics, and much more on DevOps. Established in 2014 by Bibin Wilson. An author, blogger, and DevOps practitioner. In his spare time, he loves to try out the latest open-source technologies. He currently works as an Associate Technical Architect for cloud & DevOps implementations. ### Start Here URL: https://devopscube.com/start-here/ Last updated: 2025-03-16T05:45:11.000Z Welcome to DevOpsCube – Get access to exclusive tips, tutorials, news, case studies, and technology reviews related to DevOps ## New To DevOps? Most of our Visitors are looking for beginner tutorials and best practices around DevOps We have organized some of the contents to help with your DevOps journey. If you are new to the DevOps world, Start with the following resources. 1. [What does DevOps really mean?](https://devopscube.com/what-is-devops-what-does-it-really-mean/) 2. [How To Become A DevOps Engineer - A Comprehensive Roadmap](https://devopscube.com/become-devops-engineer/) ## Starting With Containers? Contianers is one of the important topics when in comes to DevOps Here are some guide for you to get started with containers and related orchestration tools. 1. [Beginners Guide to Containers & Docker](https://devopscube.com/what-is-docker/) 2. [Run Docker inside Docker](https://devopscube.com/release-management-explained/) 3. [List of Best Container Orchestration Tools](https://devopscube.com/docker-container-clustering-tools/) 4. [Setup a Multinode Kubernetes Cluster using Kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) 5. [Kubernetes Design Considerations](https://devopscube.com/key-considerations-kubernetes-cluster-design-setup/) 6. [CKA, CKAD & CKS Practice Kubernetes Cluster using Vagrant](https://devopscube.com/kubernetes-cluster-vagrant/) 7. [Getting started with Helm](https://devopscube.com/install-configure-helm-kubernetes/) ## Want to Get Certified in DevOps Tools? We are creating a list of certification study guide to make your learning process easy. Here are our current certification guides. 1. [Kubernetes Certified Administrator (CKA) exam tips](https://devopscube.com/kubernetes-certification-tips/). 2. [Kubernetes Certified Security Specialist (CKS) exam study guide.](https://devopscube.com/cks-exam-guide-tips/) ## Getting Started With CI/CD? In DevOps, Continuous Integration, Continuous Delivery, and Continuous Deployment are essential topics.​ When it comes to CI/CD, Jenkins is one of the best open-source tools. You will find Jenkins in most of the organizations. Here are some beginner to advanced guides for you to get started with Jenkins. 1. [Jenkins architecture explained](https://devopscube.com/jenkins-architecture-explained/) 2. [Jenkins installation guide](https://devopscube.com/install-configure-jenkins-2-0/) 3. [Jenkins Master Agent setup guide](https://devopscube.com/setup-slaves-on-jenkins-2/) 4. [Using Docker as Jenkins agents](https://devopscube.com/docker-containers-as-build-slaves-jenkins/) 5. [Getting started with pipeline as code](https://devopscube.com/jenkins-pipeline-as-code/) 6. [Creating reusable pipeline code with Shared Library](https://devopscube.com/create-jenkins-shared-library/) 7. [Jenkins multibranch pipeline - comprehensive guide](https://devopscube.com/create-jenkins-shared-library/) 8. [Release Management Explained](https://devopscube.com/release-management-explained/) ### Linux Foundation Promo URL: https://devopscube.com/linux-foundation-promo/ Last updated: 2025-03-16T05:45:20.000Z ## \[35% OFF\] Linux Foundation Flash Sale ## CKA | CKAD | CKS | KCNA | KCSA | Linux [Redeem Discount](https://devopscube.com/recommends/cloud-containers/) **Note:** Use code DCUBE2O at checkout \*This Exclusive Sale Ends soon ⏳ ## \[$355 Savings\] CKA + CKS Bundle [**Get $428 CKA + CKS Bundle Offer**](https://devopscube.com/recommends/cka-cks/) **Note:** Use code **COMBUNDLE25** at checkout ## \[$803 Savings\] CKA + CKAD + CKS KCNA + KCSA + KCSA (Kubestronaut Bundle) [**Get Bundle Offer**](https://devopscube.com/recommends/cka-cks/) **Note:** Use code **SUMMERENDS2024CT** at checkout ## \[$419 Savings\] CKA + CKAD + CKS Bundle [**Get $638 Bundle Offer**](https://devopscube.com/recommends/cka-cks/) **Note:** Use code SCRIPT20 at checkout ## Subscribe to Get Future Offers Like this As part of an exclusive Summer sale, The Linux Foundation is running a sale to give to 15% discount on all the training and certification offerings from The Linux Foundation Use the following redeem button and coupon below it to purchase the certification exams for 15% Discount [**Get 15% Discount**](https://devopscube.com/recommends/linux-foundation-catalogue/) Coupon: Use DCUBEOFFER at checkout # 57% Off Cloud Bootcamps Get 57% discount on cloud bootcamp bundle programs as part of an exclusive new year offer. You could save up to $1300 using this offer. [**Get 15% Discount**](https://devopscube.com/recommends/cloud-engineer-bootcamp-post/) Hurry!: Offer is only valid for limited time. You can avail the discount on all certifications and training programs, including Certified Kubernetes Administrator (CKA) , Certified Kubernetes Application Developer (CKAD) certifications ### Newsletter URL: https://devopscube.com/newsletter-67d1aedf37a2cd001b59f5db/ Last updated: 2025-03-16T05:44:49.000Z ## Join 200k+ Community (Tips, News & Tutorials) ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/email-campaign-concept-illustration_114360-1681-1-1.jpg) ### 🤑 DevOps Deals & Free Cloud Credits URL: https://devopscube.com/black-friday-deals/ Last updated: 2026-10-06T02:07:03.000Z We have listed the best deals for DevOps engineers on learning, software, and content creation tools. 📌 ****Important Note:** Usually best deals are available for Annual Subscriptions. So lockin the price before it expires. ## 🎓 DevOps Learning Deals If you're looking for online learning to build skills or prepare for IT certifications, the following list of major deals from online course platforms can help. | Course Providers | Discount | Deal Page | | ------------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **The Linux Foundation** | Get 50% discount on Certifications | [Get The Discount](https://devopscube.com/linux-foundation-coupon/) Use code **OCTPRIME26CCCT** at checkout for individual certs Use code **OCTPRIME26BCT** at checkout for bundles. | | **KodeKloud** | 50% Discount | [Get 50% Discount](https://tidd.ly/3YXTyO3?ref=devopscube.com) | | **DevOpsCube Courses** | Upto 40% discount on Courses | [Get 40% Discount](https://courses.devopscube.com/?ref=devopscube.com) Use code **FLASH40** at checkout | | **Pluralsight & A Cloud Guru** | 60% discount on Annual | [Get 60% Discount](https://devopscube.com/recommends/pluralsight-free-trial/) Deal is Live | | **Udacity** | Get 55% Discount | [Get 55% Discount](https://devopscube.com/recommends/udacity-plans/) Get Personalized Discount | | **Educative.io** | 55% discount on unlimited plans | [Get 55% Discount](https://devopscube.com/recommends/educative/) Deal is Live | | **ByteByteGO** | 50% discount annual subscriptions | [Get 50% Discount](https://bytebytego.com/?fpr=devopscube&ref=devopscube.com) Deal is Live | | **Datacamp** | 50% discount annual subscriptions | [Get 50% Discount](https://devopscube.com/recommends/datacamp-special-promo/) Deal is Live | ## 💁🏻‍♂️ Free Cloud Credits If you want to deploy a website or work on POCs, you can use free cloud credits from the deals below. You need to keep a watch on your credits as well as their expiry. Or else you could get charged. Also check the terms and instance usage limits, if any. | Cloud Platforms | Discount | Deal Page | | --------------------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Google Kubernetes Engine(GKE)** | Get $300 Free Credits | [Claim $300 Free Credits](https://cloud.google.com/kubernetes-engine?hl=en&ref=devopscube.com) Offer is Live | | **AWS** | Get $300 Free POC Credits | [Claim $300 Free Credit](https://pages.awscloud.com/GLOBAL-acq-LN-ARRC-reg.html?ref=devopscube.com) Offer is Live | | **Digital Ocean** | Get $200 Free Credits for Digital Ocean Kubernetes | [Claim $200 Free Credit](https://www.digitalocean.com/?refcode=8223070813&ref=devopscube.com) Offer is Live | | **Linode Cloud** | Get $100 Free Credits for Linide Kubernetes Engine | [Claim $100 Free Credit](https://linode.gvw92c.net/Ao32WJ?ref=devopscube.com) Offer is Live | | **Vultr Cloud** | Get $250 Fee Credits for Vultr Kubernetes Engine | [Claim $250 Free Credit](https://www.vultr.com/?ref=devopscube.com) Offer is Live | | **Azure Cloud Hosting** | Get $200 Free Credits | [Claim $200 Free Credit](https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account?icid=azurefreeaccount&ref=devopscube.com) Offer is Live | ## ⚙️ Content Creation Tool Deals Here are the content creation tools we use for DevOpsCube. | Tools | Discount | Deal Page | | --------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------ | | **Ghost Blogging Platform** | Upto 20% discount | [Get 20% Discount (Annual)](https://ghost.org/?via=bibin75&ref=devopscube.com) Deal is Live | | **Beehiiv** | Upto 20% discount | [Get 20% Discount](https://www.beehiiv.com/?via=devopscube&ref=devopscube.com)Use code **DCUBE20OFF** at checkout Deal is Live | | **Teachable** | Upto 30% discount | [Get 30% Discount](https://devopscube.com/recommends/teachable-pricing/) Deal is Live | | **Beehiiv** | Upto 20% discount | [Get 20% Discount](https://www.beehiiv.com/?via=devopscube&ref=devopscube.com) Deal is Live | | **Elevenlabs** | Upto 50% discount | [Get 50% Discount](https://try.elevenlabs.io/p4fh9dhwbmjw?ref=devopscube.com) Deal is Live | ## 👨🏻‍💻 Web Hosting Deals If you want to set up a self-hosted WordPress blog or a website, you can make use of the Black Friday web hosting deals | Hosting Providers | Discount | Deal Page | | ----------------------------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Hostinger** | Upto 83% discount | [Get 83% Discount](https://comtechies.com/recommends/hostinger-2?ref=devopscube.com) Deal is Live | | **Bluehost** | Upto 62% discount | [Get 62% Discount](https://comtechies.com/recommends/bluehost?ref=devopscube.com) Deal is Live | | **Cloudways** | 30% Discount | [Get 30% Discount](https://devopscube.com/recommends/cloudways/) Use code **DEVOPS30** at checkout | | **InMotion** | Get Upto 77% Discount | [Get 77% Discount](https://comtechies.com/recommends/httpspartnersinmotionhostingcomc56122972600334222?ref=devopscube.com) Deal is Live | | **HostGator** | Get Up to 76% Discount | [Get 76% Discount](https://comtechies.com/recommends/hostgator?ref=devopscube.com) Deal is Live | | **Hosting.com(Formely A2 Hosting)** | Get Up to 87% Discount | [Get 87% Discount](https://comtechies.com/recommends/httpswwwa2hostingcomaid67af0c96b259cbid75dbf1c0?ref=devopscube.com) Deal is Live | | **Scala Hosting** | Get Up to 78% Discount | [Get 78% Discount](https://www.scalahosting.com/?gad%5Fsource=1&gad%5Fcampaignid=22822979026&gclid=EAIaIQobChMIo4eXi93ckAMV5aNmAh221Ss4EAAYASAAEgI-wvD%5FBwE&ref=devopscube.com#jorgearagao) Deal is Live | | **DreamHost** | Get Up to 83% Discount | [Get 83% Discount](http://click.dreamhost.com/aff%5Fc?offer%5Fid=8&aff%5Fid=21910&ref=devopscube.com) Deal is Live | | **ChemiCloud** | Get Up to 84% Discount | [Get 84% Discount](https://chemicloud.com/?ref=devopscube.com#68e6451055163) Deal is Live | ## ## Posts ### Cloudways Autonomous Review (Backend Tech & Key Features) URL: https://devopscube.com/cloudways-autonomous-review/ Last updated: 2026-10-16T13:18:17.000Z In this blog we will specifically look at Cloudways Autonomous offering from Cloudways. I have spoken about all the other features of Cloudways in my detailed [Cloudways review.](https://devopscube.com/cloudways-review/) If you are getting started with the platform, it is a good place to start to understand the full offering, performance metrics, supported apps, and the backend cloud platforms used by Cloudways for hosting. Cloudways Autonomous deserves a dedicated post so that as a user or a small business owner you can understand what it is and weather you need it or not. ## What Is Cloudways Autonomous? [Cloudways Autonomous](https://www.cloudways.com/en/autonomous.php?ref=devopscube.com) is a managed web hosting service for WordPress that leverages the power of [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/) to benefit SMBs. It automatically scales to manage your website's traffic, featuring an auto-adjusting server resources that ensures smooth operation even during high-traffic periods. The autonomous [Kubernetes clusters](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) run on [Google Kubernetes Engine (GKE)](https://devopscube.com/setup-kubernetes-cluster-google-cloud/). GKE is one of the Google Cloud services used by several enterprises around the world to host their high-traffic website. Technically, when you host your applications on Cloudways Autonomous, they get deployed in a [Kubernetes pod](https://devopscube.com/kubernetes-pod/). The pod would be managed by a deployment that self-heals if the pod has issues. So when you run your applications on Cloudways Autonomous you get all the underlying of benefits of Kubernetes on scalable GKE platform. Here is the high level architecture that shows how your application get hosted on Autonomous platform. ![Cloudways Autonomous platform architecture.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-25.png) Architecture Source: cloudways.com ### Key Features Of Cloudways Autonomous: Let's look at the three important features, 1. **Hands-off Management -** You just take care of your business, cloudways will take care of everything and server configuration. 2. **True Autoscaling -** It will use Kubernetes to automatically scale resources, according to real-time website traffic (ups and downs). 3. **High Availability -** Your website is distributed across different servers. Your website remains online, even if one server is facing issues. 4. **Free Managed Migration -** You will get free managed migration when you subscribe to an Autonomous plan, and add a new application. ## Who are The Ideal Users? Cloudways Autonomous will be helpful for the following users. 1. Focus On Business Growth: 2. E-Commerce Sites 3. Agencies/Freelancers ## Why Autoscaling Matters Now imagine, you have a big online store, the sales or promotion will peak in some period and your website will get high traffic. During this time, sometimes your website has a chance to crash. And your sales and reputation all fall. For this purpose, autoscaling helps your website stay online, even during peak traffic. Guess what? You only want to pay for the resources that your website uses. There is no extra payment or overpaying for the fixed server capacity. The important thing is, that you don't want to adjust the server resources manually because cloudways will handle them automatically. Cloudways autonomous reduces your hurdles of server management. ## Is It Worth It? Cloudways autonomous gives the best feature for WordPress, but a thing is, choose based on your needs, here are quick breakthroughs. - **Pros:** Effortless server management, automatic scaling for traffic, and site will be online even during the server issues. - **Cons:** Cost is higher when compared to other basic hosting. - **Perfect for:** High-traffic E-commerce stores, high-traffic websites, and multiple websites. First of all thing about your website needs, if you are facing high traffic and server costs, then cloudways autonomous is the best. ## Customer Support Of Cloudways Autonomous It provides great customer support. It has a high rating(NPS 73), and most customers are happy with their customer support. They are available for 24/7 support to help you at any time. In what way you can reach them? You can reach them through an instant message app or raise a support ticket. ## Security Features Of Cloudways Autonomous Cloudways Autonomous integrates well-protected security features, and you don't need to provide manual assistance. Let's look at a quick overview of its security features. ### DDoS Mitigation: DDoS helps to protect your website during high traffic, and it has 2-step protection to allow users to access your website. The first step, it analyzes the network and the second it analyzes the application to make sure and protect your website from attacks. During high traffic, it will help to stay fast, without failing. ### Web Application Firewall(WAF) Integration: Cloudways works with Cloudflare Enterprise for extra security to protect your website well. This will notice every incoming user or any other unwanted activity happening on the website. It will identify the untrusted account, which will interrupt your traffic or website and block it for our website safety. ### PCI DSS Compliant: PCI DSS(Payment Card Industry Data Security Standard), when you buy anything with your credit or debit card, will keep your information safe. Cloudways said they are not guaranteed for your credit card security, but they come close to protecting you with its security features and your card details will be safe with their services. Sometimes you want to add additional security for PCI DSS, according to your needs. ### Free Cloudflare Enterprise: Cloudflare Enterprise helps your website deliver content fast, and adds security. With this, you can manage under attack mode, WAF, rate limiting, AI crawler blocking, and browser integrity checks. ### Free Malware Protection: If you choose any Cloudways Autonomous plan, malware protection is enabled with no extra cost for new applications. This will scan continuously and detect malware and suspicious activity. When the threat is detected, the system automatically removes or blocks it and records the event for review. ## What Makes Cloudways Autonomous Pricing Competitive & Easy-To-Understand Here are the three things that make Cloudways Autonomous pricing competitive and easy to understand. 1. It uses a **pay-as-you-go model**, which means you only want to pay for the used resources by your website. You don't want to pay an extra fee or any additional amount. 2. It charges an additional amount for a unit of bandwidth, storage, or visits. So, it will be transparent, and you can easily track your cost. 3. Cloudways Autonomous starts from **$99/month** with a set of features, it is a **base plan** and it provides close to every feature when compared to other high plans. Yes, these are things that make Cloudways Autonomous pricing competitive and easy to understand. Here are the pricing and plans of Cloudways Autonomous. | Plan Name | Pricing | Websites | Baseline Autoscale Servers | | ---------- | ------------- | -------- | -------------------------- | | Free Trial | $0 for 3 days | 1 | 1 | | Growth | $99/month | 1 | 1 | | Scale | $199/month | 1 | 2 | | Plus | $399/month | 1 | 3 | Prices checked on October 15, 2026\. Check the [official pricing page](https://www.cloudways.com/en/autonomous.php?ref=devopscube.com#pricing) for updates. Here is a quick comparison of the complex pricing of IAAs & non-transparent pricing of managed solutions like WP Engine for mission-critical websites. | | Cloudways Autonomous | IAAS/other managed hosting | | ----------------- | ------------------------------- | -------------------------- | | Pricing Model | Pay for the used resources only | IAAS/other managed hosting | | Cost transparency | Clear per unit charges | Hidden fee(might be) | | Base plan | Straightforward base plan | confusing(might be) | ### Linux Foundation Coupon: 47% Off For DevOps Enthusiasts URL: https://devopscube.com/linux-foundation-coupon/ Last updated: 2026-10-20T15:45:53.000Z Looking for the latest Linux Foundation coupon? In this post, we share up to 75% off popular certifications like CKA, CKAD, CKS, courses, SkillCreds, and IT professional programs. [The Linux Foundation](https://www.linuxfoundation.org/?ref=devopscube.com) is the largest open-source non-profit organization. It supports open-source initiatives and projects. Its main focus is on shared technology. ## Linux Foundation Coupon (October 2026) Linux Foundation runs several offers each year for developers, sysadmins, and [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) practitioners. To support the DevOps community, we track the latest discounts. Here are the **latest Linux Foundation offers** for DevOps enthusiasts. ### \[Up to 47% OFF\] Linux Foundation Cyber Security Sale (Only 24 hrs Left) As part of an exclusive cybersecurity sale, the Linux Foundation is offering up to **47% off** certifications, related bundles, and the Thrive One subscription. For individual certifications, get a flat 35% discount. [Redeem 35% DISCOUNT ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **OCT26NONCYBERCT** at checkout Use code **OCT26NONCYBERCT** to save up to **47%** on the following security certifications and bundles 1. CKS 2. KCSA 3. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) Use code OCT26NONCYBERCT to save more than 40% on the following certification bundles. 1. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) 2. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 3. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 4. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 5. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) Use code **OCT26THRIVECT** to get a flat 30% off the Thrive One subscription. ⌛ The offer expires on October 23rd. So lock in the price before it expires. ### \[Up to 38% OFF\] Linux Foundation Sale The Linux Foundation is running an **exclusive sale with up to 38% off**. For individual certifications, you get a flat 30% off. [Redeem 30% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **DCUBE30** at checkout The following are the options where you can get **up to a 38% discount** on certification bundles using code **DCUBE30** 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) (**$370** Savings) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) (**$370** Savings) 3. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) (**$300+** Savings) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) (**$680+** Savings) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/)(**$288** Savings) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) (**$229** Savings) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) (**$203** Savings) ⌛ The offer expires soon. So lock in the price before it expires. This offer is applicable to all certifications, courses, Skillcreds, IT Professional programs, and instructor-led training. Use the link and coupon given below to redeem the offer. You can also save **more than 50% on any certification** when you bundle with a THRIVE Annual Subscription [SAVE 50% WITH THRIVE BUNDLES ](https://devopscube.com/recommends/thrive-offer/) 👉 Our exclusive voucher code can be used for ****CKA, CKAD, CKS, KCNA & KCSA, PCA, CGOA** certifications as well. For exclusive Kubernetes certification offers, check [kubernetes certification coupons](https://devopscube.ghost.io/kubernetes-certification-coupon/?ref=devopscube.com) page. ### \[35% OFF\] Kubernetes Certification Bundle Discounts To **save more** on Linux Foundation certification and training programs, choose one of the available Linux Foundation bundles. Certification bundles offer huge discounts. For example, with [Kubestronaut](https://devopscube.com/kubestronaut-roadmap/) Bundle, you can save up to $788. Here are the popular Linux Foundation certification and course bundles. | **Certification/Course Bundle** | **Bundle Offer** | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | | CKA + CKAD + CKS + KCNA + KCSA (Kubestronaut Bundle) | (Total $788 Savings) Using code ****DCUBE30** | | [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/k8s-bundle/) | (Total $370 Savings) Using code ****DCUBE30** | | [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) | (Total $306 Savings) Using code ****SCRIPT30** | | [KCNA + CKA Bundle](https://devopscube.com/recommends/kcna-cka/) | (Total $210 Savings) using code ****SCRIPT30** | | [Linux Foundation Certified IT Associate (LFCA)+ Kubernetes and Cloud Native Associate (KCNA) Exam Bundle](https://devopscube.com/recommends/lfca-kcna/) | ($160 Savings)$75 bundle discount and an additional $85 discount using code ****SCRIPT30** | | [Kubernetes Fundamentals (LFS258) + CKA Exam Bundle](https://devopscube.com/recommends/lfs258-cka-bundle/) | (Total $218 Savings) $99 bundle discount plus an additional $119 discount using code ****DCUBE30** | | CKS + [Kubernetes Security Essentials (LFS260](https://training.linuxfoundation.org/training/kubernetes-security-essentials-lfs260/?ref=devopscube.com) ) bundle | (Total $218 Savings) $99 bundle discount plus an additional $119 discount using code ****DCUBE30** | | CKAD + [Kubernetes for Developers (LFD259)](https://training.linuxfoundation.org/training/kubernetes-for-developers/?ref=devopscube.com) | Total $218 Savings using code ****SCRIPT30** | For each certification, you can view bundle offers under the Enroll button, as shown below. Another option is IT Professional programs. You can choose the right IT Professional program, with bundle savings of around $1000\. These programs include courses and certifications with huge savings. ### \[Save 48%\] Golden Kubestronaut Coupon If you pass CKA, CKAD, CKS, KCNA, KCSA, PCA, ICA, CCA, CAPA, CGOA, CBA, OTCA, KCA, CNPA, CNPE, and LFCS (16 certifications), you can become a Golden Kubestronaut. Buying these certs individually would cost you **$5,000+ USD**. However, the Golden Kubestronaut bundle costs $4229\. So the bundle already gives you about **15-20% savings** before you apply any additional coupons. On top of this discount, you can use the following code to get a 30% flat discount. So a total of around 48% discount. [Get 48% Golden Kubestronaut Discount ](https://devopscube.com/recommends/lf-promo) **Coupon**: Use Code **DCUBE30** at checkout Once you become a Golden Kubestronaut, you can enjoy the following benefits. - All the benefits that come with Kubestronaut - An exclusive 50% off one KubeCon registration annually - Flat **60% discount vouchers** for new CNCF certifications - Complimentary access to the THRIVE-ONE Annual Subscription ### \[50% OFF\] Linux Foundation Coupon Using TUX Rewards Using the Linux Foundation reward points you can get 50% flat discount vouchers for Certification and training programs. ![50% OF CKA Discount using reward points. ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-13.png) To be eligible for the 50% discount coupon, you need to have minimuM 500 reward points. Each dollar spent on the Linux foundation program is a reward point. [CHECK 50% COUPON ELIGIBILITY ](https://openprofile.dev/myrewards/coupons?ref=devopscube.com) ### \[30% OFF\] Linux Foundation Skillcred Certifications If you want to get certified in DevOps skills like bash scripting, helm package management, git, and YAML, you could choose Skillcreds. Get a 15% discount on all the following Linux Foundation Skillcred certifications. 1. VIM:- Text Editing with Vim (SC100) 2. YAML: - Open Data Formats: YAML (SC101) 3. Git:- Source Control Management with Git (SC102) 4. BASH: Shell Scripting Using Bash (SC103) 5. Helm: Developing Helm Charts (SC104) [Get SKILLCRED DISCOUNT ](https://devopscube.com/recommends/skillcred/) **Coupon:** Use Code **SCRIPT30** at checkout. ### \[100% OFF\] Free Linux Foundation Courses There are **55 + free self-paced courses** from the Linux foundation. Courses ranging from [Linux](https://devopscube.com/list-linux-networking-troubleshooting-and-commands-beginners/), networking, blockchain, [containers](https://devopscube.com/what-is-docker/), cloud, [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), GitOps, etc. Get access to the free courses and start learning today. [access free courses ](https://devopscube.com/recommends/lf-free-course-catalogue/) You will find free courses from the following categories. 1. System Administration 2. Cloud & Containers 3. Networking 4. Blockchain 5. Linux Kernel Development 6. IoT & Embedded Development 7. Web & Application Development 8. Systems Engineering 9. DevOps & Site Reliability 10. Open Source Best Practice 11. AI/Machine Learning ### \[30% Discount\] Prometheus Certified Associate (PCA) certification You can get a 30% discount on the Prometheus PCA certification. This certification focuses on observability and Prometheus skills. [Get PCA discount ](https://devopscube.com/recommends/pca-certification/) **Coupon**: Use Code **DCUBE30** at checkout ### \[$240 Discount\] Cloud Engineer IT Professional program \[$1300 Bundle Savings\] Linux Foundation has released a new [Cloud Engineer Bootcamp](https://devopscube.com/advanced-cloud-engineer-bootcamp/) program, which spans 6 months. This Bootcamp will prepare any beginner with the required skills in the latest cloud computing technologies and DevOps tools [Get CLOUD ENGINEER discount ](https://devopscube.com/recommends/cloud-engineer-bootcamp-post/) **Coupon**: Use Code **SCOFFER15** at checkout Here are the key benefits of the Cloud Engineer Professional program program. 1. Interactive live sessions with instructors 2. You will learn from the cloud-native foundation host instructors. 3. Well-recognized cloud-native certifications. The six-month Cloud Engineer Bootcamp has the following curriculum. 1. Essentials of Linux System Administration (LFS201) 2. Linux Networking and Administration (LFS211) 3. Linux Foundation Certified System Administrator exam (**LFCS certification**) 4. Containers Fundamentals (LFS253) 5. DevOps and SRE Fundamentals (LFS261) 6. Kubernetes Fundamentals (LFS258) 7. Certified Kubernetes Administrator Exam (**CKA Certification**) By the end of the Bootcamp, you will be certified on both Linux & Kubernetes (CKA) ### \[$240 Discount\] Advanced Cloud Engineer IT Professional program \[$1000 Bundle Savings\] Linux Foundation has an [advanced cloud engineer Bootcamp program](https://devopscube.com/advanced-cloud-engineer-bootcamp/) focussing more on container technology. This boot camp offers end-to-end training on container fundamentals, logging, monitoring, deployment, [service mesh](https://devopscube.com/istio-opensource-platform-microservices-management/), and much more. The associated training course will cover tools like [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/), fluent, [helm](https://devopscube.com/install-configure-helm-kubernetes/), etc. With advanced cloud engineer Bootcamp, you can **save $1000** from the list price of $2200\. You can save an **additional 20% with the site-wide promo code**. [Save $1300 on Advanced Cloud Engineer Bootcamp ](https://devopscube.com/recommends/advanced-cloud-engineer-bootcamp/) **Coupon**: Use Code **SCOFFER15** at checkout ### \[20% Off\] Certified Hyperledger Fabric Administrator Get a 15% discount on CHFA certification using this exclusive coupon code. With this discount, the CHFA cost would be $318 instead of ~~$375~~. If you choose the LFS272 Course + CHFA Exam bundle, you could save an extra $100. [Get CHFA discount ](https://devopscube.com/recommends/chfa-certification/) Use Coupon: **DCUBE20** at checkout CHFA covers the following competencies. 1. Application Lifecycle Management - 20% 2. Install and Configure Network - 25 % 3. Diagnostics and Troubleshooting - 15% 4. Membership Service Provider - 20% 5. Network Maintenance and Operations - 20% ### \[$57 OFF\] FinOps Certified Practitioner (FOCP) Get a $57 discount on FOCP Linux Foundation Certification. [SAVE $57 ON FOCP ](https://devopscube.com/recommends/focp-certification/) Use Coupon: **DCUBEOFFER** at checkout FOCP covers the following competencies 1. Challenge of Cloud - 8% 2. What is FinOps & FinOps Principles - 12% 3. FinOps Teams & Motivation 12%FinOps Capabilities - 28% 4. FinOps Lifecycle - 30% 5. Terminology & the Cloud Bill - 10% ### \[75% OFF\] Linux Foundation Prime Day Sale (Expired) With the Linux Foundation Prime Day sale, you can get up to 75% off certifications, courses, SkillCreds, and Thrive subscriptions. For individual certifications like CKA, CKAD, and CKS, plus courses and instructor-led training, get a flat 40% discount. [Redeem 40% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **OCTPRIME26CCCT** at checkout Use code **OCTPRIME26BCT** to save more than 50% on the bundles below compared with individual certification prices. 1. [CKA + CKS Bundle ](https://devopscube.com/recommends/cka-cks/) 2. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 3. [CKA + CKAD + CKS Exam bundle](https://devopscube.com/recommends/k8s-bundle/) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://devopscube.com/recommends/kubestronaut-bundle/) (Kubestronaut Bundle) (Up to 60% combined discount) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) Get 75% off the following super bundles. - [Cybersecurity Super Bundle](https://trainingportal.linuxfoundation.org/collections/cybersecurity-bundle?ref=devopscube.com) - [Cloud Native Developer Super Bundle](https://trainingportal.linuxfoundation.org/collections/devsecops-super-bundle?ref=devopscube.com) - [Cloud Native Super Bundle](https://trainingportal.linuxfoundation.org/collections/cloud-native-containers-package?ref=devopscube.com) You can also get 20% off new THRIVE-ONE Annual subscriptions with code **OCTPRIME26TOCT.** ### \[Up to 48% OFF\] Linux Foundation Pack Your Future Sale (Expired) Currently, the Linux Foundation is offering **35% OFF** on all its individual certifications as part of its Pack Your Future sale. [Redeem 35% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **SEPT26BTS35CT** at checkout Also, you will get 48% OFF for the following Kubernetes certification bundles using code **SEPT26BTS40CT** at checkout. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 3. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) ⌛ It's a limited-time offer, so grab it soon. ### \[Up to 40% OFF\] Linux Foundation 35th Anniversary Sale \[Expired\] As part of an exclusive anniversary sale, you can get up to **35% savings** on Cloud Native Certifications, e-Learning, and Bundles from The Linux Foundation. For individual certifications, get a flat 35% discount. [Redeem 35% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **TUX35CT** at checkout Using code **TUX35CT**, you will get **up to 40% discount** on the following and all the Linux Foundation certification bundles as compared to individual certification purchases. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) (**$370** Savings) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) (**$370** Savings) 3. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) (**$300+** Savings) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) (**$680+** Savings) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/)(**$288** Savings) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) (**$229** Savings) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) (**$203** Savings) ⏳ This offer will expire soon. So lockin the price before it expires. ### \[48% OFF\] Linux Foundation Site-Wide Tech Talent Sale (Expired) 💡 This sale will be live again in 2027 June. The exclusive Tech Talent sale is live again in 2026, The Linux Foundation is offering a Site-Wide on all the the certifications and related bundles. You can save up to 48% on certifications. For individual certifications, you can save a flat 40% site-wide. [Redeem 40% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **TECHTALENT26CT** at checkout You can save upto 48% using code **TECHTALENT26CT** on the certification bundles. ⌛ The offer expired on june 14th. 💡 ****Important Note:** You can download the 2026 tech talent report [from here](https://training.linuxfoundation.org/2026-state-of-tech-talent-report/?ref=devopscube.com). ### \[UpTo 45% OFF\] Linux Foundation Kubernetes Birthday Sale (Expired) [Kubernetes](https://kubernetes.io/?ref=devopscube.com) is turning 12\. As part of this celebration, you enjoy great 45% savings on Cloud Native Certifications, e-Learning and Bundles from The Linux Foundation. [Redeem 35% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **HBDK826CCCT** at checkout Using code **HBDK826CT**, you will get **up to 45% discount** on the following and all the linux foundation certification bundles. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) (**$370** Savings) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) (**$370** Savings) 3. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) (**$300+** Savings) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) (**$680+** Savings) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/)(**$288** Savings) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) (**$229** Savings) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) (**$203** Savings) ⏳ This offer will expire on June 5th. It is an exclusive three days sale. Dont miss it! ### \[65% OFF\] Linux Foundation Cyber Monday Sale (Expired) The much awaited **Linux Foundation Cyber Monday sale** is live now. You can get courses, certifications, skillcreds, professional programs for **huge discounts of up to 65%.** [GET 50% CYBER MONDAY DISCOUNT ](https://devopscube.com/recommends/lf-promo) **Coupon**: Use Code **CW25CT** at checkout Use code **CW25PBCT** to save up to **65%** on the following certification bundles 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 3. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 4. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 5. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 6. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) Use code **CW25K8BUNCT** to get 60% on Kubestronaut Bundle, Golden Kubestronaut Bundle, Kubestronaut to Golden Kube upgrade Bundle, CKA to Kubestronaut Bundle, CKAD to Kubestronaut Bundle 1. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) ⌛ The offer expires in 24 hrs. So lock in the price before it expires. You wont get this steep discounts until next cyber monday. ### Save up to 75% on NODEJS Training and Certification Use coupon **NODEJS30** to get a 30% discount on all Linux foundation [nodeJS](https://devopscube.com/nodejs-tutorial-how-to-install/) certification exams and training programs. [SAVE 30% ON NodeJS Training & Certification ](https://devopscube.com/recommends/nodejs-certification-coupon/) | NoeJS Codes | NODE65, NODE70, NODEPOWER | | ----------- | ------------------------- | The following are the NodejS programs that are eligible for this discount. 1. Node.js Application Development (LFW211) + JSNAD Exam Bundle 2. OpenJS Node.js Application Developer (JSNAD) 3. OpenJS Node.js Services Developer (JSNSD) ### \[60% Savings\] Developer Course Bundle Offer The developer[ bundle](https://devopscube.com/recommends/linux-foundation-developer-bundle/) offers free [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) courses with each chosen course. You will get the bundle for $179 which is worth $498 ### Linux Foundation Black Friday Sale 2026 With the Linux foundation sitewide black Friday sale, you can get up to 65% discount on all training, certification (**CKA, CKAD, CKS, Linux, NodeJS, etc.**), and **Bootcamp programs**. You can use this discount code along with the exciting bundle offers. It is a one-time offer for a year. We will update once the Linux foundation black Friday offer is live for 2026. ### \[$400 OFF\] Linux Foundation Sysadmin Sale \[Expired\] As part of an exclusive Sysadmin sale, The Linux Foundation is offering up to a $400 discount on all the courses, certifications, and Bootcamp programs. Next sysadmin sale will be in July 2025. [Get $400 discount ](https://devopscube.com/recommends/sysadmin-sale/) **Note**: Check the offer page for all the coupons Following are the bundle offers available. | **Category** | **Bundle Offers** | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | Cloud Engineering BootcampAdvanced Cloud Engineer BootcampCloud Native Developer BootcampDevOps Bootcamp | Use code **JULY23400** to save $400\. [**View all bootcamp offer here.**](https://devopscube.com/recommends/sysadmin-sale/) | | 1\. Kubernetes Fundamentals Course + Certified Kubernetes Administrator (CKA) + CKAD Exam Bundle2\. Essentials of Linux System Administration Course + Linux Foundation Certified System Administrator (LFCS) Exam Bundle3\. Kubernetes Security Essentials Course + CKA + Certified Kubernetes Security Specialist (CKS) Exam Bundle | Use code **JULY23400**. [**View All Power Bundles Here**](https://devopscube.com/recommends/sysadmin-sale/) | | | | ### \[35% OFF\] Linux Foundation Back To School Offer \[Expired\] As part of an exclusive back-to-school sale, The Linux Foundation is running a **35% flat exclusive discount** on all the courses, certifications, and Bootcamp programs for DevOpsCube readers. The offer expires soon. So lock in the price before it expires. [Get 35% flat discount ](https://devopscube.com/recommends/lf-promo/) ### \[35% OFF\] Linux Foundation New Year Sale \[Sitewide\] - Expired As part of an exclusive New Year sale, The Linux Foundation is offers a **35% flat exclusive discount** on all the certifications, courses, skillcreds, and IT professional programs for DevOpsCube readers. The next offer will be live in 2026 new year. [REDEEM 35% flat discount ](https://devopscube.com/recommends/cloud-containers/) **Coupon**: Use Code **NEWYEAR24COM** at checkout **Note**: This offer expires very soon The best savings are for certification bundles as shown below. Check all the bundles before you purchase the certification. ![Linux Foundation certification bundle offer](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-88-5.png) ### \[46% OFF\] Linux Foundation Education Sale \[Expired\] One of the **BIGGEST** Linux foundation promotions of the year is live now! With up to **55.5% off**, it's like Cyber Week came early! The offer is extended with a special 46% discount on individual certifications, courses and IT professional programs. [Redeem SPECIAL Offer ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **MAY24SPECIALCT** at checkout **Note**: This Offer expires on May 31st. So lockin the price before it expires. ⏳ Using code **MAY24PLUSCT** you can **save up to 55%** on certification bundles and IT professional programs. Following are the top certificaation bundle picks for maximum savings 1. [kubestronaut Bundle](https://devopscube.com/recommends/kubestronaut-bundle/) (KCNA + KCSA + CKA + CKAD + CKS) - **$938 savings** 2. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/k8s-bundle/) \- **$638 Savings** ### Cyber Week Purchase Reward ($100 Gift Voucher) With every purchase on certifications , trainings etc, you will get a $100 gift voucher. You can make use of this reward with any certification, e-learning or instructor-led training course from January 1, 2025-October 31, 2025. After your purchase, you will receive the gift voucher in the email before ***December 31, 2024.*** ![$100 Cyber Week Purchase Reward from Linux Foundation](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/cyber-week-purchase-reward-1-1.webp) ### \[35% Off\] Linux Foundation IT Professional program Coupons \[Expired\] If you are looking for a Linux Foundation IT Professional program discount, make use of the 35% flat discount of all the programs. Also, by default, it offers more than 50% discount on certifications + courses combined. [Redeem 35% IT Professional program DISCOUNT ](https://devopscube.com/recommends/bootcamp-catalog/) **Coupon:** Use Code **APRIL25CT** at checkout. ### \[40% Off\] Linux Foundation Instructor-led Training Coupon \[Expired\] For a limited time, you can get up to 20% off on instructor-led courses from the Linux foundation. [Redeem 40% Off INSTRUCTOR-LED TRAINING ](https://devopscube.com/recommends/instructor-led-training/) Use Coupon: **MAY25CT** at checkout The following are the six Instructor-led Training course available on the Linux Foundation with 20% discount.. 1. Developing Linux Device Drivers (LFD430) 2. Kubernetes Security Fundamentals (LFS460) 3. Embedded Linux Development (LFD450) 4. Linux Kernel Internals and Development (LFD420) 5. Developing Embedded Linux Device Drivers (LFD435) 6. Kubernetes Administration (LFS458) There are a total of 22 instructor led courses on the Linux Foundation. ### \[47% OFF\] Linux Foundation Back to School & Skills Sale \[Expired\] As part of exclusive back to school sale, you can get up to 47% discount on Certifications, trainings, IT professional programs, Skillcreds and bundles. For individual certifications like **CKA, CKAD, CKS** etc, you will get a **flat 40% discount.** [Get 40% Discount Now ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **SEPT25CT** at checkout You could **save up to 47%** using code **SEPT25CT** on Certification Bundles. 1. [CKA + CKS Bundle (](https://devopscube.com/recommends/cka-cks/)42% Savings) 2. [CKA + CKAD + CKS Exam bundle](https://devopscube.com/recommends/k8s-bundle/) (43% Discount) 3. [CKA + CKAD + CKS + KCNA + KCSA](https://devopscube.com/recommends/kubestronaut-bundle/) (Kubestronaut Bundle) (47% Discount) ****Note**: This offer is valid only for a limited time. So hurry up and lockin the price. ### \[75% OFF\] Linux Foundation Flash Sale As part of Linux Foundation Blockbuster sale, you can get flat 75% discount on certifications and e-learning courses Use code **SEPT25BUN50CT** with the following key bundles to get up to 65% discount. 1. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) 2. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 3. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) Get **75% discount** on the super bundles using coupon **SEPT25BUN50** - [Cloud Native Super Bundle](https://trainingportal.linuxfoundation.org/collections/cloud-native-containers-package?ref=devopscube.com) \[CKA Certification & 6 Courses\] - [Cybersecurity Super Bundle](https://trainingportal.linuxfoundation.org/collections/cybersecurity-bundle?ref=devopscube.com) \[CKA, CKS & LFCS certification & 6 courses\] - [Cloud Native Developer Super Bundle](https://trainingportal.linuxfoundation.org/collections/devsecops-super-bundle?ref=devopscube.com) \[CKAD & 5 Courses\] ⌛ The offer expires in two days! So lock in the price before it expires. ### \[Up to 55% OFF\] Linux Foundation Kubecon Sale \[Expired\] As part of an exclusive November Kubecon sale, The Linux Foundation is offering a **40% flat discoun**t coupon for all the certifications, courses, skillcreds, and Professional programs for DevOpsCube readers. [Get 40% flat discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **40KUBE25CT** at checkout Use the same coupon to save up to 55% on the following key certification bundles. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 3. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) ⌛ The offer expires soon. Lockin the price before it expires. ### \[47% OFF\] Linux Foundation Sitewide Holiday Sale \[Expired\] As part of exclusive back to Holiday sale, you can get up to 47% discount on Certifications, trainings, IT professional programs, Skillcreds and bundles. For individual certifications like **CKA, CKAD, CKS** etc, you will get a **flat 40% discount.** [Get 40% Discount Now ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **HOLIDAY25CT** at checkout ### Exclusive Finops Certification and Courses Coupon \[Expired\] Get exclusive 12% discount on FinOps Certification and Training using our exclusive coupon. [GET 12% FinOps Discount ](https://devopscube.com/recommends/lf-promo) **Coupon**: Use Code **comtechies12** at checkout With the save coupon, you can save more with the FinOps Foundation bundled certifications [Get Certification Bundle Discount ](https://devopscube.com/recommends/lf-promo) ⌛ The offer expires on December 31, 2025 ### \[UpTo 75% OFF\] Linux Foundation Lunar New Year Sale (Expired) Currently, the Linux Foundation is offering upto **75% discount** on its Lunar New Year Sale. In this sale, get a discount for Certifications, e-learning Courses, SkillCreds & IT Professional Programs. Get **35% discount** on individual certifications such as CKA, CKS, CKAD, KCNA, etc., using the oupon code below. [Redeem 35% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **LUNAR26CT** at checkout ⌛ The offer is expiring soon. So grab it ASAP. You can also get **48% off** on the following Kubernetes bundles, using the coupon code **LUNAR26K8CT**. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 3. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) If you want **40% off** on Instructor-Led Courses, use code **LUNAR26ILTCT** There is also an offer on super bundles, where you can get **75% off**. - [Cloud Native Super Bundle](https://trainingportal.linuxfoundation.org/collections/cloud-native-containers-package?ref=devopscube.com) \[CKA Certification & 6 Courses\] - [Cybersecurity Super Bundle](https://trainingportal.linuxfoundation.org/collections/cybersecurity-bundle?ref=devopscube.com)\[CKA, CKS & LFCS certification & 6 courses\] - [Cloud Native Developer Super Bundle](https://trainingportal.linuxfoundation.org/collections/devsecops-super-bundle?ref=devopscube.com)\[CKAD & 5 Courses\] Also, get **50% off** on bundles (excluding Kubernetes) with code **LUNAR26BUNCT.** ### \[30% OFF\] Kubecon Discount for 2026 (Expired) The next Kubecon even is happening in Amsterdam. You can make use of the following coupon to get flat 20% discount on the conference registration. [Register Today ](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/?ref=devopscube.com) **Coupon**: Use Code **COMTECHIES20** at checkout You can use the coupon for both, 1. **All-Access Pass:** Allows entry to all 18 CNCF-hosted co-located events, and KubeCon + CloudNativeCon. 2. **KubeCon + CloudNativeCon Only Pass:** Gives entry to KubeCon + CloudNativeCon ONLY. ### \[45% OFF\] Linux Foundation Kubecon Sale (Expired) As part of an exclusive Kubecon sale, The Linux Foundation is offering a 35% flat exclusive discount on all the Kubernetes certifications. [Redeem 35% Discount ](https://devopscube.com/recommends/lf-promo/) **Coupon**: Use Code **35KUBECT** at checkout You could **save up to 45%** using code 35KUBECT on the following kubernetes Certification Bundles. 1. [CKA + CKS Bundle ](https://devopscube.com/recommends/cka-cks/) 2. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 3. [CKA + CKAD + CKS Exam bundle](https://devopscube.com/recommends/k8s-bundle/) 4. [CKA + CKAD + CKS + KCNA + KCSA](https://devopscube.com/recommends/kubestronaut-bundle/) (Kubestronaut Bundle) (Up to 45% combined discount) 5. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) ⌛ This Kubeconf offer expires soon! ### \[25% Off\] Thrive-One Subscriptions \[Expired\] You can save 25% discount on Thrive-One subscriptions. When you opt for a Linux Foundation all-access subscription, you will get options to avail 2 certification vouchers for free (valued at up to $790) 1. **Thrive One Monthly** \- One complimentary certification voucher (valid after 10 consecutive months of active subscription and valued at up to $395). Ideal for certifications like CKA. 2. **Thrive One Standard** \- 1 certification exam voucher (valued at up to $395) 3. **Thrive One Premium** \- 2 certification exam vouchers (valued at up to $790). Ideal for the CKA + CKS certification combination. [Redeem Thrive-One Subscription Discount ](https://devopscube.com/recommends/all-access-subscription/) **Coupon**: Use Code **MAR26TOA** (For Annual) & **MAR26TOM** (For Monthly) ### \[65% OFF\] Linux Foundation Mega May Sale (Expired) 💡 This sale is expired and will be available next year May 2027 The **Linux Foundation Mega May sale** is live now. You can get a flat 50% off on individual certifications and courses. [Get 50% Discount ](https://devopscube.com/recommends/lf-promo) **Coupon**: Use Code **MM26CCCT** at checkout Use code **MM26BUNCT** to save up to **65%** on the following certification bundles 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) 3. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 4. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 5. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 6. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) Use code **MM26K8BUNCT** to get up to 65% on Kubestronaut Bundle 1. [CKA + CKAD + CKS + KCNA + KCSA](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com) You can also use the same code for Golden Kubestronaut Bundle, Kubestronaut to Golden Kube upgrade Bundle, CKA to Kubestronaut Bundle, CKAD to Kubestronaut Bundle ⌛ The offer expires on 24th may. So lock in the price before it expires. You wont get this steep discounts until next cyber monday. You can also save 65**% on any certification** when you bundle with a THRIVE Annual Subscription [Save 65% With Thrive Subscription ](https://devopscube.com/recommends/thrive-offer/) ### \[50% OFF\] Instructor-led Courses (~~$3,250~~ | $1,625) Take advantage of a limited-time, **50% discount** on upcoming instructor-led, virtual courses. This promotion is available to anyone who purchases the following courses. | Courses | Discount Information | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | | 1\. [Developing Embedded Linux Device Drivers (LFD435)](https://devopscube.com/recommends/embedded-linux-device/)2.[ Kubernetes for App Developers (LFD459)](https://devopscube.com/recommends/kubernetes-for-app-developers/)3\. [Linux for System Engineers (LFS311)](https://devopscube.com/recommends/linux-system-engineers/)4\. [Linux Kernel Debugging and Security (LFD440)](https://devopscube.com/recommends/linux-kernel-debugging/) | **Save 50%:** ~~$3,250~~ \| $1,625Promo code: **MM26ILTCT** | **Coupon**: Use Code **MM26ILTCT** for all other Instructor-led programs ### ## Linux Foundation Course Offerings Linux Foundation offers training in the following key domains. 1. Linux 2. Embedded Linux 3. Open Source Development 4. Kubernetes 5. NodeJs 6. Cloud Foundry 7. Docker 8. Hadoop 9. Hyperledger 10. ONAP 11. Openstack 12. OPNFV ## Featured Linux Foundation Courses The following are the featured Linux Foundation courses. 1. [Kubernetes and Cloud Native Essentials (LFS250):](https://training.linuxfoundation.org/training/kubernetes-and-cloud-native-essentials-lfs250/?ref=devopscube.com) This course focuses on the **overview of cloud-native technologies** and container orchestration systems. This course will supplement KCNA certification. 2. [**Kubernetes Administration (LFS458)**](https://training.linuxfoundation.org/training/lkubernetes-administration/?ref=devopscube.com): This course covers the building and administration of kubernetes clusters. 3. [**DevOps Fundamentals: Implementing Continuous Delivery (LFS261):**](https://training.linuxfoundation.org/training/service-mesh-fundamentals-lfs243/?ref=devopscube.com) This course talks about the processes and patterns involved in building a robust CI/CD solution. It is focused on DevOps and SRE for aspiring [DevOps enthusiasts](https://devopscube.com/become-devops-engineer/). 4. [**Linux System Administration (LFS301):**](https://training.linuxfoundation.org/training/linux-system-administration/?ref=devopscube.com) This course is focused on professional Linux system administration. 5. [**Linux Networking and Administration (LFS211):** ](https://training.linuxfoundation.org/training/linux-networking-and-administration/?ref=devopscube.com)This course is structured to train people to become Linux System Engineers. 6. [Service Mesh Fundamentals (LFS243):](https://training.linuxfoundation.org/training/service-mesh-fundamentals-lfs243/?ref=devopscube.com) Learn service mesh concepts using envoy proxy and Service Mesh Interface (SMI) 7. [DevOps and SRE Fundamentals: Implementing Continuous Delivery (LFS261): ](https://training.linuxfoundation.org/training/devops-and-sre-fundamentals-implementing-continuous-delivery-lfs261/?ref=devopscube.com)Learn the modern practices for [Continuous integration](https://devopscube.com/java-continuos-integration-jenkins-beginners-guide/) and continuous delivery 8. [CI/CD with Jenkins X (LFS268):](https://training.linuxfoundation.org/training/ci-cd-with-jenkins-x-lfs268/?ref=devopscube.com) Learn the latest CI/CD methodologies and basic building blocks of Jenkins X 9. [Introduction to DevOps and Site Reliability Engineering (LFS162):](https://training.linuxfoundation.org/training/devops-and-sre-fundamentals-implementing-continuous-delivery-lfs261/?ref=devopscube.com) If you are a beginner, this course will walk you through the basics of the DevOps and Site Reliability Engineering process and key concepts. ## Featured Linux Foundation Certifications You can take the Linux Foundation certification exam from anywhere in the world. The following are the key certification programs offered by the Linux Foundation. Use our exclusive **Linux Foundation Coupons** to get discounts on all certification registrations. For Devops Engineers, 1. [Linux Foundation Certified SysAdmin (LFCS)](https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/?ref=devopscube.com) 2. [Kubernetes and Cloud Native Associate (KCNA)](https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/?ref=devopscube.com) 3. [Kubernetes and Cloud Native Security Associate (KCSA)](https://training.linuxfoundation.org/certification/kubernetes-and-cloud-native-security-associate-kcsa/?ref=devopscube.com) 4. [Certified Kubernetes Administrator (CKA)](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/?ref=devopscube.com) 5. [Certified Kubernetes Application Developer (CKAD)](https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/?ref=devopscube.com) 6. [Certified Kubernetes Security Specialist Exam (**CKS Certification**)](https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/?ref=devopscube.com) 7. [Kubernetes and Cloud-Native Associate (KCNA)](https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/?ref=devopscube.com) 8. [Kubernetes and Cloud Native Security Associate (KCSA)](https://training.linuxfoundation.org/certification/kubernetes-and-cloud-native-security-associate-kcsa/?ref=devopscube.com) 9. [Prometheus Certified Associate (PCA)](https://devopscube.com/prometheus-certified-associate/) 10. [Istio Certified Associate (ICA)](https://training.linuxfoundation.org/certification/istio-certified-associate-ica/?ref=devopscube.com) 11. [Certified Argo Project Associate (CAPA)](https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/?ref=devopscube.com) 12. Certified GitOps Associate (CGOA) 13. [Cloud Foundry Certified Developer (CFCD)](https://training.linuxfoundation.org/certification/cloud-foundry-certified-developer-cfcd/?ref=devopscube.com) 14. [Certified Hyperledger Fabric Administrator (CHFA)](https://training.linuxfoundation.org/certification/certified-hyperledger-fabric-administrator-chfa/?ref=devopscube.com) 15. [OpenJS Node.js Application Developer (JSNAD)](https://training.linuxfoundation.org/certification/jsnad/?ref=devopscube.com) ## Linux Foundation Announcements In the latest KubeCon event, three new certifications have been announced. 1. [Certified Backstage Associate (CBA)](https://training.linuxfoundation.org/certification/certified-backstage-associate-cba/?ref=devopscube.com) 2. [OpenTelemetry Certified Associate (OTCA)](https://training.linuxfoundation.org/certification/opentelemetry-certified-associate-otca/?ref=devopscube.com) 3. [Kyverno Certified Associate (KCA)](https://training.linuxfoundation.org/certification/kyverno-certified-associate-kca/?ref=devopscube.com) The 10th Annual Open Source Jobs Report is released by the Linux Foundation. Read the [research report here.](https://linuxfoundation.org/tools/the-10th-annual-open-source-jobs-report/?ref=devopscube.com) [Key Note speakers for Open Source Summit Europe](https://linuxfoundation.org/press-release/the-linux-foundation-announces-keynote-speakers-for-open-source-summit-europe-2022/?ref=devopscube.com) have been announced. Another way to get exclusive Linux foundation discounts is from the official Linux foundation announcements and channels. For example, if you attend Kubecon, you could get access to 50% discount coupons on all Linux Foundation certifications. To get the latest updates from the Linux Foundation, check out all the official social media channels. 1. [Linux Foundation Twitter](https://twitter.com/linuxfoundation?ref=devopscube.com) 2. [Linux Foundation Linkedin](https://www.linkedin.com/company/the-linux-foundation/?ref=devopscube.com) 3. [Linux Foundation Github](https://github.com/LF-Engineering?ref=devopscube.com) 4. [Linux Foundation Youtube](https://www.youtube.com/user/TheLinuxFoundation?ref=devopscube.com) If you want to learn from online conferences, you can use the events organized by the Linux Foundation. You can check all the events on the [Linux Foundation events ](https://events.linuxfoundation.org/?ref=devopscube.com)website. ## Frequently Asked Questions Below are the questions users frequently ask about the Linux Foundation coupon. ### What is the latest verified Linux Foundation coupon? **OCT26NONCYBERCT** is the latest verified Linux Foundation coupon for October. It gives you a flat **35% discount** on all Kubernetes certifications and bundles. For other certifications and bundles, use coupon **DCUBE30**. ### Does the Linux Foundation offer Coupons for its certifications? Yes. You can get 30% off all training and certification programs with coupon code **DCUBE30**. You can also use occasional Linux Foundation promotions to get up to 50% off course bundles. ### How long is the Linux Foundation discount valid? The 30% discount is valid year-round. Exclusive promotions with 40% or 50% discounts are valid for 7 days to 1 month. ### How to redeem the Linux Foundation discount code? On the checkout page, you can apply a coupon code. Once you apply the **SCRIPT30** coupon, you can see the discounted price instantly. ### Is there a discount on the Cloud Engineer IT Professional program? Yes. The Linux Foundation offers basic and advanced Cloud Engineer IT Professional programs. You can **save $1300** from the list price. ### How long is the Linux Foundation certification purchased with a voucher valid? Every certification exam purchased with the voucher code is valid for one year. Also, it includes a free retake within one year. ### Is the FinOps Certified Practitioner (FOCP) certification worth it? FinOps, or “Cloud Financial Operations,” FOCP certifications are worth it if you want to stand out in cloud financial accountability and manage teams on financial and operational control for cloud spending. As a growing cloud financial management discipline and cultural practice, it's an excellent certification if you manage teams responsible for cloud spending. ### Is there a coupon code for the All Access Subscription? Yes. For all All Access subscription plans — monthly, standard, and premium, you can use coupon code **OCT26THRIVECT** to get an exclusive 30% discount. ### How to get a 50% OFF CKA Coupon? During the exclusive discount sale, we will update this here; you can get a flat 50% discount. Currently, you can get a 50% discount when you bundle CKA with other certifications using code **OCT26NONCYBERCT.** 💡 You can also get 50% off CKA and other certifications through the Tux Rewards program. Once you accumulate 500 Tux Rewards points, you can get 50% off CKA or any other Linux Foundation certification or course. ## Conclusion As you know, open-source projects have seen widespread adoption in recent years, and certification has become an important way to demonstrate your skill set. The [Linux](https://devopscube.com/list-of-linux-commands-every-developer-should-know/) Foundation is doing a great job with its training and certification programs in open-source technologies. You can check out all Linux Foundation offerings [here.](https://devopscube.com/recommends/linux-foundation-training/) Also, if you are learning CNCF technologies like Kubernetes, do check out our vast 100+ [Kubernetes tutorials](https://devopscube.com/kubernetes-tutorials-beginners/) for beginners ### How I Used Claude with MCP to Create Subscriber Segments in Beehiiv URL: https://devopscube.com/beehiiv-segments-claude-mcp/ Last updated: 2026-10-09T01:52:37.000Z The DevOpsCube [Beehiiv](https://devopscube.com/beehiiv-review/) newsletter is growing, but we also have some inactive subscribers who didn't open our last 3-5 newsletters. That creates a small problem with email open rates. We usually have an open rate above 40%. But it started dropping to 35% levels. You might ask, " *It's just an open rate.* *What's the big deal?* Well, when you get a sponsorship opportunity or reach out to a brand, one of the first things they ask about is your **open rate, click-through rate(CTR), and other engagement metrics.** So, if your open rate is very low, sponsors may not be interested in sponsoring your newsletter, and you may pay for subscribers who don't open your emails. So, I wanted an easy way to identify inactive subscribers and keep our newsletter list clean. Beehiiv already has a **Segments** feature for doing this. But instead of creating the segment manually, I tried something different. I connected **Beehiiv MCP to Claude** and asked Claude to find our inactive subscribers and create the segment for me. It worked pretty well. In this guide, I will show you exactly how I did it, including the prompt I used and how I verified the segment before making any changes to our subscribers. ## What I Automated With Beehiiv MCP I wanted an easy way to identify subscribers who were no longer engaging with our newsletter Instead of checking subscribers manually, I **created a segment** to group inactive subscribers separately and understand which part of our audience was no longer actively reading our emails. To make this easier, I used **Beehiiv MCP with Claude**. 💡 The workflow was quite simple: Claude --> Beehiiv MCP --> Check recent newsletter engagement --> Find inactive subscribers --> Create segment --> Verify in Beehiiv I connected Beehiiv to Claude and gave it a prompt describing what I wanted to do. Within a couple of minutes, Claude created an inactive-subscriber segment with minimal effort. Here is the recent segment I created for identifying inactive subscribers. ![Inactive subscribers created on Beehiiv using Claude](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image.png) The whole process took me around **5–10 minutes**. Before I show you the exact steps, let's quickly understand how Beehiiv segments work. ## What are Beehiiv Segments? Let's say you have **20,000 subscribers**, but not everyone is interested in every email you send. Some of them may have never opened a single newsletter. So, you can group subscribers into categories such as highly engaged readers, inactive readers, and paid subscribers. Beehiiv Segments help you group subscribers by their interests and behavior in your email list. Then you can send content that is more relevant to the topics they care about. This can **encourage them to engage more** with your newsletter instead of ignoring your emails This can help you build long-term relationships with your readers. ## Types of Beehiiv Segments Before you start creating segments with Claude, understand the three segment types [Beehiiv currently offers.](https://www.beehiiv.com/support/article/9366426644503-creating-and-using-segments-in-beehiiv?ref=devopscube.com) ### 1\. Static Segment A static segment creates a fixed list of subscribers who match your conditions when you create the segment. The subscribers inside that segment don't automatically change later. 💡 This is useful when you want to create a fixed group for a specific campaign. ### 2\. Dynamic Segments Dynamic segments automatically update as subscribers meet or no longer match the conditions you set. Beehiiv recalculates dynamic segments daily. For example, you could have a dynamic segment for: > Subscribers who opened at least 3 newsletters during the last 30 days. As subscriber activity changes, the segment can change as well. I used dynamic segments for segmenting inactive subscribers. 💡 For most behavior-based segmentation, you probably use this type most often. ### 3\. Manual Segments Manual segments contain a specific group of subscribers that you add yourself. They don't automatically update based on subscriber behavior. These are useful when you already know exactly which subscribers you want to group together. Now, let's learn how to create segments in Beehiiv using Claude. First, connect the Beehiiv MCP server to Claude. ## Steps to Create a Beehiiv Segment Using Claude MCP Now comes the main part you have been waiting for. As I mentioned earlier, you don't need to create the segment manually. You can give Claude instructions in plain English, and it will create it for you. Here are the exact steps I followed: ### Step 1: Connect Beehiiv to Claude using MCP First, connect Beehiiv to Claude using the MCP server. Follow our detailed guide to set it up: [Connect Beehiiv to Claude using MCP](https://devopscube.com/beehiiv-mcp-server/). ### Step 1: Verify Claude Can Access Beehiiv Simply ask Claude: **Can you access the Beehiiv account?** It will confirm whether it can access it. ![Claude confirming access to the connected Beehiiv account](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image-21.png) ### Step 2: Ask Claude to Find Inactive Subscribers Now comes the interesting part. Instead of manually reviewing our newsletter engagement data and building the segment myself, I told Claude exactly what I wanted. For DevOpsCube, I wanted to identify inactive subscribers who hadn't opened our last **three newsletter editions.** Here is the exact prompt I used: > Access our Beehiiv account and analyze subscriber engagement for our last three newsletter editions. > > Identify subscribers who did not open any of the last three newsletters. Once you've identified them, analyse the subscriber data to confirm that they have zero opens across all three of the latest newsletter editions. > > Create a new subscriber segment in Beehiiv containing these users. Name the segment as inactive users. > > Make sure the segment includes only subscribers who mee the criteria above and does not include anyone who opened at least one of the last three newsletter. > > Before creating the segment, briefly verify the criteria and the number of subscribers who will be included. Do no modigy, delete, or unscribe any existing subscribers or segments. Only create the new inactive users segment. ![Prompt asking Claude to create an inactive subscriber segment in Beehiiv](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image-23.png) As you can see, I give Claude a clear prompt explaining exactly what it needs to do and what it shouldn't do. ### Step 3: Review What Claude Is Going to Do One important thing I recommend: Before asking Claude to create the segment, ask it to explain what it will do. This is just a precaution to make sure everything is correct before you let it make any changes. Once you confirm everything looks right, tell Claude to start creating the segment. ### Step 4: Verify the Beehiiv Segment Even if Claude creates a segment for you, it's still a good idea to check the segment in your Beehiiv dashboard. 💡 Don't blindly trust an AI tool when it has permission to modify an external system. In the image below, you can see the segment Claude created for our newsletter. It turned out pretty well. ![Beehiiv dashboard showing statistics for the inactive subscriber segment](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image-24.png) You can also edit the segment manually if you want. Just click the **configure** option, and you'll see the segment configuration dashboard, as shown in the image below ![Beehiiv segment configuration page with subscriber engagement conditions](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image-25.png) For me, it took literally 5-10 minutes to create this. This is really effortless work when you use Claude to create segments. ## What Should You Do With Inactive Beehiiv Subscribers? Once you have created the segment, you have a few options: ### Option 1: Try to Re-engage Them You can send a follow-up email to inactive subscribers asking whether they still want to receive your newsletter. Some subscribers may become active again and start reading your newsletters. Beehiiv provides automation features to create re-engagement workflows.. You can [read more about Beehiiv Automations here](https://www.beehiiv.com/features/automations?ref=devopscube.com). 💡 Re-engaging inactive subscribers may not always be worth the effort, and it can feel like double work. ### Option 2: Unsubscribe Them You can unsubscribe everyone in the segment you created. Those subscribers will no longer receive emails from you. However, their subscriber records and engagement history are retained. ![Beehiiv segment menu showing options to unsubscribe or permanently delete inactive subscribers](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-173.png) ### Option 3: Delete Them Deleting is different. When you delete subscribers, Beehiiv permanently removes the subscribers and their associated data. So be careful with this option. Before bulk deleting, verify the segment carefully. I would also **recommend exporting your subscriber data** before deleting anything. For the DevOpsCube newsletter, I want to keep things simple. So I decided to remove inactive subscribers. 💡 For me, instead of a large inactive subscriber count, I would rather have a smaller newsletter subscriber list that actually reads. ## Conclusion The interesting part of this experiment wasn't simply creating a Beehiiv segment. I described the outcome I wanted in plain English. Claude used the Beehiiv MCP connection to check subscriber data, identify users who matched my criteria, and create the segment. That saved me from having to configure everything manually. But there is another lesson here that I think is more important. The more access you give an AI tool, the more important verification becomes. My approach is simple: Let AI handle the repetitive work. Keep a human check before destructive actions. In this case, it took me about **5 to 10 minutes to create and verify the inactive subscriber segment.** If you already use Beehiiv and Claude, this is a useful workflow to experiment with for maintaining your newsletter list. And when it comes to newsletters, a smaller list of engaged subscribers is often more valuable than a huge list that barely opens your email. ⚠️ Having a large number of subscribers is still a good thing, but you should always try to maintain a decent open rate. Over to you! Are you using Beehiiv? If so, are you planning to segment subscribers for cleanup? I would love to hear your thoughts on this. Please drop a comment below with your learnings! ### AGNTCon +MCPCon Conference Coupon 2026 (North America) URL: https://devopscube.com/agntcon-mcpcon-conference-coupon/ Last updated: 2026-10-08T12:02:47.000Z [Linux Foundation](https://www.linuxfoundation.org/?ref=devopscube.com) is hosting another great conference, which is **AGNTCon + MCPCon** (Formerly MCP Dev Summit). This conference will mainly focus on Agentic AI Infrastructure, Production-grade agent systems, and MCP. This conference is for people who want to build, operate, research, or support agent systems. In this blog, we cover the ticket discount code, keynote speakers, who can attend, registration steps, and more. ## Get 50% OFF on AGNTCon +MCPCon Conference Tickets We partnered with the Linx Foundation to offer the tech community a 50% discount on conference tickets. Use the links and coupon codes below to register. [Get 50% OFF on Ticket](https://events.linuxfoundation.org/agntcon-mcpcon-north-america/?ref=devopscube.com) **Coupon:** Use code **COMTECHIES\_475** at checkout **Validity:** This discount is valid till October 23, 2026 This coupon code reduces the ticket price to **$475**, which is nearly 50% off the [Late Pricing of $925](https://events.linuxfoundation.org/agntcon-mcpcon-north-america/register/?ref=devopscube.com). 🗞️ ****Note:** AGNTCon +MCPCon Conference is going to happen from October 22-23, 2026 | San Jose Mcenery Convention Center California. Here are the professionals attending this conference. - People working on open-source development and contributing to AI agent systems. - People who are building agentic applications and infrastructure. - People from platform, infrastructure, security, and tooling teams who support agent systems. - Also, project maintainers, researchers, and technical leaders. ## Steps to Get Your Conference Ticket Discount Follow these simple steps to claim your conference ticket discount. **Step 1:** Visit the [official conference website](https://events.linuxfoundation.org/agntcon-mcpcon-north-america/?ref=devopscube.com), and click on the **Register** button on the homepage. ![AGNTCon + MCPCon conference homepage with the register button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-34.png) **Step 2:** Click the **Register Now** button. You will see a list of ticket types. Then select the ticket that best suits your needs. ![AGNTCon + MCPCon attendee ticket section showing the price](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-35.png) **Step 3:** Log in using your LFID(Linux Foundation ID), Google account, GitHub, or LinkedIn account. If you don't have an account, create one. ![AGNTCon + MCPCon login page with email and password fields and social sign-in options](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-36.png) **Step 4:** Clickthe **Register/Modify** button. You can register for yourself or for someone else. Choose the option based on your preference. ![Conference registration page asking whether the registration is for yourself or someone else](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-37.png) **Step 5:** Enter your details, and select the registration type. ![Conference registration form showing attendee details and registration type options](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-38.png) After filling in all the required details, click the **Next** button. ![Conference resitration form with next button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-39.png) You will then be redirected to the ticket you have selected. If you scroll down, you will see available add-ons. You can select them, if they are necessary for you. ![AGNTCon + MCPCOn registration options page showing $935 attendee pass selected](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-40.png) Then click the **Next** button at the bottom of the page. **Step 6:** Enter the code **COMTECHIES\_475** in the promo box and complete the payment using your credit card. ⚠️ ****Note:** You will get only credit card payment option ## Keynote Speakers Here is the list of keynote speakers for the conference. ![It shows the list of keynote speakers for AGNTCon +MCPCon Conference](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-33.png) ## Refund Policy If you cancel your tickets more than two weeks before the conference, you will receive a refund. To cancel your ticket, visit the [registration link](https://sso.linuxfoundation.org/login/?state=hKFo2SAwS0ZHZElHRjZpSkVfUzItRGhxckg2djB2ZktpYW45MaFupWxvZ2luo3RpZNkgRC1ERmVXQ09FTjVfbTBySThJcUxmSWwzak1hM0d6YnOjY2lk2SAxRU1GOGtHZnM0VVdiVWp4dHBWTkhvNk13dVh4a1A1bQ&client=1EMF8kGfs4UWbUjxtpVNHo6MwuXxkP5m&protocol=samlp&eventName=agntmcpna26&e=e097d858-6c0c-4522-a970-d141e2650e03&RelayState=https:%2F%2Fregister.linuxfoundation.org%2Fevent%2Fe097d858-6c0c-4522-a970-d141e2650e03%2Fregister%3Fenvironment%3DP2&ref=devopscube.com), click **/Modify**, and select **Unregister**. Also note that a **6% processing** **fee** will be deducted from the refund. ## Conclusion We covered the key details about the AGNTCon + MCPCon conference and provided the discount code for your ticket. This conference is a great opportunity to learn about agentic AI infrastructure, production agent systems, and MCP while networking with professionals in the field. If you are planning for Kubecon, check out the [Kubecon discount](https://devopscube.com/kubecon-discount-code/) page for exclusive discount vouchers. Also, if you're planning to take a [Linux Foundation Certifications](https://devopscube.com/linux-foundation-certification/), you can use the [Linux Foundation Coupon](https://devopscube.com/linux-foundation-coupon/) to get a massive discount. If you have any questions about the conference, drop them in the comments. We will be happy to help. ### Kubernetes Agent Sandbox on AWS EKS (Step-by-Step Guide) URL: https://devopscube.com/kubernetes-agent-sandbox-tutorial/ Last updated: 2026-10-09T05:46:13.000Z In this guide, you will learn about setting up Kubernetes Agent Sandbox on an AWS EKS cluster and the key use cases Kubernetes Agent Sandbox is built for. ## Use Case To better understand Agent Sandbox, I will walk you through two real-world use cases. The first one is deploying a [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) troubleshooting agent that checks, identifies, and fixes issues in the cluster. The agent application consists of a frontend, backend, and PostgreSQL. In this setup, only the **AI agent backend runs inside a Sandbox** instead of as a regular Kubernetes workload. The second use case is running untrusted code generated by an LLM or given by a user. We will use the **Agent Sandboxes Python SDK to run untrusted code inside the sandbox.** The sample code runs a few security checks to verify the restrictions on running in an agent sandbox. ## Setup Prerequisites ⚠️ This hands-on part of this guide is tested on AWS EKS. You can test it on any Kubernetes setup. You need to modify the configurations accordingly. Below are the prerequisites you need before going into the hands-on part. - [AWS EKS Cluster](https://devopscube.com/cluster-autoscaler/) - [Kubernetes cluster with gVisor configured](https://devopscube.com/set-up-gvisor-on-aws-eks/) - Pod identity and EBS CSI driver add-on enabled on the EKS cluster - [kubectl](https://devopscube.com/kubectl-set-context/) - [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/) configured with permissions for IAM and EKS - Python 3+ installed locally ## Clone GitHub Repository All files we use in the upcoming sections are pushed to our [GitHub repository](https://github.com/techiescamp/kubernetes-ai-projects.git?ref=devopscube.com). Clone the repository and move into the repository **`agent-sandbox`** folder using the following commands. ```bash git clone https://github.com/techiescamp/kubernetes-ai-projects.git cd kubernetes-ai-projects/agent-sandbox ``` You will see the following files inside the **`agent-sandbox`** folder. ```bash agent-sandbox/ ├── ai-agent-sandbox │ ├── manifests/ │ │ ├── 00-namespace.yaml │ │ ├── 01-serviceaccount.yaml │ │ ├── 02-rbac.yaml │ │ ├── 03-configmap.yaml │ │ ├── 04-postgres.yaml │ │ ├── 05-backend-template.yaml │ │ ├── 06-backend-warmpool.yaml │ │ ├── 07-backend-claim.yaml │ │ ├── 08-backend-service.yaml │ │ ├── 09-frontend-deployment.yaml │ │ ├── 10-frontend-service.yaml │ │ └── 11-networkpolicy.yaml │ ├── scripts/ │ │ └── setup-pod-identity.sh │ └── kustomization.yaml │ ├── python-sdk │ ├── python-template.yaml │ ├── python-warmpool.yaml │ ├── rbac.yaml │ ├── sandbox.py │ └── untrusted-code.py │ └── sandbox-router.yaml ``` We will look into what each file is for in the steps where it is used. Let's start with the setup. ## Install Agent Sandbox Controller and Sandbox Router Here, we will install the Agent Sandbox Controller, which manages the entire sandbox lifecycle, and the Sandbox Router, which lets us connect to the sandboxes. ### Verify gvisor RuntimeClass The agent sandbox requires a [sandboxed container runtime](https://devopscube.com/sandboxed-containers/). So before you get started, ensure you have the gVisor `RuntimeClass` created. ```bash $ kubectl get runtimeclass gvisor NAME HANDLER AGE gvisor runsc 6s ``` If there is a runtime, you are good to go. If not, [create a runtime class.](https://devopscube.com/set-up-gvisor-on-aws-eks/#step-5-create-runtimeclass) Let's start the installation steps. ### Install Agent Sandbox Controller Let's start by finding the latest version of Agent Sandbox and saving it as an environment variable. ```bash VERSION=$(curl -s https://api.github.com/repos/kubernetes-sigs/agent-sandbox/releases/latest | jq -r '.tag_name') ``` Then run the following commands to install the controller. ```bash kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/$VERSION/sandbox.yaml kubectl apply -f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/$VERSION/extensions.yaml ``` Once installed, run the following command to verify if the controller pod is up and running. ```bash $ kubectl -n agent-sandbox-system get pods NAME READY STATUS RESTARTS AGE agent-sandbox-controller-8b8ccff57-rcpf4 1/1 Running 0 24s ``` ### Install Sandbox Router First, create a secret for the router authentication token, which is required to connect to the router. ```bash kubectl create secret generic sandbox-router-auth \ --namespace agent-sandbox-system \ --from-literal=auth-token="$(openssl rand -hex 32)" ``` Then, run the following command to get the token from the secret. ```bash kubectl -n agent-sandbox-system get secret sandbox-router-auth -o jsonpath='{.data.auth-token}' | base64 -d ``` Keep the token safe; we will use it in the upcoming hands-on section. Now, deploy the Sandbox Router using the **`sandbox-router.yaml`** manifest in the cloned repositories **`agent-sandbox`** folder. Use the following command to apply it. ```bash kubectl apply -f sandbox-router.yaml ``` This will create the router deployment and service in the agent-sandbox-system namespace. Run the following command to verify if it's up and running. ```bash $ kubectl get pods -n agent-sandbox-system -l app=sandbox-router NAME READY STATUS RESTARTS AGE sandbox-router-deployment-67d79f44d-hglsn 1/1 Running 0 1m ``` ## Running AI Agent inside Agent Sandbox Here, we will deploy a Kubernetes troubleshooting agent, consisting of a frontend, agent backend, and PostgreSQL. The image below shows a high-level overview of what we will set up. ![arhitecture of an AI Agent running inside a Kubernetes Agent Sandbox](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-141.png) As you can see, only the AI Agent backend will be running inside a sandbox. And the agent uses models from AWS Bedrock through EKS pod identity. As mentioned, we will **run only the agent backend** inside the sandbox. So, instead of a single deployment, we will use three Agent Sandbox resources. The splits are: - **`backend-template.yaml`**\- Creates the SandboxTemplate for the workload - **`backend-warmpool.yaml`** \- Creates pre-warmed sandboxes using the details from the template. - **`backend-claim.yaml`** \- Claims one of the sandboxes from the SandboxWarmpool and becomes its manager. And these files create three namespace-scoped resources, SandboxTemplate, SandboxWarmpool, and SandboxClaim for the agent backend. The **`podTemplate`** in SandboxTemplate is an exact copy of the **`template.spec`** in a deployment. You can see the comparisons in the following image. ![comparison of a deployment manifest with a sandbox template](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-121.png) You can see an additional field, runtimeClassName, added to the pod template spec. It is used to specify running the sandbox using the gVisor runtime. If you don't specify the gVisor runtime, the default runtime, runc, will be used. Let's deploy the AI agent in the sandbox. For this section, move into the ai-agent-sandbox folder ```bash cd ai-agent-sandbox ``` And you will see the following folder structure. ```bash ai-agent-sandbox ├── main.py ├── manifests/ │ ├── 00-namespace.yaml │ ├── 01-serviceaccount.yaml │ ├── 02-rbac.yaml │ ├── 03-configmap.yaml │ ├── 04-postgres.yaml │ ├── 05-backend-template.yaml │ ├── 06-backend-warmpool.yaml │ ├── 07-backend-claim.yaml │ ├── 08-backend-service.yaml │ ├── 09-frontend-deployment.yaml │ ├── 10-frontend-service.yaml │ └── 11-networkpolicy.yaml ├── scripts/ │ └── setup-pod-identity.sh └── kustomization.yaml ``` Let's start with creating an EKS Pod Identity association. ### Step1: Create Pod Identity Association To make the Pod Identity Association process simple, we have created a shell script that does the following: - Role and policy for the agent to access the model from Bedrock - The role will be attached to the agent's service account via pod identity mapping. You can find the script **`setup-pod-identity.sh`** inside the **`ai-agent-sandbox/scripts`** folder. Run the following commands from the **`ai-agent-sandbox`** folder to make the script executable and run it. ⚠️ Make sure to update your cluster name in the script before running it. ```bash chmod +x scripts/setup-pod-identity.sh ./scripts/setup-pod-identity.sh create ``` Once the script has finished running, check the pod identity association using the following command. ⚠️ Update the cluster name and region before running the below command ```bash aws eks list-pod-identity-associations \ --cluster-name \ --namespace ai-agent \ --service-account ai-agent \ --region ``` If the association succeeds, you will see similar output. ```bash { "associations": [ { "clusterName": "eks-cluster", "namespace": "ai-agent", "serviceAccount": "ai-agent", "associationArn": "arn:aws:eks:us-west-2:72853664276:podidentityassociation/gvisor-demo/a-nzleiytjyt2dbetjh", "associationId": "a-nzleiytjyt2dbetjh" } ] } ``` ### Step 2: Update the Kustomize File Now, let's update the Kustomize file before deploying the agent. You can find the **`kustomization.yaml`** file inside the **`ai-agent-sandbox`** folder. Open it and update the following. ![updating ai agents kustomization file](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-17.png) Here: - Under the **configMapGenerator** block, update the region, model name, and their token cost if you are using a different model. - Then, under the **secretGenerator** block, update the PostgreSQL password. ### Step 3: Deploy the AI Agent To deploy the agent, let's apply the Kustomization.yaml file. 💡 If you dont have a default StorageClass in your EKS cluster, use the following command to make one of the StorageClass default for pods to create the PV. **`kubectl patch storageclass -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'`** Run the following command from inside the ai-agent-sandbox folder ```yaml kubectl apply -k . ``` Then run the following command to verify if its created. ```bash $ kubectl get po -n ai-agent NAME READY STATUS RESTARTS AGE ai-agent-backend-pool-tnvjr 1/1 Running 0 5m ai-agent-backend-pool-vkndt 1/1 Running 0 5m ai-agent-backend-pool-z28vr 1/1 Running 0 5m ai-agent-frontend-67f5474bbb-r62hp 1/1 Running 0 6m ai-agent-postgres-0 1/1 Running 0 6m ``` You may think there are three backend pods, but that's not what is happening here. When you create a claim, **one pod from the warm pool is transferred to the claim**, and the warm pool creates a new pod to maintain the described replica count. Two are the **pre-warmed pods**, and the other is the pod claimed by the sandbox claim. ```bash $ kubectl get sandboxclaim -n ai-agent NAME READY SANDBOX REASON AGE ai-agent-backend-claim True ai-agent-backend-pool-tnvjr DependenciesReady 25m ``` You can see the `ai-agent-backend-pool-tnvjr` is the functioning backend pod. 💡 Even if you delete the backend sandboxed pod, the sandbox controller will recreate it with the same name ### Step 4: Access the UI To access the UI, we will port-forward the frontend service and access it through that port. Use the following command to port-forward the service. ```bash kubectl -n ai-agent port-forward svc/ai-agent-frontend 3000:3000 ``` Once it starts port-forwarding on port 3000, you can access the UI at the URL **http://localhost:3000** as shown below. ![kubernetes troubleshooting agents ui](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-70.png) Here, the **sandbox router doesn't need to communicate with the agent pod** because the frontend can reach the backend using the internal service URL, like any normal frontend and backend. Now, the agent is up and running. Next, we will test the agent with a troubleshooting task. ### Step 5: Testing the Agent To test the agent, we'll deploy a pod with a nodeSelector that doesn't match any node and ask the agent to troubleshoot it. Start by deploying the pod using the following command. ```bash cat < ``` Make sure you provide the correct token. Otherwise, you will get the following error message. ```bash Failed to communicate with the sandbox ``` Once the token is saved, run the Python code using the following command. ```bash python3 sandbox.py ``` This will claim a sandbox from the specified warm pool and run the script in it. ```bash $ kubectl get sandbox,sandboxclaim,po NAME READY SANDBOX REASON AGE sandbox-claim-012dafce True python-sandbox-warmpool-mtpvj DependenciesReady 8s NAME READY REASON AGE python-sandbox-warmpool-mtpvj True DependenciesReady 4h55m NAME READY STATUS RESTARTS AGE python-sandbox-warmpool-mtpvj 1/1 Running 0 4h56m ``` While it runs, you will see the following outputs in your terminal. ```bash Claiming a sandbox from python-sandbox-warmpool... Claim: sandbox-claim-012dafce Sandbox: python-sandbox-warmpool-mtpvj Pod: python-sandbox-warmpool-mtpvj Starting the 45-second isolation test. On the node, run: sudo ps -eo pid,args | grep '[s]andbox-isolation-probe-8f2e1c' --- stdout --- [read /etc/shadow] blocked: PermissionError: [Errno 13] Permission denied: '/etc/shadow' [setuid(0)] blocked: PermissionError: [Errno 1] Operation not permitted [read ServiceAccount token] blocked: FileNotFoundError: [Errno 2] No such file or directory: '/var/run/secrets/kubernetes.io/serviceaccount/token' --- Host process visibility check --- Starting sandbox-isolation-probe-8f2e1c for 45 seconds Probe PID inside sandbox: 3 Host process visibility check completed exit_code=0 Terminating the sandbox claim... ``` Once it is completed, the sandbox and its claim will be deleted. ```bash $ kubectl get po NAME READY STATUS RESTARTS AGE python-sandbox-warmpool-mtpvj 1/1 Terminating 0 4h56m ``` ## Scheduled D**eletion** Let's look at one of Agent Sandbox's features: scheduled deletion. Here we will make use of two fields in the Sandbox manifest. They are: - **`shutdownPolicy`** \- Defines what to do when the time is reached, like Retain or Delete. - **`shutdownTime`** \- Sets the date and time when the shutdownPolicy should run. You can see how the two fields are specified inside the manifest below. ⚠️ This expression in the command below only works for Mac, if you are a Linux user use the expression `date -u -d "+5 minutes" +%Y-%m-%dT%H:%M:%SZ` Apply it to create a sandbox that will be available for only 5 minutes. ```yaml cat < /workspace/test.txt' ``` Then, change the sandbox's operatingMode to Suspended using the following command. ```bash kubectl patch sandbox suspend-resume-demo \ --type=merge \ -p '{"spec":{"operatingMode":"Suspended"}}' ``` Again, check the pod and sandbox status. ```bash kubectl get sandbox,po NAME READY REASON AGE sandbox.agents.x-k8s.io/suspend-resume-demo False SandboxSuspended 8m33s NAME READY STATUS RESTARTS AGE pod/suspend-resume-demo 1/1 Terminating 0 8m34s ``` You can see the sandbox's Ready status has been changed to False and the pod is terminating. When deleting it, the cache and data will be deleted if there is no PV, so to keep the data persistent, you need to mount a PV to the correct path where the agent saves the data. 💡 This is different if you use a GKE cluster. In GKE, the [Pod Snapshot](https://agent-sandbox.sigs.k8s.io/docs/sandbox/snapshots/?ref=devopscube.com) feature saves every memory and file system and restores exactly the same on resume. Now, let's resume the sandbox again using the following command. ```bash kubectl patch sandbox suspend-resume-demo \ --type=merge \ -p '{"spec":{"operatingMode":"Running"}}' ``` Again, check the resources. ```bash $ kubectl get sandbox,po NAME READY REASON AGE sandbox.agents.x-k8s.io/suspend-resume-demo True DependenciesReady 13m NAME READY STATUS RESTARTS AGE pod/suspend-resume-demo 1/1 Running 0 13s ``` You can see a new pod created, and the sandbox Ready status is changed to True. Now, let's check the txt file inside the volume mount again. ```bash kubectl exec suspend-resume-demo -- cat /workspace/test.txt ``` You will get the following output. ```bash This data survived suspend and resume ``` This proves the data is persisted. ⚠️ Even if the sandbox is suspended and you specify a time for the sandbox to be deleted automatically, it will get deleted ## Clean Up Agent Sandbox Setup If you no longer need the setup, run the following commands one by one to clean it up. First, delete the following namespace. This will delete all resources inside it. ```bash kubectl delete ns agent-sandbox-system --force kubectl delete ns ai-agent --force ``` Next, delete the pod identity and RBAC using the same script we used to create it. ```bash ./setup-pod-identity.sh cleanup ``` ## Conclusion In summary, you have set up Kubernetes Agent Sandbox on top of a gVisor-configured EKS cluster. With Agent Sandbox and gVisor, you can run AI agents securely and efficiently in the cluster. You can also use it as a safe place to test your code. Hope you find this guide informative. Give your feedback in the comments. ### [55% OFF] Kubernetes Certification Coupon (CKA, CKAD, CKS, KCNA, KCSA) URL: https://devopscube.com/kubernetes-certification-coupon/ Last updated: 2026-10-09T05:31:37.000Z Looking for CKA coupons and other Kubernetes certification coupons? In this exclusive blog, I share the latest promos whenever Kubernetes certifications go on sale. The [Cloud Native Computing Foundation](https://www.cncf.io/?ref=devopscube.com) has five Kubernetes certifications. They are among the most preferred certifications for organizations because of Kubernetes' wide adoption. In this blog, I have listed all available **Kubernetes certification coupons** for the following certifications in 2026. 1. [Kubernetes and Cloud Native Associate (KCNA) Certification](https://devopscube.com/kcna-study-guide/) 2. [Certified Kubernetes Administrator (CKA) Certification](https://devopscube.com/cka-exam-study-guide/) 3. [Certified Kubernetes Application Developer (CKAD) Certification](https://devopscube.com/ckad-exam-study-guide/) 4. [Certified Kubernetes Security Specialist (CKS) Certification](https://devopscube.com/cks-exam-guide-tips/) 5. [Kubernetes and Cloud Native Security Associate (KCSA)](https://devopscube.com/kcsa-exam-study-guide/) 6. Certified Kubernetes Network Engineer (CKNE) (Launching soon) ****Note**: I have checked and validated all the latest Kubernetes Certification Coupons for October 2026\. ## Kubernetes Certification Coupons (October 2026) We have teamed up with [Linux Foundation Training](https://trainingportal.linuxfoundation.org/learn/?ref=devopscube.com) to offer the tech community **exclusive discounts** on all its Kubernetes certification and training programs. The following are the validated discount codes. ### \[UpTo 38% OFF\] CKA | CKAD | CKS | KCNA | KCSA Certification Coupon As part of an exclusive partner sale, you can **save up to 38%** on Linux Foundation Kubernetes certifications with our exclusive coupon codes. For individual certifications, **save a flat 30%** with the following coupon. [Redeem Discount Now ](https://devopscube.com/recommends/cloud-containers/) **Coupon:** Use code **DCUBE30** at checkout. To **save up to 38**%, use code **DCUBE30** with the following Kubernetes certification bundles 1. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) (**$370 Savings**) 2. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/)(**$370 Savings**) 3. [CKA + CKAD + CKS Exam bundle](https://devopscube.com/recommends/k8s-bundle/) (**$490+ Savings**) 4. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) (**$229 Savings**) 5. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) (**$203 Savings**) 6. [KCNA + KCSA + CKA + CKAD + CKS](https://devopscube.com/recommends/kubestronaut-bundle/) (Kubestronaut Bundle) (**38% Savings as compared to individual purchase**) ****Note:** This is a very limited-time offer and won't be around much longer ⌛ ### \[Save $370\] CKA + CKAD + CKS Bundle Discount Save $306 when you buy the CKA + CKAD + CKS Kubernetes certification bundle. [GET CKA + CKAD + CKS discount ](https://devopscube.com/recommends/k8s-bundle) **Coupon:** Use code **DCUBE30** at checkout. ### \[Save $370\] CKA + CKS Bundle Offer If you purchase the CKA + CKS certification bundle, you could save $210\. That is a **25% + extra discount** on the actual prices. [GET CKA + CKS discount ](https://devopscube.com/recommends/cka-cks/) **Coupon:** Use code **DCUBE30** at checkout. ### \[Save 55%\] Kubestronaut Bundle Coupon [Kubestronaut program](https://training.linuxfoundation.org/resources/kubestronaut-program/?ref=devopscube.com) is popular among the Kubernetes community. Individuals who pass all five Kubernetes certifications will receive the title of [*Kubestronaut*](https://devopscube.com/kubestronaut-roadmap/). , [GET Kubestronaut Bundle ](https://devopscube.com/recommends/kubestronaut-bundle/) **Coupon:** Use code **DCUBE30** at checkout. 🤑 The Kubestronaut savings vs individual certification purchases is around ****38%** because the bundle already has bundled pricing benefits. Being a [**Kubestronaut**](https://devopscube.com/kubestronaut-roadmap/) **also includes the following benefits.** - You will get five 50% off certification coupons every year that you can use yourself or share it with the community. - You will get a 20% discount on select CNCF events like [Kubecon](https://devopscube.com/kubecon-discount-code/) - Exclusive access to the Kubestronaut community. - The iconic blue Kubestronaut jacket 😄 ### 50% OFF CKA, CKAD, CKS, KCNA & KCSA Tux Reward Discount With **500 points in Tux Rewards**, you can get 50% off CKA certification. Once the coupon is generated, you have two years to redeem it ![50% OFF CKA, CKAD, CKS and KCNA Discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-56-4.png) [CHECK 50% DISCOUNT ](https://openprofile.dev/myrewards/coupons?ref=devopscube.com) ## \[$218 Savings\] CKA + Kubernetes Fundamentals Course If you choose the CKA + LFS258 Kubernetes Fundamentals course bundle, you could save $218. [$218 CKA + LFS258 Bundle savings ](https://devopscube.com/recommends/cka-cks/) **Coupon:** Use code **SCRIPT30** at checkout. ![CKA bundle savings ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-29-4.png) ### \[$80 OFF\] Exclusive Offer for CKA | CKAD | CKS | KCNA | KCSA As part of an exclusive sale from DevOpscube, you could **$80** on all the Kubernetes certifications and courses from the Linux foundation. [Redeem $60 Off CKA/CKAD/CKS/kcna ](https://devopscube.com/recommends/cloud-containers/) **Coupon:** Use code **SCRIPT30** at checkout. **Note:** This offer expires very soon ⏳ ### \[$120 Savings\] CKA + CKS Bundle Offer If you plan for CKA and CKS certification, use the CKA + CKS bundle to save $120\. By default, you get the bundle discount, plus an **additional 15%** off with the exclusive coupon code. [GET CKA + CKS discount ](https://devopscube.com/recommends/cka-cks/) **Coupon:** Use code **DCUBEOFFER** at checkout. ### \[Save Extra $100\] CKA | CKAD | CKS | KCNA | KCSA If you choose a Kubernetes course + certification bundle, you could save up to **$60 plus an extra $100 bundle** offer. For example, the [Kubernetes Fundamentals (LFS258) + CKA Exam Bundle](https://devopscube.com/recommends/lfs258-cka-bundle/) saves $189 total. [Redeem Bundle Offers ](https://devopscube.com/recommends/cka-exam/) **Coupon:** Use code **SCOFFER20** at checkout. **Coupon:** Use code **SCOFFER15** ### \[65% OFF\] CKA | CKAD | CKS | KCNA | KCSA Cyber Monday Deal 2026 \[No Live Yet\] Cyber Monday deal is Live now for 2025\. Get up to **65% discount** CKA, CKAD, CKS, KCNA, and KCSA certifications, training, and Thrive subscriptions. For individual certifications, you will get a flat 50% discount. [Redeem 50% Discount ](https://devopscube.com/recommends/lf-promo/) 1. CKA Discount (~~$445~~ $222) 2. CKAD Discount (~~$445~~ $222) 3. CKS Discount (~~$445~~ $222) 4. KCNA Discount (~~$250~~ $125) 5. KCSA Discount (~~$250~~ $125) You can get up to a 65% discount using the following Kubernetes certification bundles. | Bundle | Offer | Coupon | | ------------------------------------------------------------------------- | ---------------------------- | ----------------- | | KCNA + KCSA + CKA + CKAD + CKS (Kubestronaut Bundle) | 65% Discount ($1087 Savings) | ****CW25K8BUNCT** | | [CKA, CKAD & CKS](https://kube.promo/k8s-bundle?ref=devopscube.com) | 63% Discount ($747 Savings) | ****CW25BUNCT** | | [CKA + CKS Power bundle](https://kube.promo/bundle?ref=devopscube.com) | 65% Discount ($500 Savings) | ****CW25BUNCT** | | [KCNA + CKA power bundle](https://kube.promo/kcna-cka?ref=devopscube.com) | 68% Discount ($338 Savings) | ****CW25BUNCT** | | KCSA + CKS Exam Bundle | 64% Discount ($407 Savings) | ****CW25BUNCT** | | KCNA + KCSA Exam Bundle | 66% Discount ($330 Savings) | ****CW25BUNCT** | **Coupon:** Use code **AWARDS23** at checkout. ### Kubernetes Certification Bundle Offers The following bundle offers are available for Kubernetes certification and training. 1. [Certified Kubernetes Administrator (CKA) Certification + Training Bundle](https://devopscube.com/recommends/cka-certification-training/) 2. [Certified Kubernetes Application Developer (CKAD) + Training Bundle](https://devopscube.com/recommends/ckad-kubernetes-certification/) 3. [Certified Kubernetes Security Specialist (CKS) + Training Bundle](https://devopscube.com/recommends/cks-exam/) 4. [Kubernetes and Cloud Native Associate (KCNA) + Training Bundle](https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/?ref=devopscube.com) With a training bundle, you will get $100 off and an additional 16% off using Kubernetes certification coupon code **SCOFFER15** ( *Note*: 20% & 40% Off Sitewide offer for a limited time. Check [**Linux Foundation Coupons**](https://couponbarrow.com/store/linux-foundation-coupons/?ref=devopscube.com)**.** This offer is not limited to Kubernetes certification and training. You can use it for any subscription to the Linux Foundation. ### \[55% OFF\] Exclusive Kubernetes Certification Coupon (Expired) As part of an exclusive sale, you can **save up to 55%** on all the Linux Foundation Kubernetes certifications. For individual certifications, get a **flat 40% discount** using our exclusive coupon code. [Redeem 40% Discount ](https://devopscube.com/recommends/cloud-containers/) **Coupon:** Use code **OCTPRIME26CCSC** at checkout. Use code **OCTPRIME26BSC** to **save up to 55%** on the following Kubernetes certification bundles. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 3. [CKA + CKAD + CKS](https://devopscube.com/recommends/k8s-bundle) 4. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 5. [KCNA + KCSA + CKA + CKAD + CKS](https://devopscube.com/recommends/kubestronaut-bundle/) (Kubestronaut Bundle - Up to 55% savings) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) ****Note:** This offer expires on October 7th. Hurry Up! ### \[UpTo 45% OFF\] Exclusive Kubernetes 12th Birthday Sale \[Expired\] As part of an exclusive Kubernetes 12 birthday sale, you can **save up to 45%** on all the Linux Foundation Kubernetes certifications. For individual certifications, get **flat 35% discount** using our exclusive coupon code. [Redeem 35% Discount ](https://devopscube.com/recommends/cloud-containers/) **Coupon:** Use code **HBDK826CCCT** at checkout. Use code **HBDK826CCCT** to save up to 45% on the following certification bundles. 1. [CKA + CKAD Bundle](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka-certified-kubernetes-application-developer-ckad-exam-bundle/?ref=devopscube.com) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) 3. [CKA + CKAD + CKS](https://devopscube.com/recommends/k8s-bundle) 4. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/) 5. [KCNA + KCSA + CKA + CKAD + CKS](https://devopscube.com/recommends/kubestronaut-bundle/) (Kubestronaut Bundle - Up to 45% savings) 6. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) 7. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) ****Note:** This is a very limited-time offer. Expires on June 5th ⌛ ### \[35% OFF\] CKA | CKAD | CKS | KCNA New Year Sale \[Expired\] As part of an exclusive new year sale, you could **save 35%** (Upto $383 savings) on the Linux Foundation Kubernetes certifications. [Redeem 35% DISCOUNT TODAY ](https://devopscube.com/recommends/lf-promo/) **Coupon:** Use code **NEWYEAR24COM** at checkout. **Note:** Carefully choose required offers from the offer page. ### \[30% OFF\] CKA | CKAD | CKS | KCNA | KCSA Earthday Sale \[Expired\] As part of an exclusive DevOps Earthday sale from Linux Foundation, you could **save up to 30%** on all the Linux foundation Kubernetes certifications. [Redeem DISCOUNT Now ](https://devopscube.com/recommends/cloud-containers/) **Coupon:** Use code **EARTHDAY24COM** at checkout. **NOTE:** This offer expires soon⏳ To **save extra on top of 30%** discount, use code **EARTHDAY24COM** with the following certification bundles. 1. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) (**$419** Savings) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) (**$283** Savings) 3. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/)(**$229** Savings) 4. [KCSA + CKS Exam Bundle](https://devopscube.com/recommends/kcsa-cks/) (**$229** Savings) 5. [KCNA + KCSA Exam Bundle](https://devopscube.com/recommends/kcna-kcsa/) (**$203** Savings) If you are looking for any **instructor led Kubernetes course**, use code **EARTHDAY24ILT** at checkout. 1. [Kubernetes Administration](https://training.linuxfoundation.org/training/kubernetes-administration/?ref=devopscube.com) (LFS458) 2. [Kubernetes Security Fundamentals](https://training.linuxfoundation.org/training/kubernetes-security-fundamentals-lfs460/?ref=devopscube.com) (LFS460) ### \[UpTo 50% OFF\] CKA | CKAD | CKS | KCNA Halloween Sale \[Expired\] As part of an exclusive learning sale, you could **save a flat 40%** on all the Linux Foundation Kubernetes certifications. [Redeem 40% Discount ](https://devopscube.com/recommends/cloud-containers/) **Coupon:** Use code **SPOOKY40CT** at checkout. Get up to 50% off the following Kubernetes certification bundles. Use code SPOOKY40CT with the following bundles. 1. [CKA + CKAD + CKS Bundle](https://devopscube.com/recommends/cka-ckad-cks/) (**$636** Savings) 2. [CKA + CKS Bundle](https://devopscube.com/recommends/cka-cks/) (**$428** Savings) 3. [KCNA + CKA ](https://devopscube.com/recommends/kcna-cka/)(**$348** Savings) **Note**: This offer is for a very limited time and ends soon ⏳ ## About Kubernetes Certification (CKA, CKAD, CKS, KCNA & KCSA) Kubernetes certification tests your Kubernetes skills through a live practical exam. These exams don't include any objective-type questions like other certifications, except KCNA. You need to have real hands-on Kubernetes Knowledge to pass these certifications. CKS certification registration and the course are available now. You must be CKA certified to take the CKS exam. This exam focuses more on Kubernetes security, cluster hardening, and build and deployment. ### Kubernetes Certification **Exam Overview** 1. It is an online proctored exam 2. The current version of Kubernetes used for the exam is Kubernetes v1.28 3. The exam emphasizes practice over theory, except for KCNA. 4. You will have to complete 12 to 16 practical tasks in 2 hours. 5. If you fail, you get a free retake and 3 years of validity for CKA/CKAD and 2 years for CKS. 6. Once you register for the exam, it is valid for 12 months. 7. You cannot cheat on the exam. However, you may use the kubernetes.io docs. ### **Skills Required for** KCNA KCNA is an **entry-level Kubernetes certification**. It is a multiple-choice exam. The KCNA exam focuses on the following. 1. Kubernetes Fundamentals - 46% 2. Container Orchestration - 22% 3. Cloud-Native Architecture- 16% 4. Cloud-Native Observability8% 5. Cloud-Native Application Delivery8% ### **Skills required for CKA:** 1. Application Lifecycle Management – 8% 2. Installation, Configuration & Validation – 12% 3. Core Concepts – 19% 4. Networking – 11% 5. Scheduling – 5% 6. Security – 12% 7. Cluster Maintenance – 11% 8. Logging / Monitoring – 5% 9. Storage – 7% 10. Troubleshooting – 10% ### **Skills Required for CKAD** 1. Core Concepts – 13% 2. Configuration – 18% 3. Multi-Container Pods – 10% 4. Observability – 18% 5. Pod Design – 20% 6. Services & Networking – 13% 7. State Persistence – 8% ### **Skills Required for CKS** Refer [CKS exam guide](https://devopscube.com/cks-exam-guide-tips/) if you are preparing for the Certified Kubernetes Security Specialist certification. CKS is a tougher certification as compared to CKA and CKAD. You need to practice well to pass CKS. 1. [Kubernetes Cluster Setup](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) – 10% 2. Kubernetes Cluster Hardening – 15% 3. System Hardening – 15% 4. Minimize Microservice Vulnerabilities – 20% 5. Supply Chain Security – 20% 6. Monitoring, Logging, and Runtime Security – 20% ### Skills Required for KCSA 1. Overview of Cloud Native Security - 14% 2. Kubernetes Cluster Component Security - 22% 3. Kubernetes Security Fundamentals - 22% 4. Kubernetes Threat Model - 16% 5. Platform Security - 16% 6. Compliance and Security Frameworks - 10% ### Suggested study timeline Here is the suggested study timeline for all the certifications. - **KCNA:** 2–4 weeks part-time study - **CKA:** 6–8 weeks part-time study with hands-on practice every day. - **CKAD:** 4–6 weeks with hands-on practice every day. - **CKS:** 4–6 weeks after CKA ( Need very good practice as it is the toughest of all exams) - **KCSA:** 2–4 weeks of part-time study. ## Kubernetes Certification Tips and Resources Here are a few resources with enough tips and tricks to help you crack the Kubernetes certification. 1. [CKA Exam Guide](https://devopscube.com/ckad-exam-study-guide/) 2. [CKA Practice questions](https://github.com/alijahnas/CKA-practice-exercises?ref=devopscube.com) 3. [CKAD Study Guide](https://learning.oreilly.com/library/view/certified-kubernetes-application/9781492083726/?ref=devopscube.com) 4. [CKAD practice questions](https://github.com/dgkanatsios/CKAD-exercises?ref=devopscube.com) 5. [CKS Study Guide](https://github.com/stackrox/Kubernetes%5FSecurity%5FSpecialist%5FStudy%5FGuide?ref=devopscube.com) 6. [The Complete Certified Kubernetes Administrator (CKA) Exam Study Guide](https://scriptcrunch.com/kubernetes-exam-guide/?ref=devopscube.com) 7. [Taking the Certified Kubernetes Administrator Exam](https://medium.com/@KevinHoffman/taking-the-certified-kubernetes-administrator-exam-eeab17d65476?ref=devopscube.com) 8. [Nail Your Kubernetes Admin Exam on the First Try](https://medium.com/@jnowakowski/k8s-admin-exam-tips-22961241ba7d?ref=devopscube.com) 9. [Kubernetes Tutorials: Best Resources To Get Started With Kubernetes](https://scriptcrunch.com/kubernetes-tutorial-guides/?ref=devopscube.com) ## FAQ's The following are frequently asked questions about Kubernetes certification coupon codes. ### What is the validity of CKA, CKAD, CKS, and KCNA exam voucher codes? Once you purchase an exam with a voucher code, it is valid for one year. ### What is the current coupon code for CKA? **OCTPRIME26CCSC** is the current promo code for the CKA exam, offering a flat 40% discount. ### Is there a free coupon available for CKA, CKAD, and CKS exams? No. There are no free coupons available. However, if you attend [kubecon](https://devopscube.com/kubecon-discount-code/), you might get free vouchers for the certifications. You can also get a **30% discount** on all certifications using the coupon **DCUBE30** at [kube.promo/cyber](https://kube.promo/cyber?ref=devopscube.com) ### Can I use the Voucher Code to re-register for the exam after two failed attempts? Yes. If you failed both attempts, you can use the same **DCUBE30** voucher code to get the discount. After registration, you will get two more tries. ### How can I save on a Kubernetes Certification Purchase? Use code **OCTPRIME26CCSC** to save 40% instantly. Also, use code **OCTPRIME26BSC** to save up to 55% on certification bundles like CKA + CKAD + CKS, Kubestronaut bundle, etc., to save up to $528 ### How do I get the biggest discount on CKA in 2026? The biggest discount on CKA is during the Cyber Monday sale. You can get up to a 65% discount. There are also rare sale events where you can save a flat 50% on CKA. If you want to register for the exam now, use coupon **OCTPRIME26CCSC** to save a flat 50%. ## Conclusion In this blog, we have added all the latest Kubernetes certification (CKA, CKAD, CKS, KCNA & KCSA) voucher codes. Before registering for a Kubernetes certification exam, check our voucher code list to save the most on the registration fee. For more details on Kubernetes certifications and help choosing the right one, check out our guide to the [best Kubernetes certifications](https://devopscube.com/best-kubernetes-certifications/). If you want to [learn Kubernetes](https://devopscube.com/learn-kubernetes-complete-roadmap/), check out our comprehensive [Kubernetes tutorials for beginners.](https://devopscube.com/kubernetes-tutorials-beginners/) ### Beehiiv Review 2026: My One-Year Experience URL: https://devopscube.com/beehiiv-review/ Last updated: 2026-10-08T11:57:25.000Z If you are looking to grow your newsletter with the Beehiiv platform and are confused about whether to choose Beehiiv or another newsletter platform, you are in the right place. In short, Beehiiv is one of the best platforms to grow your newsletter and improve your email marketing. At DevOpsCube, we have been using Beehiiv for more than a year, and we have grown our subscriber base to around **20,000 subscribers**. In this blog, I shared a detailed **Beehiiv review**, including its features, pricing, pros and cons, and our personal experience using the platform. By the end of this blog, you will understand why we chose Beehiiv and whether it is the right platform for you as well. Let’s get started. ## What is Beehiiv? **Beehiiv** is built to help creators publish and grow newsletters while also making money from them, and also for email marketing purposes. ![Beehiiv login page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-15.png) Unlike regular email marketing tools, Beehiiv is built specifically for creators and marketers who want full control to **write, share, track, and monetize their content** in one place. Also, this platform lets you write newsletters using a simple editor, publish newsletters as SEO-friendly blog pages, grow your audience with referral and growth tools, track engagement with analytics like open rates and clicks, and monetize with subscriptions, ads, or sponsorships According to the [Beehiiv report](https://www.beehiiv.com/blog/beehiiv-the-state-of-newsletters-2026?ref=devopscube.com), in 2025, Beehiiv publishers sent **28 billion** emails and gained almost **255 million** unique readers. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-6.png) Source: Beehiiv ## Key Features of Beehiiv Let me explain the core features you get with Beehiiv. ### Dashboard Overview The dashboard works as an analytical overview for your newsletter. You can view active subscribers, total open rate, click through rate(CTR), earnings, subscriber growth, last post performance, subscribers acquisition sources, and active subscribers in a graph view. You also get quick links to your homepage, tutorial guides, and the knowledge base for help. 0:00 /0:08 1× Beehiiv Dashboard page This feature helps you quickly understand the basic performance of your newsletter in one place and is very useful for tracking growth. ### Post & Newsletter Editor In the **post** section, you can view both draft and published posts, and edit them directly. ![Beehiiv post dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-7.png) In the top right corner, you will see options like **Start Writing**, **Blank Draft**, and **Use Template**. These options allow you to start writing a new post on a blank page, use a default template, or start with your own saved template. ![Beehiiv post creation menu showing options to start with a blank draft or use a template](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-9.png) Now, you can edit and customize your post style as needed. In the editing panel, you can make **basic customizations** such as changing colors, typography, spacing, and borders. 0:00 /0:12 1× Post Editing and Customization options For **advanced editing**, Beehiiv also provides options like background customization, email headers, body sections, widgets, and email footers. The editing options mentioned here are only the main categories. Inside each section, there are many more customization settings that are not commonly available in other newsletter platforms. ### Audience Section In the **Audience** section, you can manage subscribers, create segments, set up automations, run polls and surveys, and create subscription forms. ![beehiiv audience menu showing subscribers, segments, automations, polls, surveys, and subscribe form](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-10.png) Let me explain what each option helps us with, and it will help you, too. - **Subscribers -** View and manage all your subscribers along with their email addresses. - **Segments -** Group subscribers based on behavior or interests so you can send targeted newsletters. - **Automations -** Automatically send emails based on triggers or specific actions. - **Polls -** Create polls and include them in newsletters to collect quick feedback from readers. - **Surveys -** Collect detailed insights about your readers’ preferences, satisfaction, or content ideas. - **Subscribe forms -** Create forms and integrate them into your website or landing pages to collect emails and grow your subscriber base. This section helps you better understand your audience and grow your subscriber list effectively. ### Website Section In the website section, you will see four options such as **Builder, Analytics, Settings,** and **Builder (Legacy).** ![Beehiiv dashboard showing the website buidler, analytics, settings, and legacy builder options](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-13.png) The **Builder** option is where we edit and customize your newsletter website. Initially, we used it because it is more beginner-friendly and easier to use. After completing the basic customization, we moved to **Builder V2**, which offers more customization options. But, Builder V2 may feel slightly difficult at first. Once you get familiar with it, it becomes easier to use. ![Beehiiv website builder editing the DevOpsCube newsletter homepage](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-14.png) ### Website SEO You can view an overview of SEO status in the websiste overview. It shows the search engine preview of your website, and things that needs attention as shown below. ![Beehiiv website overview showing SEO settings, website analytics, and pages needing attention](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-66.png) ### Website Analytics The **Analytics** section shows all your website and newsletter analytics on one page. You can also filter data based on different time periods such as all time, last 24 hours, 7 hours, last 4 weeks, last 3 months, last 12 months, month to date, quarter to date, and year to date. You can select the time range based on the analytics you want to analyze. 0:00 /0:06 1× Newsletter Analytics Here are the things you can view in this section. 1. Unique website visitors 2. Total page views 3. Number of sessions 4. Bounce rate 5. Average session duration 6. Visitors to each page 7. Traffice referrers and sources platforms(eg, LinkedIn, direct, Instagram) 8. From which country are you getting traffic, and 9. Platforms like Windows, Android, IOS, macOS, [Linux](https://devopscube.com/list-linux-networking-troubleshooting-and-commands-beginners/), ChromeOS etc. The **Settings** option in this section allows you to change general configuration options for your newsletter. ### Analyze Section The **Analyze** section provides detailed reports about subscribers, posts, and link clicks. ![Beehiiv Analyze menu showing subscriber, posts, and clicks reports](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-16.png) First, let's look at the **Subscribers report**. In the subscriber report, you can see how many new subscribers you gained during a selected period. You can also view active and inactive subscribers and see which sources brought in those subscribers. Most of the essential analytics are already available in the website analytics section. However, if you want deeper insights, this section provides more detailed reports. 0:00 /0:14 1× Detailed Subscribers Report Page The next one is **post report** page. The post report shows detailed performance metrics for every newsletter you send. You can see: - Email open rates - Unsubscribes - Unique link clicks - Overall engagement metrics These insights help you understand how your audience interacts with your newsletter and improve your content strategy. You can see a visual view in the following video to get a better understanding. 0:00 /0:05 1× Detailed Post Report Page The last one is the **Clicks report**. The click report shows all the links your subscribers clicked inside your newsletters. You can view each link in a separate view with verified total clicks, verified unique clicks, total web clicks, and total unique web clicks. ![Beehiiv clicks report showing link click performance for newsletter URLs](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-18.png) This feature is particularly useful when tracking sponsor links or affiliate links. If a link receives fewer clicks, you can adjust your content placement or call-to-action to improve the click rate. Overall, the **Analyze** feature is beginner-friendly and provides deep insights into your newsletter performance. Also, it will be beneficial for you too, if you know how to use it. Overall, Beehiiv offers powerful features for newsletter creation, audience management, and analytics. Based on my experience, I would rate Beehiiv **4.8 out of 5** for its overall features and usability. ### Beehiiv MCP With Beehiiv MCP, you can connect your Beehiiv account with LLMs such as Claude, Claude Code, Cursor, Codex, and any AI tool that supports a remotely hosted MCP server. ![Beehiiv MCP setup page showing connector options for Claude, Claude Code, Cursor, Codex, and other clients](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-25.png) Once connected, you can access your Beehiiv data directly from your AI tool, just using a prompt. You can analyze the performance of your posts, identify subscriber segments, see where users drop off during the subscription process, and audit your Beehiiv account’s SEO. We connect with our Claude account to scrape the data. ![Claude Connectors menu sowing the Beehiiv connector enabled](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-30.png) Overall, with this MCP, you can analyze your posts performance and metrics. If you want to know more, please refer to our detailed guide on [Beehiiv MCP server setup and usage.](https://devopscube.com/beehiiv-mcp-server/) ⚠️ ****Note:** Beehiic MCP is available for free and paid plans. ### Podcasts Beehiiv has an in-built podcast hosting platform. The interesting part is that you can create shows, upload episodes, and distribute your content to platforms such as Spotify, Apple Podcasts, and other podcast listening apps. ![Beehiiv Podcasts dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-31.png) But, here are the plan limitations that you should know. - **Free** \- You get 1 show and 1 episode per month. - **Lite** \- 1 show and 4 episodes per month. - **Pro** \- 3 shows and unlimited episodes. - **Enterprise** \- Unlimited shows and episodes. ### Beehiiv API This is one of the best features available in Beehiiv Beehiiv provides an API that lets you connect your newsletter with your website, apps, or other tools. ![Beehiiv dashboard sidebar with the API ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-13.png) For example, We had a requirement to display the latest newsletter post in the sidebar of one of our websites. Instead of scraping the newsletter page to get the latest post, we used the Beehiiv API to fetch the data directly, which was a much easier and cleaner approach. ![Website sidebar showing the lated Beehiiv newsletter posts with a subscriber button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-14.png) You can also use the API to add subscribers from custom forms, pass UTM data, sync subscriber information, or pull newsletter data into your own dashboards. For details on the Beehiiv API, refer to the [official documentation](https://developers.beehiiv.com/welcome/getting-started?ref=devopscube.com). ## Who should use Beehiiv? Let me briefly explain who Beehiiv is best suited for. ### 1\. Bloggers To be honest, I am a blogger myself, and our team also includes several bloggers. Based on our experience and feedback from the team, Beehiiv has been very helpful in building a newsletter and growing a community around our content. It also comes with **built-in SEO features**, which help attract audiences from Google and bring in new subscribers. Additionally, you can connect a custom domain, which makes your newsletter look more professional. ### 2\. Creators If you are a creator who prefers producing content directly to the audience, Beehiiv is a great option. The platform provides built-in monetization tools that allow you to earn income while doing what you enjoy. This means you can publish content, grow your audience, and turn your passion into a revenue stream. ### 3\. Media Newsletters Media companies can use Beehiiv to streamline how they distribute content to their subscribers. With features that support subscriptions and advertisements, publishers can monetize their newsletters while also tracking audience engagement and performance. ### 4\. Agencies Running Multiple Newsletters If you run an agency that manages newsletters for multiple clients, Beehiiv makes the process much easier. The dashboard allows you to manage several newsletters from a single place, helping you monitor performance and optimize campaigns efficiently. 📤 Beehiiv is suitable for people across different niches. It is a valuable tool for anyone who wants to build a direct connection with their audience through newsletters. ## Beehiiv Pricing & Plans I have listed the plans, starting prices for monthly & annually, and subscribers based on the price. | Free | Monthly Cost | Annual Cost | UpTo Subscribers | | ---------- | ------------ | ----------- | ----------------------- | | Launch | $0 | $0 | Up to 2,500 subscribers | | Lite | $59/month | $49/month | Up to 1,000 subscribers | | Pro | $109/month | $95/month | Up to 1,000 subscribers | | Enterprise | Custom | Custom | 250K+ subscribers | [Checkout Beehiiv](https://www.beehiiv.com/?via=devopscube&ref=devopscube.com) You might feel a little confused about how the subscriber limits work in these plans, so let me clarify it. The **Free plan** allows up to **2,500 subscribers**. This is a good option when you are just starting your newsletter. Once you cross the free subscriber limit, you can upgrade to one of the paid plans. In the table above, I have shown the **starting price of the paid plans**. However, the actual pricing changes based on the number of subscribers you choose. For example, if you select a plan that supports **up to 5,000 subscribers**, the price may increase to around **$95 per month**. ![The pricing will increase based on the Subscribers](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-12.png) So the key thing to understand is that **Beehiiv pricing scales with your subscriber count**. As your audience grows, the plan cost increases accordingly. ⚠️ At ****DevOpsCube**, we currently use the ****Lite plan** because it provides enough features and capacity for our current subscriber base. ## Beehiiv Pros and Cons Like any other platform, Beehiiv also has its own advantages and limitations. Let’s quickly look at the pros and cons. ### **Pros:** - All-in-one creator platform - Built-in monetization - SEO blog hosting - Easy-to-use interface - It is a website + newsletter platform ### **Cons:** - Limited integrations - Automation is weaker than dedicated email marketing tools - Big price jump after free tier ## My Beehiiv Review (Personal Experience) I have been using Beehiiv for a year now for our [DevOpsCube newsletter](https://newsletter.devopscube.com/?ref=devopscube.com). We chose Beehiiv because it works much better for newsletters compared to traditional email marketing tools such as ConvertKit. **We moved from convertkit to substack to Beehiiv.** Beehiiv works perfectly for all our newsletter requirements. Another important advantage that we have with Beehiiv is, it **helps us monetize directly** on the platform through ads, sponsorships, paid subscriptions, and digital products. This makes it a great option for generating passive income from our newsletter. Setting up the platform was also very quick. It doesn’t take much time because Beehiiv **provides pre-built templates**. I usually use one of those templates since it has a clean, minimalist design that fits well for newsletters. We also connected a [**custom domain**](https://devopscube.com/custom-domain-beehiiv/), and the setup took only a few minutes. We just followed a few simple steps, and the domain was ready. The dashboard is beginner-friendly, the newsletter editor is simple to use, and all the features are easy to find Personally, the features I use the most are the **editor, website builder** and the **analytics section**. While we occasionally use other features, these two help us the most when adjusting and improving our content strategy. In the image below, you can see how the number of active subscribers has increased over the last three months. ![DevOpsCube newsletter's active subscribers growth](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-21.png) ou ca You can also notice improvements in **unique visitors, page views, bounce rate, and session duration** during the same period. ![DevOpsCube newsletter growth analytics](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-22.png) We achieved this growth mainly through consistent publishing, sharing valuable content, and actively distributing the newsletter within our community. As for Beehiiv uptime, I have had only one instance when Beehiiv was down due to an invalid [SSL certificate](https://devopscube.com/configure-ingress-tls-kubernetes/). It is a bit of a negative experience, as users can't sign up or read the web version of the newsletters. ![Beehiiv downtime due to invalid SSL certificate.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-44.png) Since I am from a tech background, I understand that downtime happens occasionally due to system upgrades or service failures. Overall, our experience with Beehiiv has been very positive so far. ## Beehiiv Alternatives Here are some alternatives to Beehiiv that you can consider: - [Substack](https://substack.com/?ref=devopscube.com) - [Ghost](https://ghost.org/?ref=devopscube.com) and - [Kit](https://kit.com/features/email-marketing?ref=devopscube.com) (formerly ConvertKit) Each platform offers newsletter publishing and email marketing features, but they differ in monetization tools, customization, and automation capabilities. ## FAQs Here are some frequently asked questions about Beehiiv. ### 1\. Is Beehiiv free? Yes, Beehiiv offers a free plan. You can use this plan for up to 2,500 subscribers and send unlimited emails. However, the free plan doesn't include advanced features like monetization tools, advanced analytics, or certain automation capabilities. ### 2\. Is Beehiiv better than Substack? Both platforms serve slightly different needs. If you are a creator who wants growth tools, customization, and better analytics, Beehiiv is a good option. Also, **Beehiiv doesn't take a cut from paid subscriptions**. If you prefer simple publishing with minimal setup, Substack may be a better fit. However, when you move to a paid newsletter, Substack will take a percentage from the subscription fee. I have published a detailed comparison in the [Beehiiv vs Substack](https://devopscube.com/beehiiv-vs-substack/) blog. ### 3\. Can you make money with Beehiiv? Yes, you can earn money using Beehiiv in several ways, including paid newsletter subscriptions, advertising through Beehiiv’s ad network, newsletter sponsorships, affiliate marketing, and boosted recommendations. ### 4\. Does Beehiiv have automation? Yes, Beehiiv includes basic automation features such as welcome emails, onboarding email sequences, scheduled newsletters, and basic subscriber segmentation. These features help automate communication with your subscribers. ## Conclusion In this Beehiiv review guide, I shared my experience with the platform, along with its key features and limitations. If you are serious and your goal is to start or **grow a professional newsletter**, Beehiiv is a strong option because it combines publishing, audience growth tools, analytics, and monetization in a single platform. Overall, it is a **great choice for content-focused newsletters** that want to grow and scale steadily. I hope this guide helps you decide whether Beehiiv is the right platform for your needs. If you have any questions about Beehiiv, feel free to drop them in the comments. We are happy to help. ### 10 Best Web Hosting Deals For 2026: Exclusive Discounts URL: https://devopscube.com/web-hosting-deals/ Last updated: 2026-10-01T10:03:27.000Z Looking for the best web hosting deals from top hosting providers? You have come to the right place. We have listed all the official web hosting deals from hosting providers that are currently active. ## Top Web Hosting Deals October 2026 Here is a quick overview of all hosting providers with discounts. | Hosting Providers | Discount | Deal Page | | ----------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Hostinger** | Upto 79% discount + Free Domain | [Get 79% Discount](https://comtechies.com/recommends/hostinger-2?ref=devopscube.com) Deal is Live | | **Bluehost** | Upto 78% discount + Free Domain | [Get 78% Discount](https://comtechies.com/recommends/bluehost?ref=devopscube.com) Deal is Live | | **Cloudways** | 50% Discount + 50 Free Migrations | [Get 50% Discount](https://devopscube.com/recommends/cloudways/) Use code **DEVOPS30** at checkout | | **InMotion** | Get Upto 71% Discount | [Get 71% Discount](https://comtechies.com/recommends/httpspartnersinmotionhostingcomc56122972600334222?ref=devopscube.com) Deal is Live | | **HostGator** | Get Up to 73% Discount | [Get 73% Discount](https://comtechies.com/recommends/hostgator?ref=devopscube.com) Deal is Live | | **Scala Hosting** | Get Upto 75% Discount | [Get 75% Discount](https://www.scalahosting.com/?gad%5Fsource=1&gad%5Fcampaignid=22822979026&gclid=EAIaIQobChMIo4eXi93ckAMV5aNmAh221Ss4EAAYASAAEgI-wvD%5FBwE&ref=devopscube.com#jorgearagao) Deal is Live | | **Hosting.com(Formely A2 Hosting)** | Get Up to 86% Discount | [Get 86% Discount](https://comtechies.com/recommends/httpswwwa2hostingcomaid67af0c96b259cbid75dbf1c0?ref=devopscube.com) Deal is Live | | **DreamHost** | Get Upto 75% Discount | [Get 76% Discount](http://click.dreamhost.com/aff%5Fc?offer%5Fid=8&aff%5Fid=21910&ref=devopscube.com) Deal is Live | | **ChemiCloud** | Get Upto 81% Discount | [Get 81% Discount](https://chemicloud.com/?ref=devopscube.com#68e6451055163) Deal is Live | | **SiteGround** | Get Upto 77% Discount | [Get 77% Discount](https://world.siteground.com/web-hosting.htm?ref=devopscube.com#view) Deal is Live | Now, let's see each web hosting discount in detail. It will help you decide which hosting plan and discount are suitable for you. ## 1\. Hostinger [Hostinger](https://www.hostinger.com/?ref=devopscube.com) is one of the top hostinger providers, which has a variety of hosting services such as Web hosting, VPS hosting, Managed WordPress hosting, Cloud hosting, and Agency hosting. Also, it has an [AI website builder](https://www.hostinger.com/in/ai-website-builder?ref=devopscube.com) that makes creating a website easy. Hostinger is offering up to a **78% discount,** and it has four web hosting plans, such as Single, Premium, Business, and Cloud Startup [Get 79% Discount on Hostinger Now](https://comtechies.com/recommends/hostinger-2?ref=devopscube.com) Let's look at the breakdown of Hostinger's plans and pricing. Now, let's look into the **features of Hostinger**. - You will get a free automatic website migration - Unlimited free [SSL](https://devopscube.com/configure-ingress-tls-kubernetes/) and free CDN - Get AI SEO features - It has WooCommerce features and weekly backups - If you are going to use [WordPress](https://devopscube.com/deploy-wordpress-on-kubernetes/), you will get a free 1-click WordPress installation. - Get free 1-click Google integration and free pre-built templates with a drag-and-drop editor - Get access to smart WordPress auto-updates and WordPress acceleration. - Get standard DDoS protection, a Malware scanner, a web application firewall, Cloudflare-protected nameservers, and a secure access manager. - You will get 24/7 customer support and a 99.9% uptime guarantee - Here are some technical things you will get, \- [MySQL](https://devopscube.com/install-mysql-operator-on-kubernetes/) max user connections based on plans(from 25-300 users) \- Get access to [Git](https://devopscube.com/git-basics-every-developer-and-administrator-should-know/) \- Multiple PHP versions \- [SSH](https://devopscube.com/generate-ssh-key-pair/) access \- You will get DNS management \- FTP account and unlimited [cronjobs](https://devopscube.com/create-kubernetes-jobs-cron-jobs/) \- Also, you will get access to the Cache manager and a powerful control panel. ## 2\. Bluehost [Bluehost](https://www.bluehost.com/?ref=devopscube.com) is the best and most affordable web hosting provider. Bluehost is offering up to a **78% discount** on its plans, with prices starting at **$1.99.** It has three plans: Starter, Business, and eCommerce Essentials. Bluehost is best for beginners, small sites, eCommerce, and Businesses. [Get 78% Discount on Bluehost Now](https://comtechies.com/recommends/bluehost?ref=devopscube.com) **Features of Bluehost Hosting:** - You will get access to AI site creation tools on all plans. - Free domain for the 1st year, free site migration tools, free CDN, and free site migration tools. - You can get data centers wherever you want because it has global data centers. - You will get 24/7 customer chat and phone support. - Security features you will get include: \- Free [SSL](https://devopscube.com/configure-ssl-jenkins/) ([Let's Encrypt](https://letsencrypt.org/?ref=devopscube.com)) and malware scanning \- Web application firewall \- DDoS protection \- Weekly website backups - Advanced features you will get include static content caching, object caching, [SSH](https://devopscube.com/setup-slaves-on-jenkins-2/) & WP-CLI, and a [WordPress staging](https://devopscube.com/wordpress-staging-noindex/) site. - In eCommerce, you will get secure payment processing, WooCommerce auto-install, product subscriptions, visitor memberships, offer paid courses, an affiliate program, custom email templates, and easy social logins. - Get a free Yoast SEO plugin and more. ## 3\. Cloudways [Cloudways](https://devopscube.com/cloudways-review/) is a managed web hosting and cloud hosting service provider. We run our company's WordPress website using Cloudways hosting. Cloudways is offering a **30% discount** on all its plans and 50 free migrations. It is a **limited-time offer**, so grab it now. [Get 30% Discount on Cloudways Now](https://devopscube.com/recommends/cloudways/) **Coupon:** Use code **DEVOPS30** at Checkout. You can host your supported applications, such as [WordPress](https://devopscube.com/setup-wordpress-on-cloudways/), Laravel, [Magento](https://devopscube.com/setup-and-configure-latest-magento-2-on-linux-ec2/), WooCommerce, and PHP. Also, there are two products in Cloudways. Cloudways Flexible and [Cloudways Autonomous](https://devopscube.com/cloudways-autonomous-review/). You can choose them based on your hosting and scaling needs. Cloudways Flexible is customizable managed hosting, and you will get full control over the server and backend cloud of your choice. Cloudways Autonomous is managed WordPress hosting for high-traffic eCom and LMS sites. It is backed by [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) platform. **Cloudways Useful Guides:** 1. [How to Map Cloudways Server To a Domain?](https://devopscube.com/map-cloudways-server-to-a-domain/) 2. [How to Connect to Cloudways Server \[SSH & SFTP\]](https://devopscube.com/connect-to-cloudways-server/) 🎁 Get more exclusive discounts using [Cloudways Promo Code](https://devopscube.com/cloudways-promo-codes/) 👈 ## 4\. InMotion [InMotion ](https://www.inmotionhosting.com/?ref=devopscube.com)Web hosting is trusted by lakhs of professionals and offers various hosting services, including VPS hosting, dedicated servers, shared hosting, and WordPress hosting. You can save up to **71%** on InMotion hosting, with prices starting at **$4.59/month**. [Get Upto 71% Discount on InMotion Now](https://comtechies.com/recommends/httpspartnersinmotionhostingcomc56122972600334222?ref=devopscube.com) Many users trust InMotion because of: - Fast setup phase - They provide 24/7 human customer support - You can run your website applications on reliable infrastructure solutions based on your needs. - They have proven performance and **99.9% uptime.** - You will get a free domain and an SSL certificate - You can get free email accounts on all web hosting plans, and more ## 5\. HostGator [HostGator](https://www.hostgator.com/?ref=devopscube.com) is a web hosting provider with affordable prices, even for beginners. HostGator is offering upto **73% discounts,** and the starting price is **$3.75/month.** [Get 73% Discount on HostGator Now](https://comtechies.com/recommends/hostgator?ref=devopscube.com) It offers four plans: Hatchling, Baby, Business, and Pro. 1. **Hatchling Plan -** Best for a single website with 40k visitors per month. 2. **Baby Plan -** Ideal for multiple websites with 50k visitors per month. 3. **Business Plan -** If you want more storage and the best security with backups, then it is best for you. You can host multiple websites with 200k visitors per month. 4. **Pro Plan -** You will get more speed and processing power than the other plans. It is best for a website with 400k visitors per month. ## 6 ScalaHosting Scala Hosting is a Cloud-based hosting provider offering various hosting services, including web hosting, managed cloud hosting, unmanaged cloud hosting, VPS, reseller hosting, and cluster hosting. You will get a **75% discount** on its web hosting, and it is one of the leading Cloud hosting services. [Get 75% Discount on Scala hosting](https://www.scalahosting.com/?gad%5Fsource=1&gad%5Fcampaignid=22822979026&gclid=EAIaIQobChMIo4eXi93ckAMV5aNmAh221Ss4EAAYASAAEgI-wvD%5FBwE&ref=devopscube.com#jorgearagao) The web hosting has four plans: Mini, Start, Advanced, and Entry Cloud. **Features:** - You will get shared CPU and RAM. In the Entry Cloud plan, you get 2 cores & 2GB RAM. - Get 10 to 100GB NVMe SSD based on the plan you choose. But in the Entry Cloud plan, you can increase the GB, and the price also increases based on the GB you select. - You can host unlimited websites. But in the Mini plan, you can host only 1 website. - It offers cPanel and Plesk for all plans; you can choose either one. - Get 24/7 real hosting expert support. - You will get free website migration, email migration, SSL certificates, and a domain name. - The best part is that you will get an AI WordPress site builder. - Real-time malware protection. - Get automated weekly backups and unlimited databases. ## 7\. Hosting.com(Formely A2 Hosting) [Hosting.com](https://hosting.com/?ref=devopscube.com) offers a variety of hosting services, including web hosting, WordPress, Managed WordPress, cPanel, and reseller hosting. Currently, it is offering up to **86% OFF** on its web hosting plans. This is a **limited-time offer** and the highest discount of the year. [Get 86% Discount on Hosting.com Now](https://hosting.com/hosting/?aid=67af0c96b259c&ref=devopscube.com) So, Hosting.com has four plans: **Starter**, **Pro,** and **Max Plan.** Now, let's look into the features of Hosting.com. - You will get up to 8GB of virtual memory & 4 vCPU cores based on the selected plan. - You can create up to 40 email accounts. - In all plans, you get unlimited [MariaDB](https://devopscube.com/install-mariadb-on-ubuntu/) bandwidth and mail space. - Free SSL certificate, migrations, 1 free domain, and weekly backups. - Get advanced malware protection in all plans. - You will get 24/7 support. - You will get a LiteSpeed server for a fast website loading experience. ## 8\. Dreamhost [Dreamhost Hosting](https://www.dreamhost.com/?ref=devopscube.com) is offering up to a **75% discount** on its web hosting plans. This is one of the most affordable and trusted web hosting platforms. It has three plans: Launch, Growth, and Scale. [Get 75% Discount on DreamHost Now](http://click.dreamhost.com/aff%5Fc?offer%5Fid=8&aff%5Fid=21910&ref=devopscube.com) It also offers a variety of hosting options, including WordPress, VPS, Dedicated, DreamCompute, and DreamObjects. Below are the features you will get on DreamHost. - You will get up to 100GB NVMe storage based on the plan you choose. - Daily automated backups for all web hosting plans. - Get unlimited free SSL certificates(All plans). - You will get a free domain for one year(All plans). - You can view traffic using its built-in analytics. - Get an AI error log analyzer. - You will get WordPress features such as free WordPress migration tools, WordPress installation assistant, automatic updates on core & security, and WP-CLI and SSH. - You will get the Liftoff AI website builder to make your website creation easier. - Get AI business tools: Business planner, advisor, and content creator. - When it comes to security, you will get a web application firewall, 1-click backup restore, DDoS protection, and free domain privacy. - It proves that it gives a 100% uptime guarantee and 24/7 customer support. - You will get unlimited FTP, SFTP, and a shell user for all plans. - Get up to 300 MySQL databases. - Cron Job support and a custom-built control panel. ## 9\. ChemiCloud ChemiCloud is one of the trusted Web hosting platforms by many users. It is offering up to **81% discount** on all its plans. [Get 81% Discount on ChemiCloud Now](https://chemicloud.com/?ref=devopscube.com#68e6451055163) This platform offers various hosting options, including shared, WordPress, managed WordPress, reseller, and cloud VPS hosting. Also, you will get 24/7 human support, a free domain, and free migration. If you want to know its features in detail, then here is the [official page](https://chemicloud.com/?ref=devopscube.com). ## 10\. SiteGround [SiteGround Hosting](https://world.siteground.com/?ref=devopscube.com) is offering up to **77% OFF** on its web hosting plans. This is a limited-time offer, and if you are planning to purchase this hosting, now is the best time to do so thanks to the current exclusive discount. [Get 77% Discount on SiteGround Now](https://world.siteground.com/web-hosting.htm?ref=devopscube.com#view) Let's look into the features you will get in SiteGround Hosting. - You will get up to 40GB of web space. - Get free SSL, Email, email migrator, and CDN. - You will get easy site building, AI content generation, professional templates, a free image gallery, and built-in SEO features. - Get free WP auto-install and migrator. - Security and Speed Optimizer WP plugin - You will get WP-CLI and SSH. - Get 30% faster PHP, plus staging and Git. - You will get a 100% renewable energy match, and more. ## FAQs ### 1\. Which hosting providers give a free domain? Bluehost and Hostinger hosting provide a free domain for the 1st year. After one year, you have to pay for your domain. ### 2\. When are the biggest web hosting discounts available? [Black Friday deals](https://devopscube.com/black-friday-deals/) give you the best web hosting discounts. You can save up to 90% on hosting during black friday. It is the best time to purchase web hosting. ### 3\. Which web hosting is cheapest? Bluehost, Hostinger, and HostGator are the cheapest web hosting providers. They will be suitable for personal blogs, organizations' websites, and apps. Also, these hosts are trusted by millions, and many are still using them to grow their websites. ## Conclusion I have listed the best web hosting deals that are currently active and offering massive discounts. If you want to choose the best among the listed providers, I would suggest Hostinger and Bluehost for regular hosting, and Cloudways for scalable cloud hosting. If you have any questions about the discounts, please feel free to leave a comment below. We will get back to you. ### [32.5% OFF] Teachable Coupon Code and Offers for 2026 – Save Big Now URL: https://devopscube.com/teachable-coupon/ Last updated: 2026-10-18T06:02:48.000Z Looking for the latest Teachable coupon code or discount? You are in the right place. In this post, you will find all the active Teachable offers, limited-time deals, and tips to save on Teachable plans in 2026. In this blog, we have listed all the latest offers to save big on Teachable subscription plans. ****Note:** We use Teachable to host our [DevOpsCube courses](https://courses.devopscube.com/?ref=devopscube.com). We have grown the platform to more than 11K users****.** So we track the latest Teachable offers and update them monthly to support the teaching community. ## Teachable Coupon & Offers (Oct 2026) The following are the latest coupon codes and discounts available for Teachable. ## \[22% OFF\] Teachable All Annual Plans Get a flat **22% discount** on all the Teachable annual plans. This will save you a huge amount per year, nearly **$600 with a growth plan.** You will also get a 7-day free trial with a money-back guarantee. [Get 22% Annual Discount Now ](https://devopscube.com/recommends/teachable-pricing/) **Validity:** It is a limited-time offer, so grab it soon ⌛ ![22% discount on all the Teachable annual plans (Save up to $600 with Growth Plan)](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-83.png) ## Teachable 3 Months Free (Annually) The best savings on Teachable are when you purchase the annual plan. You get three months of free access on all the plans. Plus, you can get an additional discount using the coupon code. [GET 3 MONTHS FREE ](https://devopscube.com/recommends/teachable-pricing/) When you get the Annual subscription, the good thing is you can upgrade, downgrade, or cancel at any time. ![Teachable 3 Months Free](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-65.png) ## \[3 Months Free\] Teachable Exclusive Promotion As a Teachable customer, Teachable has given us an exclusive offer to share with our readers. You can get up to **three months completely free** when you get started with Teachable. [Claim your Free Month ](https://partnerstack.teachable.com/free-trial30?ref=devopscube.com) 🤑 Yearly plans offer a default 22% discount. With this free month offer, you will get a ****total 30% discount** on the subscriptions. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-180.png) ## ## \[100% OFF\] Teachable Free Account You can get started with Teachable for completely free without a credit card. With the free account, you can publish one paid product in each category (Course, digital download, etc). Also, with a free account, for every sale, Teachable will charge $1 + 10% transaction fee. [GET TEACHABLE FREE ACCOUNT ](https://devopscube.com/recommends/teachable-pricing/) ## Refer and get $25 in credit If you are a Teachable school owner, you can earn free referral credits. When someone purchases a Teachable subscription through your invite, you will **receive free credits** in your Teachable account. You can use these credits to lower your subscription costs. To access your referral links, just go to the plan page in your account and scroll to the bottom. ![Teachable $25 referal credit.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-15-8.png) ## 30-day money-back guarantee You can try Teachable with confidence because Teachable offers a **30-day money-back guarantee** for all its plans. You can find all the details about the [refund policy here](https://support.teachable.com/hc/en-us/articles/115000247552-Request-a-Refund-on-Your-School?ref=devopscube.com). ## Teachable Plan With Discount The following table shows all the Teachable plans and their discounts compared. tomontly pricing. | **Plan** | **Monthly Cost** | **Annual Billing** | **Discount on Annual** | **Features Included** | | ---------- | ---------------- | ------------------ | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Growth** | $139 | $1,668 | Save $600 (about 34%) | \- 0% transaction fee\- 25 published products\- Unlimited students\- Community\- Integrated email marketing\- Affiliate Program\- Unlimited lecture videos\- Custom domains | This table shows the monthly and annual pricing, the discount for annual billing, and the main ## Teachable Black Friday Deal 2026 \[Not Live\] Teachable Black Friday deal for 2026 is not live. This is one of the best times to get the maximum discount on subscriptions. Below are the offers for 2025 that Teachable offered. This Black Friday, Teachable is offering its one-month price for 3 months for all plans. Also, you will get a 30-day money-back guarantee for all plans. [Get Teachable Black Friday Discount ](https://devopscube.com/recommends/teachable-black-friday/) **Coupon:** Use code **3F1-BUILDER-BF2025** during signup. The following are the key discounts that are part of the Black Friday deal, only for three months. 1. Builder ~~$89/Month~~ (Offer price $29 for 3 months) 2. Growth ~~$189/Month~~ (Offer Price $63 for 3 months) 3. Advanced ~~$399/Month~~ (Offer price $133 for 3 months) What else do you get with the Teachable Black Friday offer? - You will get 30 days of [ManyChat Pro](https://manychat.partnerlinks.io/nj808z43s5fh?ref=devopscube.com) to help you automate your workflows. - A 1:1 call with a Teachable expert for personalized guidance, and - Access to a step-by-step course-building blueprint that shows you exactly how to create your course inside Teachable. ## 25% limited-time discount on Teachable Business Plan \[Expired\] For a limited time, you can get 25% limited time discount on the Teachable Business Plan. With this plan best of Teachable with custom roles and more admin seats. [Get 25% DISCOUNT ](https://devopscube.com/recommends/teachable-pricing/) You can get this discount when you log in to your Techable portal and go to the plans page. ![25% Off Teachable coupon for Business Plan](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-14-12.png) ## ## \[20% OFF\] Teachable Exclusive Challenge Offer \[Expired\] Get a flat 20% discount on Teachable Basic, Pro, and Pro+ plans using the challenge offer. You can join the 5,100+ creators who have availed this offer and have completed the challenge. [Get 20% DISCOUNT ](https://devopscube.com/recommends/techable-challlenge-offer/) **Note**: This offer also includes 0% transaction fees on any Teachable payment gateway (i.e., teachable:pay or Monthly Payment Gateway). ## \[32.5% OFF\] Teachable Growth Coupon Code \[Expired\] With the current offer, you can save a flat 10% on a Teachable Growth subscription. With a Growth subscription, you get access to advanced tools to scale your Teachable school. [Redeem Teachable Discount ](https://devopscube.com/recommends/teachable-pricing/) ## How to use a Teachable Coupon? Follow the steps to claim your Teachable coupon code. **Step 1:** Visit the [Teachable Website](https://devopscube.com/recommends/teachable-pricing/) and go to the pricing page. ![In the Teachable home page. Click on the Pricing button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-62.png) **Step 2:** Choose your plan Check the features of each plan, and select the plan based on your budget and requirements. ⚠️ ****Pro Tip:** Select Annual plan to get a discount and save huge amount. ![Teachable pricing](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-61.png) For instance, I am choosing the Growth annual plan. Once you click the plan, you will get the page as shown in the image below to create your account. ![Create Teachable account](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-63.png) **Step 3:** Enter the coupon code at checkout. In this section, you have to provide your address info, payment method, and enter the valid coupon code. (eg, MAGIC10) ![Enter the coupon code, address informationa and payment method](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-64.png) **Step 4:** The Discount will apply automatically Now, click on the **Upgrade now** button to claim your Teachable account with a discount. ## Teachable Pricing The following table shows the Teachable pricing plans for monthly and annual plans. | **Plan** | **Monthly Plan** | **Annual Plan** | **Features Included** | | ------------ | ---------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Builder** | $29 | $69/Month | \- 0% transaction fee\- 5 published products\- Unlimited product drafts\- Create with AI\- iOS & Android student apps\- Affiliate Program\- Global payments & taxes\- Course certificates \- Live chat support | | **Growth** | $63 | $139/Month | \- All features from Builder\- 25 published products\- White label website\- Custom admin permissions\- Free subtitle and translation | | **Advanced** | $133 | $309/Month | \- All features from Growth\- 100 published products\- Unlimited Integrations | Also, there is another plan called **Unlimited**. For that, you have to contact the Teachable sales team. Actually, it is a customized plan based on your business requirements. Here are the features you will get in the Unlimited plan: - All features from the Advanced plan. - Get flexible product and admin limits. - You will have seamless features for bulk sales and customer management. - You can automate international tax handling and payouts. - Get native integrations and unlimited API calls to integrate your full stack. - White glove onboarding and migration assistance. - Get a dedicated success manager. - Priority SLA-based support like uptime, response, and resolution. - You will also get Sandbox school for testing and training. ## Teachable Platform Updates For 2026 In 2026, Teachable is introducing the following platform updates. 1. **Mobile App Improvements:** Improved the mobile app experience in Android and IOS. Improvements such as offline access, push notifications, and expanded language support. 2. June 13, 2025, on Teachable, we will be switching from the current file hosting provider to a Teachable-hosted solution (backed by AWS) for content uploads like images, videos, and PDFs. 3. **Teachable's Product Detail Page (PDP)** is a streamlined, professional course page that’s automatically created from your course content. It’s mobile-friendly, fast to load, and designed to convert, so more students can discover your product and take action. 4. **New checkout experience:** Designed to help your business achieve better results by delivering a seamless and intuitive purchasing process. This upgraded checkout is already available to most Teachable schools and will be fully rolled out by March 31. 5. **NEW student dashboard:** The brand-new student hub–coming later this quarter–is designed to enhance your students' logged-in home experience. Teachable has 150,000 creators and 47+ million students worldwide, and has generated over $2.5 billion in sales. Teachable is a popular platform among creators, including us. Recently, it implemented updates to enhance stability and security, making the platform more resilient and providing a better experience for both creators and students. This holiday season, it 1. Powered through 509 million API requests 2. Delivered 75 million page views 3. Maintained 99.99% uptime 4. Delivered over 18 million emails 5. Enrolled 390,000+ students into free and paid content Also, it released a mobile app version 3.1.5 with AirPlay and security improvements. This update blocks screen recording when in full-screen or picture-in-picture video modes, protecting your intellectual property. ## Conclusion If you are on a budget or saving maximum on Teachable plans, ensure you make use of the latest Teachable coupons. I have been **using the Teachable Pro subscription** for hosting my courses at DevOpscube.. It's been a great experience, and the platform is very stable. The authoring experience is also great. I usually purchase the plans when Teachable discounts are available (Black Friday is a good time to renew the subscriptions). Also, choosing a better Annual plan would let you save up to 33%. We are currently using the Pro plan, and we are happy with it. We can confidently say that this is one of the best [platforms to host online courses](https://devopscube.com/platforms-to-host-online-courses/). If you are looking for a tool to create your voice clone for your courses, you can make use of [Elevenlabs](https://devopscube.com/elevenlabs-review/). Check out the [Elevenlabs discount](https://devopscube.com/elevenlabs-discount/) page to get started. ### ByteByteGo Discount Code 2026: Limited Time Deal URL: https://devopscube.com/bytebytego-discount/ Last updated: 2026-10-01T09:27:13.000Z Looking for a **ByteByteGo discount**? You are in the right place. In 2026, system design is an important skill. As you might know, with AI, strong interview preparation is no longer optional, it directly impacts hiring decisions and career growth. **ByteByteGo** is one of the top platforms that provides [system design interview courses.](https://devopscube.com/system-design-interview-courses/) In this blog, we share the latest deals and promotions from **ByteByteGo** to help you save on its system design and interview preparation courses for October 2026. Here you go! ## \[50% OFF\] ByteByteGo Launch Sale Get a flat **50% discount** on this ByteByteGo sale. This gives you access to all [system design interview](https://devopscube.com/system-design-interview-courses/) prep guides in one place, including coding patterns, behavioral interviews, object-oriented design, machine learning system design, mobile system design, and generative AI system interviews. [Claim 50% Discount Now](https://bytebytego.com/pricing?fpr=devopscube&ref=devopscube.com) **Note:** This flat discount is a limited-time offer. ⚠️ ByteByteGo offers two plans. One is a ****pay-once plan with lifetime access**, and the other is a ****one-year plan**. The platform does not offer a monthly subscription. ## ByteByteGo Black Friday Sale 2026 \[Not Live\] During the **Black Friday sale**, ByteByteGo usually offers exclusive discounts, making it one of the best times to purchase the platform. These discounts are seasonal, and once the offer goes live, it will be updated here. ## How to Claim Your ByteByteGo Discount? Below are simple steps to help you claim the discount easily. ### Step 1: Visit the ByteByteGo Website Go to the official [ByteByteGo websit](https://bytebytego.com/?fpr=devopscube&ref=devopscube.com)e to view and select a plan. ![ByteByteGo Website](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-88.png) ### Step 2: Click Start Learning Today Once you enter the website, on the homepage, click the **Start Learning Today** button at the top. ![Click Start Learning Today](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-90.png) ### Step 3: Choose a Plan ByteByteGo offers two plans: - **Pay once, own forever** with full lifetime access - **One-year access** with full features If you want long-term access, the lifetime plan is better. If you need it only for a year, the one-year plan is a good choice. ![Choose the plan](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-91.png) Choose the plan that fits your needs and click **Unlock Full Access**. ⚠️ You can signin using your email, GitHub or FaceBook. ![Sigin options](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-92.png) ### Step 4: Enter Your Details In the details, enter your email address, country, and ZIP/postcode. Once you enter the details, tick the checkbox and click **Continue**. ![enter users email address, country, and ZIP/postcode](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-93.png) ### Step 5: Enter Payment Details ByteByteGo accepts **Visa, MasterCard, American Express,** and **Discover**. Both debit and credit cards are supported. 💡 If you have other exclusive discount code, add in the Add Discount option. ![User need to ente the credit card details](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-94.png) After entering your card details, click **Pay** to complete your purchase and access your ByteByteGo account. 💡 ****Note:** Taxes will be added during payment. ## About ByteByteGo ByteByteGo is a top learning platform for system design and technical interview preparation. This platform helps software engineers **understand how large-scale systems work** through clear explanations and illustrations. This makes it especially useful for engineers preparing for mid-level, senior, and big-tech interviews. Also, the platform focuses on real-world examples and breaks down complex system design into easy-to-understand concepts. ## What do you get with ByteByteGo? Here are the things you can expect from this platform. 1. Detailed system design course with real-world use cases like YouTube, Chat apps, payment systems, and more. 2. Text and visual-based explanation for easy understanding. 3. It covers multiple interview topics in one place. 4. You will get around 100+ lessons and case studies. 5. System design blueprint guides. 6. They will update the content regularly 7. Private community & discussions. 8. You will get a 30-day money-back guarantee. 9. Coding interview patterns 10. Structured path for different levels 11. Multiple language support, and more. ## Who should use ByteByteGo? [ByteByteGo](https://bytebytego.com/?ref=devopscube.com) is best suited for mid-level to senior software engineers preparing for **FAANG** and other top **tech company interviews**, where system design has an important role. It focuses on real interview expectations, and helps engineers build practical system design thinking, teaching how to analyze problems, and explain decisions clearly, not just memorize answers. It is also ideal for visual learners who prefer structured explanations and diagrams to quickly understand complex systems. The image below shows the top Engineers who designed the courses in ByteByteGo. ![Engineers of ByteByteGo platform](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-95.png) ## Conclusion In this blog, we have listed the current ByteByteGo discount code officially offered by the platform. To be honest, choosing the **lifetime plan** during these sales provides the best long-term value, because content updates are included at no extra cost.. If you are currently preparing for **system design** or **technical interviews** in 2026, this discount is a great opportunity. Have you used ByteByteGo or are you planning to try it? Share your experience or questions in the comments, your feedback will help other readers and keep this guide updated. If you face any issues while claiming the discount or have questions, drop them in the comments. We will help you immediately. ### O'Reilly Promo Code for 2026: Books & Courses Discount URL: https://devopscube.com/oreilly-promo-code/ Last updated: 2026-10-01T06:40:39.000Z For all developers, DevOps engineers, and the IT community, I have curated the list of the latest **O'Reilly** **Promo codes** and coupon codes to save money on **O'Reilly** monthly & annual subscriptions (Up to 15% Savings). I personally use the O'Reilly subscription for my learning, and I usually purchase the subscription when there is a discount. If you are someone who loves to read and learn, the O'Reilly subscription discount is really worth it. I keep updating the official offers on this page. You can make use of it to save money on an O'Reilly subscription. ## O'Reilly Promo Codes For October 2026 I have listed all the available options to save money on O'Reilly's subscription. I keep updating the list based on the available promo codes. ## \[15% OFF\] O'Reilly Annual Subscription When you opt for an O'Reilly annual subscription, you will save 15% as compared to the monthly subscription. Instead of $49.00/month, annually, it will be $41 per month. [Get 15% Discount ](https://devopscube.com/recommends/oreilly/) ### 10 Days O'Reilly Free Account If you are a new customer, you can get a 10-day free O'Reilly subscription without a credit card. [Get Oreilly Free Account ](https://devopscube.com/recommends/oreilly/) ### \[$200 OFF\] O'Reilly Coupon Code \[Expired\] O'Reilly is running a **$200 discount** sale on its annual subscription for a limited time. Normally, the annual subscription is $499\. With this promo code, you will get a **$200 discount**. [Get $200 Discount ](https://devopscube.com/recommends/oreilly/) **Coupon**: Use code **SAVEANDLEARN23** at checkout **Note**: This offer expires on September 25 and is applicable only to individual memberships. ### O'Reilly $299 Flash Sale \[Expired\] Get the O'Reilly subscription only for $299 for a very limited time. It's the perfect chance to access thousands of resources that can propel your career forward—at a great price. This is a flash sale. [Get Oreilly Discount ](https://devopscube.com/recommends/oreilly/) **Coupon**: Use code **SAVEANDLEARN24** at checkout [⌛](https://emojipedia.org/hourglass-done?ref=devopscube.com) Hurry Up! Offer valid until September 19, 2024 ### O'Reilly Black Friday & Cyber Monday Discount 2026(Not Live) The best time to save money on O'Reilly subscriptions is during Black Friday and Cyber Monday sales. When the sale is active for 2026, we will update the promo code here. ## How to Redeem O'Reilly Discount? Follow the steps given below to redeem the O'Reilly discount. Go to the [Pricing Page](https://www.oreilly.com/online-learning/pricing.html?ref=devopscube.com) and choose a subscription. ![O'Reilly Discount Pricing](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-30-11.png) On the next page, you will see an option to enter the promo code as shown below. Enter the promo code and checkout once the discount is applied. ![O'Reilly Promo Code Option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/oreilly-discount.png) ## How to Get O'Reilly Exclusive Promo Codes? O'Reilly subscription is expensive. One way to get the maximum discount is to make use of the O'Reilly flash sales. So how do you come to know about the flash sale? Its simple. Just sign up for the free trial account. It doesn't need a credit card. You can make use of the free trial to start learning. Once you are member, you will get email notifications from O'Reilly regarding the Flash sales. Usually, these flash sales come in one or two months. Usually these sales offer a **$200 discount (40% off)** Here is an email that I got recently for the flash sale. ![O'Reilly Exclusive Flash Sale](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-80-8.png) ## O'Reilly Review (Personal Opinion) As a DevOps engineer, I have been using O'Reilly since 2016\. I started using the subscription through the company I worked. I found it very useful in learning different topics related to my work domain. When I changed companies, I purchased a personal subscription, and to this day, I use it for my learning. I primarily read a lot, and I get content from expert authors from O'Reilly. Also, the O'Reilly subscription is quite expensive. So I usually renew it during flash sales or during black friday deal where you can save almost $200\. I would advise you to make use of the O'Reilly promo codes during flash sales and save money. ## Conclusion O'Reilly is a great investment in terms of learning due to its vast library of books and videos in different categories. Make use of the massive discounts and save money on its subscriptions. Another platform I personally use for learning is Educative. If you are a developer or a DevOps engineer, you can check out the [educative.io coupon](https://devopscube.com/educativeio-coupon/) code to save on its subscriptions. ### Bluehost Coupons & Offers for Oct 2026 [verified] URL: https://devopscube.com/bluehost-coupon-2/ Last updated: 2026-10-01T10:11:25.000Z Bluehost is currently offering up to **78% off**, bringing the starting price down to just **$1.99 per month**. In this blog, you will find verified and active **Bluehost offers** for 2026\. If you are unsure how to claim the Bluehost coupon, I have also provided step-by-step instructions to help you grab this deal easily. Scroll down to claim your discount! ## Latest Bluehost Coupons & Deals 2026 \[updated\] Before getting into the details, let’s take a quick look at the active Bluehost coupons, discount percentages, and expiry dates. | Plan | Discount | Starting Price | Validity | | -------------------- | -------- | -------------- | ---------------- | | One Site | 78% OFF | $1.99/month | November 5, 2026 | | Starter | 60% OFF | $3.99/month | November 5, 2026 | | Business Essentials | 50% OFF | $6.99/month | November 5, 2026 | | Ecommerce Essentials | 32% OFF | $14.99/month | November 5, 2026 | [Checkout Bluehost Discounts](https://devopscube.com/go/bluehost) Now, let’s take a closer look at each plan so you can determine which is best suited to your website’s needs. ⚠️ ****Note:** You don’t need a separate coupon to get the discount. Simply click the link, and the discount will be automatically applied to your selected plan. For the best savings, choose the ****36-month plan** to get the lowest price possible and avoid higher renewal costs later. ## \[78% OFF\] Bluehost One Site Plan Currently, Bluehost is offering up to a **78% discount** on its one-site plan, which is the most affordable hosting plan for a beginner who needs to start their website. [Get 78% Discount on One Site Plan](https://www.bluehost.com/special/homenew?ref=devopscube.com) **Validity:** This offer expires on 5th November, 2026 By applying this discount, the price will drop from **$8.99/month** to **$1.99/month**. ## \[60% OFF\] Bluehost Starter Plan Bluehost's starter plan currently offers a **60% discount**. This plan is best for beginners, bloggers, personal portfolios, and anyone launching their first WordPress website. [Get 60% Discount Now on Starter Plan](https://www.bluehost.com/special/homenew?ref=devopscube.com) **Validity:** This offer expires on 5th November, 2026 With this discount applied, the price drops from **$9.99/month to $3.99/month**. ## \[50% OFF\] Bluehost Business Plan The Bluehost Business Plan currently offers up to a **50% discount**. This plan is best for those who need more storage and stronger security and for higher-traffic websites. [Get 50% Discount Now on Business Plan](https://www.bluehost.com/special/homenew?ref=devopscube.com) **Validity:** This offer expires on 5th November, 2026 With this discount, the price drops from **$13.99/month to $6.99/month**, saving you up to half the regular cost. ## \[32% OFF\] Bluehost eCommerce Essentials Plan Bluehost is currently offering a flat **32% discount** on the eCommerce Essentials plan.This hosting plan is best for you if you want to build and run an online eCommerce store with WooCommerce. [Get 32% Discount Now on eCommerce Essential Plan](https://www.bluehost.com/special/homenew?ref=devopscube.com) **Validity:** This offer expires on 5th November, 2026 With this discount applied, the price drops from **$14.99/month to $6.99/month**. ⚠️ ****Note:** You should know that the renewal price is higher than the initial price. Here is the breakdown of the renewal prices: ****\- One Site** \- $8.99/Month ****\- Starter** \- $9.99/Month ****\- Business** \- $13.99/Month ****\- eCommerce Essentials -** $21.99/Month ## Bluehost Black Friday & Cyber Monday Sale 2026 \[Not Live\] Black Friday and Cyber Monday sales are when Bluehost typically offers some of the biggest discounts of the year. This offer is expected to start around **September 2026**. Once the deal goes live, we will update this page with the latest discount details and the official Bluehost deal link. ## How to claim the Bluehost Coupon? (Step-by-Step) Follow the steps below to claim your Bluehost discount. Don’t skip any steps, as it may cause confusion. ⚠️ ****Note:** If you use the discount link provided in ****Step 1**, it will directly take you to the Bluehost hosting page. Also note that this is an ****affiliate link**. It will ****not cost you anything extra**, but we may earn a small commission. This helps us maintain and improve the website. ### Step 1: Visit the Bluehost site Go to the [**official Bluehost website**](https://www.bluehost.com/special/homenew?ref=devopscube.com). Once you land on the page, scroll down to view the available [web hosting](https://devopscube.com/web-hosting-deals/) plans: Starter, Business, and eCommerce Essentials. ![Bluehost web hosting page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-31.png) ### Step 2: Choose your plan Select the plan that best fits your website goals and requirements. For example, let’s select the **Starter Plan**. The same steps apply to all other plans. ![Buehost web hosting plans](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-32.png) Next, enter your **domain name**. You will see three options. Let me explain. - You can register a new domain in Bluehost itself - You enter the domain, which you already own, or - You can click on Choose a domain later After selecting your preferred option, you will be redirected to the **checkout page**. ![Choose the domain](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-33.png) ### Step 3: Create your account First, create your Bluehost account by entering your **email ID and password**. Alternatively, you can sign up using Google, Apple ID, and GitHub. ![Enter the email Id and choose if the user need the add-ons](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-34.png) Once you create the account, you will see some **recommended add-ons**. You can select these add-ons if they are useful for your website. Otherwise, you can leave them unchecked since they will **increase the total cost**. ### Step 4: Enter Billing Information Now choose your **payment method** and enter the billing details. Bluehost supports several payment options, including **credit or debit card, GPay,** and **PayPal**. Choose the payment method that is most convenient for you. ![Enter the billing information](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-35.png) ### Step 5: Submit the payment Before clicking the **Submit Payment** button, check a few important things: 1. **Choose the hosting duration:** Selecting the **36-month plan** gives you the biggest discount and helps avoid higher renewal costs later. 2. **Select the data center** closest to your location for better website performance. 3. **Review optional add-ons:** If you don’t want the **Professional Email trial**, you can remove it. After the trial period, an additional payment will be required. 4. **Agree to the terms and conditions**, then click the **Submit Payment** button. ![Submit payment button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-37.png) That's it. Once the payment is completed, your Bluehost hosting account will be activated, and you can start building your website. ## Best Time of the Year to Get the Best Bluehost Deals Based on previous history, we have listed the best times to grab Bluehost deals with massive discounts. This will save you a lot. - **Black Friday/Cyber Monday Sale** \- This sale happens between November and December. This is when Bluehost offers its highest discounts, so we recommend purchasing during this period. - **New Year Sale** \- If you miss the Black Friday/Cyber Monday Sale, you can purchase during the New Year Sale, which usually runs from late December through January. But you don't get the same discount as Black Friday sale. - **Summer Sales** \- These offers typically come during the U.S. summer shopping holidays. If you miss the New Year Sale, you can take advantage of the Summer Sale to get a good discount. ## FAQS Here are some frequently asked questions about Bluehost coupons. ### 1\. Do I need to enter a coupon code manually? No. In most cases, the discount is applied automatically through the link. Bluehost rarely requires manual promo codes. However, sometimes affiliate partners may provide exclusive coupon codes. ### 2\. Is the Bluehost discount available for renewals? No. Bluehost discounts are usually available only for first-time purchases. Renewal pricing will follow the regular plan rate. ### 3\. Does Bluehost offer a money-back guarantee? Yes, Bluehost offers a 30-day money-back guarantee for its hosting plans. ### 4\. What is the current Bluehost discount? Currently, Bluehost offers up to 60% off on its web hosting plans. The exact discount depends on the plan and hosting type you choose. ## Conclusion In this blog, I have listed verified Bluehost discounts and offers available right now. This page will be updated regularly to ensure you always get the latest amost nd active Bluehost deals. Choose your hosting plan based on your website’s needs, rather than selecting at random. If you face any issues while claiming the discount or have any questions, feel free to leave a comment below. We will be happy to help! ### Finops Foundation Coupons for 2026 (Limited Time Discount) URL: https://devopscube.com/finops-foundation-discount-code/ Last updated: 2026-10-01T06:29:09.000Z In this blog, you will find the latest FinOps certification coupon codes offered by the FinOps Foundation. If you are a [Cloud](https://devopscube.com/best-cloud-computing-certifications/) and [DevOps Engineer](https://devopscube.com/become-devops-engineer/), you should learn FinOps because cloud costs are rising, and companies need better cost control. As a result, FinOps skills are in high demand right now. The best way to get skilled in FinOps is through certifications. The following are the [key FinOps certifications](https://devopscube.com/best-finops-certifications/) from the [FinOps Foundation.](https://www.finops.org/?ref=devopscube.com) - FinOps Certified Practitioner - FinOps Certified Engineer - FinOps Certified FOCUS Analyst - FinOps Certified: Technology Value - FinOps Certified: FinOps for AI - FinOps Certified Professional To help you learn FinOps while saving on certification costs, we have listed the best available coupons so you can get started at an affordable price. ## Current FinOps Foundation Coupon Code \[Oct 2026\] Here are the latest certification discounts available from the FinOps Foundation. All the certifications listed below are self-paced, include an exam, and provide 12 months of access to course materials. ### \[Save 20%\] FinOps Certified Practitioner Coupon FinOps Foundation is offering a flat **20%** discount on the **FinOps Certified Practitioner**. This course helps you understand core FinOps principles, practices, and real-world applications. Use the code below to claim the discount. [Get 20% Discount Now](https://learn.finops.org/path/finops-certified-practitioner-self-paced?ref=devopscube.com) **Coupon**: Use Code **COMTECHIES\_20** at checkout This course is ideal for anyone managing technology costs, usage, or governance, as well as those looking to gain FinOps knowledge and earn an industry certification. ⚠️ ****Note:** This is an intermediate-level course with an approximate duration of 8 hours. ### \[Save 20%\] FinOps Certified: FinOps for AI Get a flat **20% off** on **FinOps for AI** certification. This course covers managing AI costs, including training vs. inference, GPUs, and specialized billing models, along with real-world strategies and best practices. [Get 20% Discount Now](https://learn.finops.org/path/certified-finops-for-ai?ref=devopscube.com) **Coupon**: Use Code **COMTECHIES\_20** at checkout This course is designed for FinOps practitioners and anyone looking to apply the FinOps framework to manage and optimize AI spending. ⚠️ ****Note:** This is an intermediate-level course with an approximate duration of 15 hours. ### \[Save 20%\] FinOps Certified Engineer Get up to 20% off the FinOps Certified Engineer certification. In this course, you will learn how to apply FinOps in engineering workflows, work with cloud cost data, automate cost optimization, design cost-efficient architectures, and manage the cost lifecycle in real systems. [Get 20% Discount Now](https://learn.finops.org/path/finops-certified-engineer?ref=devopscube.com) **Coupon**: Use Code **COMTECHIES\_20** at checkout This course is ideal for engineers who design, develop, and manage cloud infrastructure. It includes interactive training with both written content and videos. ### \[Save 25%\] FinOps X Conference Ticket The FinOps X Conference will take place in San Diego, California, from June 8–11, 2026\. You can get up to **25% off** on tickets using the code below. [Get the Discount](https://x.finops.org/register/?ref=devopscube.com) **Coupon**: Use Code **COMTECHIESX26** at checkout Here are the full details about the [**FinOps X Conference**](https://devopscube.com/finops-x-conference-discount-code/). ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-76.png) ## How to Redeem the FinOps Certification Coupon? Follow the few steps to claim your discount. ### Step 1: Visit the FinOps website Go to the search bar, type [FinOps certification](https://learn.finops.org/?ref=devopscube.com). Click the first link that appears in the results. ![Search FinOps certification in Google search](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-70.png) ### Step 2: Choose your certification You will see a list of certifications. Select the one you want, for example, lets choose FinOps Certified Practitioner. ![choose the course based on the user preference](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-71.png) ### Step 3: Sign in or create an account Create an account if you don’t have one, or log in using your credentials. ![user want to create a account or login using existing credentials](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-72.png) ### Step 4: Click purchase and go to checkout page You will see a purchase button, click it, and it will redirect you to the checkout page. ![Click the purchase button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-73.png) ### Step 5: Enter discount code Now in the discount code box, enter the code available (eg, COMTECHIES\_20). Now click on the **Review and Pay** button. ![enter the discount code and click review and pay button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-74.png) ### Step 6: Enter card details and purchase Enter your card details. FinOps accepts Visa, MasterCard, American Express, and Discover. Now click **Purchase,** and you will receive an OTP. ![Enter the card details and click purchase](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-75.png) Enter it in the required field and submit. That's it. Now you have your FinOps certification with the discount applied. ## FinOps Foundation Refund Policy The [FinOps Foundation](https://www.finops.org/training-certification/training-faqs/?ref=devopscube.com#what-is-the-refund-policy) offers a three-business-day refund for all certifications. But you are only eligible for a refund if you have not accessed any course content. ## FAQs Here are the frequently asked questions about the FinOps discount code. ### 1\. Is there a FinOps Foundation discount code? Yes, **COMTECHIES\_20** is the current discount code for FinOps Foundation. You can save upto 20% on a certification. ### 2\. How much discount can I get? You can get a flat 20% discount. These offers are usually limited-time, so it’s best to use them early. ### 3\. Are FinOps coupon codes from third-party websites reliable? Yes, DevOpsCube coupon codes are valid as they come through a direct partnership with the FinOps Foundation. ## Conclusion If you are thinking about learning FinOps, this is the right time to start with the discount available right now. The available discount helps reduce the cost, more importantly, these certifications give you practical skills that are becoming important in real-world cloud roles. So, instead of waiting for better offers, it makes sense to use the current deal Choose the certification that fits your role and get started while the discount is still available. 🎁 ****Note:** If you are also planning to take the [Kubernetes certification](https://devopscube.com/best-kubernetes-certifications/), use the [Linux Foundation coupon](https://devopscube.com/linux-foundation-coupon/) to get upto 40% off. ### Educative.io Coupon for 2026: Save on monthly & Yearly URL: https://devopscube.com/educativeio-coupon/ Last updated: 2026-10-01T07:20:55.000Z With the **educative.io coupon** code, you can save 50% on your annual subscription. Developers and [DevOps engineers](https://devopscube.ghost.io/become-devops-engineer/?ref=devopscube.com) can use this offer to access all 550+ interactive courses and Paths on educative.io. [Educative.io](https://devopscube.com/recommends/educative-trial/) is a great platform for software developers and DevOps engineers to learn skills such as system design, programming, [DevOps](https://devopscube.ghost.io/what-is-devops-what-does-it-really-mean/?ref=devopscube.com), machine learning, data engineering, and more. 💡 ****Note:** We use educative for our own learning and we keep updating the coupons every month based on official announcements. We have updated the latest deals for October 2026. ## Educative.io Coupons & Offers for Oct 2026 We have listed all the available **Educative.io coupon codes** for developers to get the maximum discount. Let's look at the list of the latest deals from Educative. We have updated all the discounts for this month. ## \[55% OFF\] Exclusive Educative DevOps Sale For DevOpsCube readers, Educative offers an exclusive **55% discount** on standard, premium, and premium plus subscriptions for a limited time. You can also use this coupon code for the two-year subscription plan. [Redeem 55% EDUCATIVE Discount ](https://devopscube.com/recommends/educative/) **Note:** The coupon is included in the link. Also, this Offer ends soon. 💡 In some regions, you can get up to 67% discount, depending on your location. ## Educative.io Free Access Student Discount If you are part of the GitHub student program, you will get free Access to 70+ Educative courses. 💡 If you are a student at a University, You can apply for [Github student pack](https://education.github.com/pack?ref=devopscube.com). Educative, in collaboration with GitHub, is offering free **access to 70+ courses**, including Machine Learning, Web Development, Python, Kubernetes, etc. (value of over $2,000 for 6 months). [Get Educative Free Student Discount ](https://devopscube.com/recommends/educative-student-offer/) If you are not a student, you can get **7-day educative unlimited free** account using the free trial option. ## Gift Subscription with 30% Lifetime Discount + 20% Additional Discount. You can gift anyone an Educative standard, premium, or premium plus plan and give a 30% lifetime discount. [EDUCATIVE GIFT DISCOUNT ](https://devopscube.com/recommends/educative/) First, choose a plan for the gift subscription as shown below. ![educative gift subscription](https://devopscube.ghost.io/content/images/2025/03/image-20-15.png) Now on the checkout page, use code **DEVOPS20** to get the additional discount as shown below. ![educative additional 20% discount.](https://devopscube.ghost.io/content/images/2025/03/image-21-7.png) ## Educative.io Free Trial (21-Day) Before starting with a paid subscription, you can access all the Educative.io courses for free using its 21-day trial account. With the free trial, you will **get access to 210+ courses**. [Educative.io free trail ](https://devopscube.com/recommends/educative-trial/) ## Learn to Code Starter Pack The Learn to Code Starter Pack includes 50+ hand-selected courses, guided learning paths, and real-world projects. 1. Master computer science fundamentals 2. Learn a popular programming language 3. Build your portfolio 4. Kick off a high-paying career [GET CODE STARTER PACK ](https://devopscube.com/recommends/starter-pack/) ### Educative.io Free Courses Educative offers many free courses for beginners. Courses on Java, Python, Ruby, etc., are free. As a beginner, you can learn a lot from the **educative.io free courses**. For are the top free course picks from us. 1. [Build Your Own Chatbot in Python](https://www.educative.io/courses/build-your-own-chatbot-in-python?ref=devopscube.com) 2. [Grokking the Behavioral Interview](https://www.educative.io/courses/grokking-the-behavioral-interview?ref=devopscube.com) 3. [Learn Python 3 from Scratch](https://www.educative.io/courses/learn-python-3-from-scratch?ref=devopscube.com) 4. [Learn Scala from Scratch](https://www.educative.io/courses/learn-scala-from-scratch?ref=devopscube.com) 5. [Learn Java from Scratch](https://www.educative.io/courses/learn-java-from-scratch?ref=devopscube.com) 6. [Building Tesla’s Battery Range Calculator with React & Redux](https://www.educative.io/courses/building-teslas-battery-range-calculator-with-react-and-redux?ref=devopscube.com) Also, the [educative blog](https://www.educative.io/blog?ref=devopscube.com) is full of beneficial information on interview topics, programming tips, and in-depth technical articles. ### Educative.io Coupon From Reddit We keep track of Reddit conversations related to the exclusive educative.io coupons. shared by Reddit users. We update the details here if we find any discount details with more savings than our listed coupons. ## How to Redeem educative.io coupon? Follow the steps given below to redeem the discount on educative.io **Step 1:** Head to [educative.io](https://devopscube.com/recommends/educative/) and sign up for a free account. ![educative.io signup to redeem coupon](https://devopscube.ghost.io/content/images/2025/03/image-3-12.png) **Step 2:** Now, browse the pricing page and select the subscription. ![educative.io select subscription to redeem discount.](https://devopscube.ghost.io/content/images/2025/03/image-4-9.png) **Step 3:** You will be taken to the payment page with the applied discount. If you receive exclusive offers from educative.io, you can redeem additional coupons. ![](https://devopscube.ghost.io/content/images/2025/03/image-5-15.png) ## What is Educative.io? [educative.io](https://www.educative.io/?ref=devopscube.com) is an e-learning platform focused on developers and DevOps engineers, primarily focusing on IT-related courses. The platform has more than 2.6 million learners who work for companies like Netflix, Facebook, Apple, Google, and Amazon. Educative.io courses are text-based with illustrations. And the following is what Educative.io says about text-based learning. > *Videos are holding you back. The average video tutorial is spoken at 150 words per minute, while you can read at 250\. That‘s why our courses are text-based.* It offers the following for learners to better understand the tools and technologies. 1. quizzes 2. Code Playgrounds 3. Illustrations 4. Code Challenges 5. Hands-on coding environments There are 1,400+ Courses & Projects in the educative platform. If you want to know more about the platform, read our detailed [educative.io review.](https://devopscube.com/educative-io-review/) ## Educative Skill Assessment Educative.io has a Skill assessment program where you can assess your coding skills. With this assessment, Educative will recommend courses based on your skill assessment to enhance your coding skills further. [Checkout assessments ](undefined) The following are the key skill assessment programs available from Educative.io. 1. React fundamentals 2. Web development fundamentals. 3. Container management using Docker 4. Data Science fundamentals. 5. Python fundamentals ## Latest Educative.io Courses You might want to check out the latest courses added to educative.io. 1. [**Advanced Techniques in Go Programming:** ](https://www.educative.io/courses/advanced-techniques-in-go-programming?ref=devopscube.com) This course will help you learn complex topics in Go 2. [**Mastering AI Product Management:**](https://www.educative.io/courses/mastering-ai-product-management?ref=devopscube.com) This course is designed for leaders to gain in-depth knowledge of AI product management. 3. [**Grokking Coding Interview Patterns in Java**](https://www.educative.io/courses/grokking-coding-interview-patterns-java?ref=devopscube.com)**:** Learn 26 patterns; answer thousands of coding questions. Developed by FAANG hiring managers to help you efficiently prepare for the typical rounds of interviews at top companies. 4. **Grokking the Engineering Management and Leadership Interviews:** This course is ideal for Engineering leaders seeking to advance their skills or explore new career opportunities, as well as Strong ICs who are interested in transitioning into an engineering manager position. 5. **Grokking Modern System Design Interview:** Grokking the Modern System Design Interview Course empowers learners to sharpen their skills and gain the upper hand in promotions and interviews**.** 6. [**Getting Started with SQL and Relational Databases**](https://www.educative.io/courses/getting-started-sql-relational-databases?ref=devopscube.com)**:** This course will help you learn MySQL in-depth. 7. **Clean Architecture in Python:** This course teaches you to build Python applications with clean architecture principles. 8. [**Using the Python Transcrypt Transpiler for Front-end Coding**](https://www.educative.io/courses/using-python-transcrypt-transpiler-front-end-coding?ref=devopscube.com)**:** This course is intended for Python developers who don’t want to write in JavaScript but still want to develop modern front-end web applications. You will learn how to use a transpiler called Transcrypt, which translates Python code to JavaScript and then executes that JavaScript so that you can enjoy the neatness of Python with the front-end flexibility of JavaScript React. 9. [Simplifying Machine Learning with PyCaret in Python: ](https://www.educative.io/courses/simplify-machine-learning-pycaret-python?ref=devopscube.com)PyCaret is an open-source, machine learning library in Python. It can be used in ML tasks such as data preparation and model deployment. In this course, you'll get a brief introduction to the basic theoretical concepts of machine learning. Then we continue with case studies of regression, classification, clustering, and anomaly detection based on the respective modules of the PyCaret library. ## Recommended Educative Courses The following are the recommended and popular courses from Educative. 1. Hands-On Quantum Machine Learning with Python 2. [Decode the Coding Interview in Python: Real-World Examples](https://www.educative.io/courses/decode-coding-interview-python?ref=devopscube.com) 3. [MongoDB: The Complete Guide](https://www.educative.io/courses/mongodb-complete-guide?ref=devopscube.com): In this course, you will learn the core concepts of MongoDB, including queries, documents, embedded documents, and operators, with advanced features like CRUD operations, bulk write operations, GridFS, indexing, aggregation pipeline, authorization, and more. By the end of this course, you will have a strong understanding of how to build MongoDB-based applications. 4. [React Deep Dive: From Beginner to Advanced](https://www.educative.io/courses/react-beginner-to-advanced?ref=devopscube.com) 5. [Designing Games in Java with Graphics & Event-Driven Programming](https://www.educative.io/courses/java-games-diy?ref=devopscube.com) 6. [The Handbook for Ruby Developers](https://www.educative.io/courses/handbook-ruby-developers?ref=devopscube.com) 7. [Pragmatic Unit Testing in Java 8 with JUnit](https://www.educative.io/courses/unit-testing-java8-junit?ref=devopscube.com) 8. [Learn Functional Programming with Elixir](https://www.educative.io/courses/functional-programming-elixir?ref=devopscube.com) 9. [Distributed Systems for Practitioners](https://www.educative.io/courses/distributed-systems-practitioners?ref=devopscube.com) 10. [Mastering Regular Expressions in Java](https://www.educative.io/courses/master-regular-expression?ref=devopscube.com) 11. [Quick Start Kubernetes](https://www.educative.io/courses/quick-start-kubernetes?ref=devopscube.com) 12. [AWS Security Fundamentals: A Practical Guide to AWS IAM](https://www.educative.io/courses/aws-security-iam?ref=devopscube.com) 13. [An Introductory Guide to Data Science and Machine Learning](https://www.educative.io/courses/intro-data-science-machine-learning?ref=devopscube.com) 14. [The DevOps Toolkit: Kubernetes Chaos Engineering](https://www.educative.io/courses/devops-toolkit-kubernetes-chaos-engineering?ref=devopscube.com) 15. [Terraform: From Beginner to Master with Examples in AWS](https://www.educative.io/courses/terraform-beginner-master-aws?ref=devopscube.com) 16. [Hexagonal Software Architecture for Web Applications](https://www.educative.io/courses/hexagonal-architecture-web-apps?ref=devopscube.com) 17. [AWS Certified Solutions Architect Associate Exam Prep](https://www.educative.io/courses/aws-certified-solutions-architect-assoc-exam-prep?ref=devopscube.com) ## Educative.io Learning Paths & Courses [Educative.io](https://www.educative.io/explore?ref=devopscube.com) has many learning paths focused on a specific programming language, tool, or methodology. Both developers and [DevOps](https://devopscube.ghost.io/what-is-devops-what-does-it-really-mean/?ref=devopscube.com) engineers can benefit from these learning paths. | Python for Programmers | | ------------------------------------------ | | Become a Machine Learning Engineer | | DevOps for Developers | | Grokking Data Science | | C++ for Programmers | | Ace the JavaScript Coding Interview | | TypeScript for Front-End Developers | | Become a Front End Developer | | React for Front-End Developers | | Java for Programmers | | Python Data Analysis and Visualization | | Scalability & System Design for Developers | | Ace the Java Coding Interview | | Ace the Python Coding Interview | | Ace the C++ Coding Interview | | Ace the Front End Interview | The following are some of our top picks from Educative.io | **Course** | | ------------------------------------------------------------ | | Grokking the System Design Interview | | Grokking the Advanced System Design Interview | | Grokking Computer Networking for Software Engineers | | Hacking the TPM Interview | | Grokking the Object-Oriented Design Interview | | Grokking the Coding Interview: Patterns for Coding Questions | | Grokking the Machine Learning Interview | ## Educative Black Friday & Cyber Monday Discount 2026 \[Not Live\] Black Friday is the best time to get maximum discounts on learning platforms. Educative.io is no exception. With the Educative.io Black Friday discount, you can get maximum savings on annual subscription plans. With the **Educative Black Friday and Cyber Monday discounts**, you can get up to a 60% discount on yearly and two-year subscriptions. When the 2026 Black Friday deal is live, we will update here. ## Latest Educative News With the new AI-powered learning, Educative now offers AI-powered mock interviews. Also, you can use the Explain with AI feature to learn the concepts in-depth. Now Educative supports courses that provide learners with **adaptive AI-assisted feedback**. Educative added 560 Courses in 2022 and is planning to add 900+ courses in 2024 to help developers with multiple options and technologies to learn. Now you can also become an author on [educative.io](https://www.educative.io/trial?aff=KNLz&ref=devopscube.com). The primary subjects in focus are, 1. Cloud Technology 2. Cyber Security 3. APIs New courses have been added to the [API category.](https://www.educative.io/explore?tag=API&ref=devopscube.com) ## Educative.io Coupon FAQs Let's look at some of the frequently asked questions about educative.io coupons. ### How can I get free educative.io courses? You can get 6 months of free Educative.io courses using the [GitHub Student Pack](https://www.educative.io/github-students?ref=devopscube.com). ### Is educative.io worth it? Educative.io is a great platform for developers and DevOps engineers to learn and prepare for interviews. It covers real-life project examples and designs in the courses. ### What is the best Educative.io coupon? The best deal available now is a **59% discount on** **educative.io's annual membership**. Compared to a monthly subscription, a yearly discount gives you 80% savings. Also, you can get the same 59% discount for a two-year subscription with the holiday discount. ### How much does Educative.io cost? Educative.io has various subscription plans so that you can find the perfect fit for your learning needs. The basic yearly plan starts at $16.66 a month, and the premium plan costs $ 24.99 per month. And if you're unsure which plan is right for you, don't worry - you can always start with the [educative free trial](https://devopscube.com/recommends/educative-trial/). ### Does Educative provide a certificate? Yes. If you are a paid member, you will receive a certificate from educative.io for the course you completed. ### What is the latest Educative discount? The latest educative.io discount is the Machine Learning promo sale. You could save 69% on all Educative subscriptions. ## Become a Better Developer With Educative.io If you are a developer or a DevOps engineer, learning new skills will give you an edge over your peers. I use Educative for all my learning. It is also one of the [best platforms for learning Programming](https://devopscube.ghost.io/top-websites-to-learn-programming-online/?ref=devopscube.com) online educative.io can help you on your learning path with organized course materials and interview preparation guides. Do give it a try using a free trial and see how it works out for you. If you are happy with the platform, you can use our educative.io coupon to save on subscriptions. If you are looking for online, self-paced nano degree programs, you can also try Udacity.com and the scholarship programs. You can also get a [75% discount using the Udacity coupon](https://devopscube.ghost.io/udacity-coupon-code/?ref=devopscube.com). Happy learning & coding! ## Expired Coupons We also keep track of special expired coupons. This is because these Educative coupons and promotions may get activated again. For example, Holiday discounts, Black Friday discounts, etc. ### \[72% OFF\] Educative Year-End Sale 2025 \[Expired\] Get a flat **72% discount** on Educative for the 2025 year-end sale. In some regions, the discount is **55%**. This sale is ending soon, so grab it before it expires. [Get 72% Discount on Educative Year End Sale ](https://devopscube.com/recommends/educative/) ### \[72% OFF\] Educative Cyber Monday Sale 2025 \[Expired\] Educative is offering a massive **72% discount** for Cyber Monday 2025, and some countries will get a **55% discount**. You won’t see this kind of deal again anytime soon. After this, you will have to wait another year. So grab it while it’s live! [Get 72% Discount on Educative Cyber Monday Sale ](https://devopscube.com/recommends/educative/) **Validity:** This offer expires in few hours! ### \[72% OFF\] Educative Black Friday Deal 2025 (Expired) Educative Black Friday deal is live now! To mark the occasion, they’re offering **up to 72% off** in select countries, with a minimum **discount of 55%** on all subscriptions. [Get 72% Discount on Educative Black Friday ](https://devopscube.com/recommends/educative/) **Note:** This offer expires soon! Overall, with an educative subscription, you get access to the following. 1. Access to 820 hands-on courses with in-browser coding exercises, playgrounds, and assessments. 2. Course completion certificates. 3. 1400+ hands-on interactive courses (with a personalized path tailored for your unique learning goal). 4. 280 real-world projects 5. Skill assessments 6. 310 hands-on **Projects,** and **Personalized Paths** 7. Exclusive access to **CloudLabs** (Plus only) 8. AI-Powered Learning with mock interviews and explanations with AI features. 9. Up to 24 months of access (7 Mock Interviews per month for premium plus plans) 10. 3 Mock Interviews per month 11. Early access to new courses 12. AI-tailored courses 13. Ready-to-run sandboxes 💡 ****Note**: Ensure you signup for a free account and check the official promotions from educative. You might get personalized offers to save big on all the subscription. ### \[72% Off\] Educative Discount \[Expired\] Get up to a 72% discount on Educative Standard, Premium, and Premium plans. In some countries, you will get only a 55% discount. [Get UpTo 72% Discount now ](https://devopscube.com/recommends/educative/) **Note:** Locking this discount before it expires! ### \[50% Off\] Educative 2-year Plan Discount (**$249** ~~$498~~)\[Expired\] If you opt for an **Educative 2-year plan**, you can save an additional 24% on the subscription. With this subscription, you can access projects and personalized learning plans. With an extra 20% discount using our exclusive coupon, you will get a **total savings of 50%** [Redeem 50% Educative.io Discount ](https://devopscube.com/recommends/educative/) **Note:** This is a limited-time offer. Grab it before it expires ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/05/image-41.png) ### ### \[40% Off\] Educative Coupon \[Two Year Holiday Discount\] - Expired With an **educative.io holiday discount**, you will get a **40% discount** on a two-year subscription. You will pay only $8.30/month instead of $13.88/month. [Redeem 40% holiday Discount ](https://devopscube.com/recommends/educative/) With this exclusive offer, you will get **24 months of unlimited access**, completion certificates, weekly new courses, and access to upcoming classes. ### \[Upto 30% Off\] Year-End Holiday Discount \[Expired\] Get a 20% discount on Educative.io two-year plans using the year-end holiday discount. This discount is for a limited time. [Redeem 20% HOLIDAY Discount ](https://devopscube.com/recommends/educative/) **Note:** It is a limited-time offer ### \[20% Extra\] Year-End Educative.io Discount \[Expired\] Get a 20% extra discount on Educative subscriptions using the year-end discount. This offer is valid for a limited time. For certain regions, you will get more than a 50% discount as part of this sale. [Redeem 20% Educative.io Discount ](https://devopscube.com/recommends/educative/) ### Educative AI April: Lock in your Lifetime Discount \[Expired\] As part of the AI April sale, Educative offers big discounts on all its subscriptions, including lifetime access. [Redeem EDUCATIVE Discount ](https://devopscube.com/recommends/educative/) **Note**: This Offer ends soon. ### 30% OFF Lifetime Unlimited Discount \[Expired\] The 30% offer for Educative Unlimited is extended for the new year 2024\. Redeem the offer before it expires. [GET 30% DISCOUNT ](https://devopscube.com/recommends/special-discount/) ### \[50% OFF\] Educative Flash Sale \[Expired\] Get a 50% discount on Educative Standard, Premium, and Premium Plus subscriptions for a limited time. Lock in the offer before it expires. [Redeem 50% Discount ](https://devopscube.com/recommends/educative/) **Note**: This Flash sale ends very soon. ![[50% OFF] Educative Flash Sale](https://devopscube.ghost.io/content/images/2025/03/image-50-3.png) ### \[50% Off\] Educative Black Friday Deal \[Expired\] The Educative Holiday Season sales have expired. With this bird black Friday offer, you can save 50% on an Educative subscription. This includes all courses, projects, and learning paths. The next black friday deal will be in 2025. [Redeem 50% discount ](https://devopscube.com/recommends/educative/) **Note**: This is a very limited-time Black Friday Offer Here are popular topics to get a head start on 2025 career goals with Educative. Plus, you will get access to over 1,200 hands-on courses, projects, and assessments covering the industry’s most in-demand skills 1. Interview Prep 2. System Design 3. Web Development 4. Machine Learning / Data Science 5. AWS Cloud [![](https://devopscube.ghost.io/content/images/2025/03/black-friday-01-1.jpg)](https://devopscube.ghost.io/content/images/2025/03/black-friday-01-scaled.jpg?ref=devopscube.com) ### \[UpTo 72% OFF\] Educative Memorial Day Sale (Expired) Get up to 72% discount on Educative subscriptions as part of the Memorial Day early bird sale. In a few countries, you will get only a 56% discount. This sale is aimed at helping learners to build job-ready ML and Data science skills. [Get UpTo 72% Discount now ](https://devopscube.com/recommends/educative/) ![56% off educative discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/05/image-85.png) Countries like India can get up to a 72% discount. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/05/image-86.png) ### ElevenLabs Discount Code (2026): Verified 50% OFF Promo URL: https://devopscube.com/elevenlabs-discount/ Last updated: 2026-10-01T09:26:20.000Z In this blog post, we have listed all the current ElevenLabs discounts officially announced by ElevenLabs. ElevenLabs has become one of the most popular [content creation tools](https://devopscube.com/content-creation-tools/) among creators. It especially helps you speed up voice-over workflows. We also use ElevenLabs for our [DevOpsCube YouTube](https://www.youtube.com/c/devopscube?ref=devopscube.com) channel and Instagram Reels. We have trained our voice and created an almost perfect clone. You can read our guide on how to [clone voice using Elevenlabs.](https://devopscube.com/clone-voice-in-elevenlabs/) Now let’s help you grab the best ElevenLabs coupon! ## Latest ElevenLabs Discounts (October 2026) You can find all the active ElevenLabs discounts and offers in the sections below. ### \[50% OFF\] ElevenLabs Creator Monthly Plan ElevenLabs is offering up to **50% off** on its Creator monthly plan, starting at just **$11 per month**. If you're a professional creator looking to clone your voice with high accuracy, this plan is one of the best options available. It offers Professional Voice Cloning. [Get 50% Discount on Creator Plan](https://try.elevenlabs.io/devopscube?ref=devopscube.com) **Note:** This is a limited-time offer⌛ At DevOpscube, we use the Creator plan. ### 2 Months Free on All Annual Plans ElevenLabs is offering two free months on all annual plans, including the Starter, Creator, Pro, Scale, and Business tiers. This is a great chance to lock in premium features like Professional Voice Cloning at a lower yearly cost. [Get 2 Months Free Access](https://try.elevenlabs.io/p4fh9dhwbmjw?ref=devopscube.com) **Note:** This offer expires soon⌛ ### Free ElevenLabs 10k credits per month If you want to get started with Elevenlabs, you can get started with their free plan, which offers 0k credits per month. With the free plan, you get Text-to-Speech and Speech-to-Text. [Get Started for Free](https://try.elevenlabs.io/devopscube?ref=devopscube.com) ### Free ElevenLabs Access For Students and Educators Elevenlabs offers free access to students and educators using the Elevenlabs for students initiative. [Get Elevenlabs Student Discount](https://elevenlabs.io/students?ref=devopscube.com) **Note:** You need to join the waitlist to get the AI studen pack vol 2⌛ ## ElevenLabs AI Student Pack \[$1500 Free Credits\] ElevenLabs has introduced an [AI Student Pack](https://elevenlabs.io/blog/ai-student-pack?ref=devopscube.com) that includes 16 AI tools along with **$1,500 in free credits** and large discounts, making it very useful for students. The AI tools included are ElevenLabs, ElevenReader, Granola, Notion, VO, Headspace, Superhuman, Bolt, Blinkist, Coconote, Hedra, HeyGen, Gamma, Lovable, Sketchy, and Higgsfield. These tools help students study better, create content, and build projects faster. [Get AI Student Pack Now](https://aistudentpack.com/?ref=devopscube.com) ⚠️ Note: Volume 1 is already closed. You will need to wait for ****Volume 2**. Click ****Join Waitlist**, and you will be notified when it becomes available. ![ElevenLabs AI Student Pack](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-19.png) ### \[Upto 80% OFF\] ElevenLabs Black Friday Discount \[Expired\] For this Black Friday deal, ElevenLabs is offering **80% OFF** on its Starter monthly plan. The first month is just **$1**. This plan includes **30,000 credits** and is perfect for beginners and hobby creators. [Get 80% on Starter Plan](https://try.elevenlabs.io/p4fh9dhwbmjw?ref=devopscube.com) You can also get **50% off** the creator monthly plan. The first-month price is down to **$11,** and it includes **100,000 credits** along with **Professional Voice Cloning**, ideal for professional creators. [Get 50% on Creator Plan](https://try.elevenlabs.io/p4fh9dhwbmjw?ref=devopscube.com) **Note:** This offer is expired, Next black friday deal will be live in 2026⌛ ## How to Claim Elevenlabs Discount? Follow the steps below to easily claim your ElevenLabs discount. **Step 1:** Visit the [Elevanlabs website](https://try.elevenlabs.io/p4fh9dhwbmjw?ref=devopscube.com) and open the pricing page **Step 2:** Choose your plan You will see options under the Creative platform, Agents platform, and API. All plans follow the same pricing structure, so pick what matches your needs. ![Select whether the user want creative platform, agents platform or API](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-129.png) For example, let’s select the **Creator plan** under the Creative platform. 💡 ****Note:** The steps are the same for all plans. ![Elevenlabs plans](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-130.png) After selecting the plan, you will be taken to the login page. **Step 3:** Click the Subscribe button ![use need to click the subscribe button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-131.png) You will be asked whether you prefer a yearly or a monthly plan. Choose based on your preference. For example, let’s select monthly billing. ![user need to confirm yearly or monthly plan they need.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-132.png) **Step 4:** Select your payment method. You will see two payment options: card and crypto. Select one and enter the required details. ![User need to choose the payment method. Whether it is card or crypto](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-134.png) If you choose the card option, enter your card details and country. If you are purchasing for business, check the box that says “I’m purchasing as a business.” ![Enter the card details](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-137.png) **Step 5:** Click Pay and subscribe After filling in the payment details, click the **Pay and Subscribe** button. ![click pay and subscribe button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-138.png) These are the simple steps to claim your ElevenLabs discount and your discounts will be applied automatically. ## About ElevenLabs ElevenLabs is an advanced AI voice platform that turns text into natural human-like audio. It supports text-to-speech, speech-to-text, voice cloning, AI dubbing, multilingual narration, conversational voice AI, and even AI-generated sound effects. It is mostly used by YouTubers, content creators, podcasters, educators, filmmakers, and SaaS companies that need realistic voices by simply providing text. The tool is known for its high-quality voice output, fast processing, and highly accurate voice cloning. To clone your own voice, you must train the model by uploading your voice recordings. You have to upload a maximum of 3 hours of your own audio to get the best results. ## Elevenlabs Key Features The following are the best features that you will get in Elevenlabs. - You can generate a voice from text, and you can convert speech to text. - Get 10k to 11M credits based on the place you choose. - You will get instant voice cloning and professional voice cloning. - Get AI studio with audiobook, create a podcast, URL to audio, AI script generator, new video voiceover, add SFX & music, add captions, remove background, and fix voiceover mistakes. - Describe a song and generate it. - You will get a dubbing studio and a commercial license. - You can create images and videos. - If the credits run out, you have to pay the bill based on the usage. - Other features such as agents, API access, and more If you want to know the full features, then [visit this page](https://elevenlabs.io/pricing?ref=devopscube.com). 💡 You can check our [ElevenLabs review](https://devopscube.com/elevenlabs-review/) to gain more real user experience about this tool. ## Elevenlabs Pricing The following tables contain the pricing and plans of Elevenlabs | **Plan** | **Price** | **Approx.Min** | **Features Included** | | | ------------ | ------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | | **Starter** | $5/Month | 30 Mins Speech | \- Text to Speech\- Speech to Text\- Music, agents, studio, autated dubbing, API access\- Commercial license\- Instant Voice Cloning\- Music use in social media and ads | | | **Creator** | $11/Month | 100 Mins Speech/td> | \- All features Starter\- Professional Voice Cloning\- Usage based billing for additional credits\- Higher quality audio 192 kbps | | | **Pro** | $99/Month | 500 Mins Speech | \- All features from Creator\- 44.1kHz PCM audio output via API | | | **Scale** | $330/Month | 2,000 Mins Speech | \- Everything in Pro \- Multi-seat Workspace | | | **Business** | $1,320/Month | 11,000 Mins Speech | \- Everything in Scale \-Low-latency TTS as low as 5c/minute \- 3 Professional Voice Clones | | There is also an **Enterprise plan**, for which you must contact the ElevenLabs team. ## FAQs The following are the frequently asked questions about Elevenlabs. ### 1\. Does Elevenlabs have a free plan? Yes, Elevenlabs has a free plan. You can use it for free and get upto 10k credits. This is useful if you are new to this platform. ### 2\. How much is the discount for Elevenlabs Black Friday deal 2025? The ElevenLabs Black Friday deal offers up to 80% off, and the pricing starts at $1 for the first month. ### 3\. How many credits will I get for the creator plan? You will get up to 100k credits per month. If your credits run out before the month ends, you can still continue using the service, but you will have to pay based on your usage. ### 4\. Are there discounts for an ElevenLabs annual subscription? Currently, there is no discount, but you will get 2 months free use for all its annual plans. ### 5\. How much discount will I get on ElevenLabs? Currently, you can get a 50% discount on the ElevenLabs Creator monthly plan. Additionally, you get 2 months free on all ElevenLabs annual plans. ## Conclusion In this guide, we covered all the Elevenlabs discounts that are currently active. The good thing is, we update this blog every month to include the latest deals to help you with maximum savings. If you have any doubts or face any issues while claiming your discount, drop a comment. We will help you out. In the same content creation tools space, [Beehiiv](https://devopscube.com/custom-domain-beehiiv/) is one of the most popular tools. If you want to get started with your own newsletter website, check out our [Beehiiv review](https://devopscube.com/beehiiv-review/). ### Datacamp Discount 2026: Save on Monthly & Yearly URL: https://devopscube.com/datacamp-discount-coupon/ Last updated: 2026-10-01T07:32:02.000Z In this post, I have added the **latest**[ **DataCamp**](https://www.datacamp.com/?ref=devopscube.com) **discounts** and offers to get discounts on the DataCamp subscriptions, Datalab, along with a few freebies offered by DataCamp. If you want to learn or enhance your data & AI skills, you can find everything related to data & AI/ML on DataCamp. 💡 We update the latest Deals from DataCamp through the communications we receive from official DataCamp emails. We have updated all the offers for October 2026. If you want to know more about DataCamp before purchasing a subscription, read our detailed [DataCamp review](https://devopscube.com/datacamp-review/) based on my learning experience. ## DataCamp Discounts for October 2026 The **best Datacamp discount** you can get is the **50% discount price** on the Datacamp annual premium subscription & 50% on the Datalab subscription. I have listed all the latest available Datacamp offers and different ways you can get discounted access to Datacamp. The deals are available for IT professionals, students, organizations, and teachers. You can choose the best offer that suits your needs. ## \[50% OFF\] Datacamp Data & AI Skills Sale Get a flat 50% discount on Datacamp using the Data and AI Skills Sale for a very limited time. You can upskill in data science and AI with Python, SQL, Power BI, Tableau and more with 50% off. [Get 50% DATACAMP DISCOUNT ](https://devopscube.com/recommends/datacamp-special-promo/) **Note:**The Sale is ending soon! Grab the offer before it expires Here is what you get 1. Normally, the cost is $330\. Now it's **only $165** 2. For teams, normally it's $300/user. Now it's **only $165/user** ## \[50% OFF\] Datacamp Premium Discount If you want to save money on a Datacamp subscription, you can **opt for a yearly subscription** rather than a monthly one. For example, a monthly Datacamp premium subscription is $48, whereas for an annual subscription, your monthly subscription **charges come down to just $13**. That is a **50% discount ($198 savings)** compared to monthly plans. [Get 50% Datacamp Discount ](https://devopscube.com/recommends/datacamp-pricing/) Here is what you get with the premium subscription. 1. **540+** interactive courses: Python, ChatGPT, SQL, R, Power BI, Machine Learning, [MLOps](https://devopscube.com/devops-to-mlops/), and much more. 2. Access to the full DataCamp content library 3. Access to all the certificates and projects 4. You can apply to jobs listed on DataCamp 5. Access to step-by-step coding projects 6. Priority Customer Support 7. Hands-on exercises with interactive & in-browser labs and built-in AI support. 8. Well-structured learning paths designed for key data and AI roles. 9. Unlimited access to our entire Datacamp catalog 10. Certification and access to Datacamp career services 11. Videos in 16+ languages 12. Validate new skills with Career-building certifications 13. **Hands-on** learning, portfolio-building projects, and career tracks for all levels 14. Real-world projects ## \[50% OFF\] Datacamp Datalab Discount When you choose a Datacamp Datalab annual subscription, you will get a **flat 50% discount.** The cost comes down from $22/month to just $13/month. [Get 50% OFF Datalab Discount ](https://devopscube.com/recommends/datacamp-pricing/) With this subscription, you will get access to, - Unlimited workbook creation - Unlimited AI Assistant prompts - 16GB RAM, 8vCPUs - Version history up to one year ## \[Free\] Get Started With Datacamp Basic for Free Datacamp Basic offers every first chapter for free. Also, you can access the professional profile and job board for free. [GET FREE BASIC ACCOUNT ](https://devopscube.com/recommends/datacamp-pricing/) You can also get started with free Datalab access with the following 1. Up to three workbooks 2. 5 AI Assistant prompts per day 3. Collaborate with others 4. 4GB RAM, 2vCPUs 5. Version history up to seven days ## \[50% Off\] Datacamp Premium Student Discount If you are an active University student and you want to pursue a career in data science and engineering, you can get a **50% Datacamp discount** on its premium plan. Which is normally priced at $300\. With the Datacamp student discount, you can get the entire Datacamp course library access for just $149/year. Here is what you should have to redeem the student discount. 1. Active College/university enrollment. 2. University/College email address [Get 50% off student discount ](https://devopscube.com/recommends/datacamp-student/) ![Datacamp Premium Student Discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-27-9.png) ## \[Free\] Get Started With Datalab Starter for Free You can get started with Datacamp Datalab for completely free. The free workspace account offers the following. 1. Up to three free workspaces 2. 4GB RAM, 2vCPUs 3. Access databases via fixed IPs 4. Version history up to seven days [Get datacamp Starter Datalab ](https://devopscube.com/recommends/datacamp-free-workspace/) ## \[100% Free\] DataCamp for Universities If you are an educator, you can get a 100% free Datacamp account using the Datacamp for Classroom program. [APPLY for DataCamp Classroom ](https://devopscube.com/recommends/datacamp-educator/) To redeem the free classroom account, you need to provide the following main details in a form. 1. School information 2. Class, you are teaching 3. Number of students in your class ## Datacamp Professional Plan Discount There are no direct discounts or coupons for Datacamp's professional plan. However, you can contact the Datacamp sales team and check if there are any volume discounts available for professional plans. With a basic professional plan, you will get access to 2 Learner seats + unlimited free Admin seats ## About Datacamp Did you know, that there has been a **46% increase in demand for data roles** since 2019? Also, an entry-level salary for a Data Scientist is $100000+. It is one of the most in-demand skills, according to hiring managers. Datacamp is an **e-learning portal to build data skills online**. It offers hands-on, on-demand courses on the following main categories, and 2000+ companies use Datacamp data training. Also, it has Forbes’ #1-ranked data certification program. Notably, companies like Google, Intel, PayPal, Uber, and Deloitte use Datacamp to enhance their data skills. 1. Data Engineering 2. Programming 3. Importing & Cleaning Data 4. Data Manipulation 5. Data Visualization 6. Probability & Statistics 7. Machine Learning 8. Applied Finance Reporting There are more than 350 courses that cover technologies related to the above-mentioned domains. Also, there are **96 hands-on projects** for learners to gain experience in data skills. The following are the key technologies covered in the courses. 1. R 2. Python 3. SQL 4. Git 5. Shell 6. Spreadsheets Theory 7. Scala 8. Tableau 9. Excel 10. Power BI Here are some of the data science-related project examples. 1. Name Game: Gender Prediction using Sound 2. Visualize the rise of COVID-19 cases globally with ggplot2. As you can see, the platform covers almost all essentials for Data science enthusiasts. If you want to get started with data science, get started with Datacamp free courses and then you can decide if you want to go for a paid subscription. Here is what we like about DataCamp. 1. Free courses on all career paths 2. Good coverage of tools related to data science. 3. An extensive course path with projects to learn real-world data science implementations. 4. Certification and career advice. ### Datacamp XP Points To keep the learning process engaging, fun, and rewarding, Datacamp has the concept of XP points. The more engaging you are with the courses, earn more XP points. You cannot disable this feature. You do not earn XP points if you get help. Points will be added only for exercises that you complete with your own efforts. ### Datacamp Career Building Paths Using Datacamp career-building paths, you can build your career as the following. 1. Data Analyst 2. Data Scientist 3. Python programmers 4. R Programmer 5. Quantitative analyst 6. Statistician 7. Machine Learning Scientist 8. Data Engineer ### Datacamp Datalab With Datacamp Datalab, you can practice code in the browser itself. Along with the Datalab, you will get access to analyze datasets and a dedicated integrated development environment (IDE). With Datalab, you will get access to 20+ preloaded datasets and access to pre-written code through Datacamp playbook templates. With this functionality, you can instantly build your analyses. For data science teams, Workspace allows easy ways to collaborate so you can turn data into insights even faster. ### Datacamp Certifications Datacamp offers two certification programs. 1. **Data Scientist Certification:** In this certification, you will be tested for Data Management, Exploratory Analysis, Model Development, Statistical Experimentation, Coding for Production, and Communication. 2. **Data Analyst certification**: In this certification, you will be tested for Data Management, Exploratory Analysis, Analytic Fundamentals, Visualization and Reporting, and Communication. 3. **Data Engineer Certification:** In this certification you will be tested on collecting, processing, and publishing large datasets. Check out all the [Datacamp Certification](https://www.datacamp.com/certification?ref=devopscube.com) You can also get certified in the following certifications through Datacamp. 1. SQL Associate Certification 2. Exam PL-300: Microsoft Power BI Data Analyst (50% OFF PL-300 EXAM through Datacamp) 3. Tableau Certified Data Analyst 4. Azure Fundamentals (50% OFF AZ-900 EXAM) through Datacamp 5. Alteryx Fundamentals ## Latest Datacamp News Here are some of the latest news updates from Datacamp. 1. Datacamp has released the State of [Data & AI Literacy Report 2025](https://www.datacamp.com/blog/introducing-the-state-of-data-and-ai-literacy-report-2025?ref=devopscube.com), which is out now. 2. DataLab launched Datalab with an AI-enabled data notebook 3. Datacamp has added AI career tracks and certifications. Also, you can get access to the free week program. 4. As part of Data and AI Literacy months, Datacamp is organizing a month-long series of events, podcasts, and articles in September 2023. 5. Datacamp will have a 75% Black Friday Discount this month. 6. Datacap Live Code-Along session on How a data science portfolio can help you land your dream job is happening on November 8th, 2021 7. A Webinar on A Framework for Data Transformation is happening on November 10th 8. A webinar on DataCamp: Q4 2021 Roadmap is scheduled for November 24th. 9. DataCamp Partners with Degreed to Provide Free Data Literacy Training to Organizations 10. DataCamp Ranked 94th Fastest-Growing Company in North America on Deloitte's 2020 Technology Fast 500™ ## Datacamp Discount FAQs The following are the frequently asked questions about the Datacamp Discount ### How can I get free DataCamp access in 2026? You can get the first course on all the tracks for free. **DataCamp is 100% free for educators** under the Datacamp classroom program. Also, with the Datacamp free week sale, you will get free access to the entire library for a week. ### Does DataCamp have a free trial? Datacamp doesn't have a free trial. But DataCamp is 100% free for educators and their students. Also, you can access the first courses completely free on all the tracks. ### What is the maximum discount on Datacamp Subscription in 2026? In 2026, you can get a maximum of [50% discount](https://datacamp.pxf.io/4eEdMo?ref=devopscube.com) on a Datacamp subscription & Datalab using exclusive flash sales. ### How is DataCamp for Data Science? As per user reviews from forums such as Quora and Reddit, Datacamp is an **ideal platform to get started with a career path in Data Science**. If you are an advanced user, you might find many course tracks as beginner material. ## Datacamp Expired Offers We keep track of the expired Datacamp offers, as they might be live again. These are key offers that get repeated every year, where you get huge savings. ### \[67% OFF\] Datacamp Discount: Accelerate Your Career Offer \[Expired\] The **Datacamp Zero- Job Ready** **discount** is live now. As part of this sale, you will get a 65% discount on Datacamp subscriptions. This discount would be applicable for all the Datacamp subscription plans. [Get 65% OFF Datacamp discount ](https://devopscube.com/recommends/datacamp-promo/) ### Free Datacamp Datalab \[Expired\] DataCamp Datalab allows you to **write code, analyze data, and visualize** your analysis all through the **comfort of your web browser**. Plus, you can share your work and collaborate with others. With ready-to-use datasets and coding templates, it's the perfect tool for going from learning to doing data science. The good news is, that you can get started with Datacamp Datalab completely free. [Get FREE WORKSPACE ](https://devopscube.com/recommends/datacamp-workspace/) ### \[65% Off\] DataCamp Datalab \[Expired\] The Datacamp cloud-based notebook service Workspace offers a 65% discount on its premium and team plans for a limited time. You could save $64 on this flash sale. For individuals, you could get a workspace subscription for just $35 instead of ~~$99~~. [Save 65% on WORKSPACE ](https://devopscube.com/recommends/datacamp-33/) **Note:** The offer expires on June 10th. Lock in the price before it expires. ![Datacamp 80% discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-22-11.png) As compared to the free workspace, the premium workspace has the following features. 1. More power, more memory 2. 4x the speed 3. 4x the memory 4. Access via a fixed IP address ### \[50% OFF\] Datacamp Black Friday Discount 2024 The **Datacamp Black Friday discount** is not live for 2024\. As part of the Black Friday & Cyber Monday sale, you may get up to 50% discount on Datacamp subscriptions. [GET BLACK FRIDAY DISCOUNT ](https://devopscube.com/recommends/datacamp-pricing/) **Note:** Black Friday Offer is for a limited time. Lockin the price when it is available. ### \[50% OFF\] DataCamp New Year Sale \[Expired\] As part of new year 2024, DataCamp is offering a flat 50% discount on it premium and team plans. [Get 50% DATACAMP DISCOUNT ](https://devopscube.com/recommends/datacamp-special-promo/) **Note:** It is a very limited time offer. ### Datacamp Unlimited $1 Sale \[Expired\] As part of $1 sale, Datacamp is offering its premium unlimited subscription access for a month only for $1. [Get $1 premium plan offer ](https://devopscube.com/recommends/datacamp-special-promo/) **Note:** This offer expires very soon. So Hurry up! ![Datacamp $1 sale](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-32-6.png) ## Datacamp Free Week \[Expired\] Datacamp free week is baclk. If you are an individual learner or a student, you can get unlimited access to all of DataCamp's courses, career tracks, and certifications till 10th June 8th, 11:59 PM EST. All you need to do is register for free. [Get Free Datacamp Access ](https://devopscube.com/recommends/datacamp-free-week/) **Note:** Free Week Access Expires on 8th June With this offer, you will get access to the following. 1. 130+ interactive data and AI courses 2. Courses on MLOps, ChatGPT, Generative AI, Python, R, SQL, and more ![Datacamp free week access (Limited discount)](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/06/image.png) ## ## Conclusion In this blog, we have listed all the **latest Datacamp discounts** and offers for data science enthusiasts. Also, this page will be updated all the time with the latest offers from DataCamp through the official notifications we receive. If you have any queries, do let us know in the comments section. We will help you out. If you are a developer or a [DevOps engineer ](https://devopscube.com/become-devops-engineer/)who wants to [learn Python](https://devopscube.com/python-for-devops/), Datacamp Python is a great option. Also, if you are looking for an alternative platform to learn data science, check out Dataquest. It is one of the [best websites to learn coding](https://devopscube.com/top-websites-to-learn-programming-online/) for data science. ### Pluralsight Current Offers & Review 2026 URL: https://devopscube.com/pluralsight-coupons-offers/ Last updated: 2026-10-01T06:19:04.000Z In this post, I have added the **latest Pluralsight coupons** and offers to get discounts on the Pluralsight subscription. I have also added some freebies offered by Pluralsight for October 2026. If you want to learn [DevOps tools](https://devopscube.com/devops-tools-for-infrastructure-automation/), [programming](https://devopscube.com/best-programming-languages-list/), Automation, Virtualization, [Cloud Computing](https://devopscube.com/cloud-computing-trends/), and whatnot, you can find every [on-demand course](https://devopscube.com/top-websites-to-learn-programming-online/) on Pluralsight. I started learning [Ansible](https://devopscube.com/devops-tools-for-infrastructure-automation/) from Pluralsight. I had a good experience as the course content was to the point, and I was able to grasp all the concepts explained. ## Pluralsight Best Offers \[Oct 2026\] The best **Pluralsight discount** you can get right now is a **30% discount** on its subscription plans. It includes courses, paths, and skill assessments for individuals. ## \[30% OFF\] Pluralsight Exclusive Coupon Pluralsight is offering **30% off** on its individual yearly plans, such as Core Tech, Complete, AI+, Cloud+, Data+, and Security+. Also, you can try it free for 10 days for all these plans. [Get 30% Discount on Pluralsight Individual Plan](https://devopscube.com/recommends/pluralsight-free-trial/) ## Pluralsight Free Courses Get access to 100+ on-demand, interactive labs, and unlimited Skill IQ assessments. [Get Free Pluralsight Courses](https://devopscube.com/recommends/pluralsight-free-trial/) The free access is great for anyone looking to build a strong tech foundation. ## 10 Days Free Pluralsight Trial Account If you are a new Pluralsight user, start with the 10-day free trial. If you like the courses on the platform, you can continue with the subscription or cancel anytime during the trial period. [Get Pluralsight 10 days Trial](https://devopscube.com/recommends/pluralsight-free-trial/) ## Gift Pluralsight Subscription You can gift your colleagues and friends with a Pluralsight subscription. You can gift a personal monthly plan to a premium yearly plan. It includes everything that comes with a standard subscription. Check out[ Pluralsight gift from here](https://devopscube.com/recommends/pluralsight-gift/). ![Pluralsight git subscription](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/pluralsight-gift-min-2.png) ## Pluralsight Free Skill IQ Pluralsight offers a way to gauge your IT skills totally free. Skill IQ basically takes you through the questions to assess your skill set on a particular technology. This helps you to understand your stance on technology. [Get Free Skill IQ Test](https://www.pluralsight.com/product/skill-iq?ref=devopscube.com) ## Pluralsight Flow Subscription Offer \[30 days Free Trial\] Apart from Pluralsight Skills, it also offers a product called Pluralsight Flow. It is aimed at improving the IT team's efficiency by tracking the development process in depth. It is available for managers, engineers, product leaders, and executives. The standard flow pricing starts from $499 [Try Pluralsight Flow for 30 Days](https://devopscube.com/recommends/pluralsight-flow/) ## How to Redeem Pluralsight Promo Code? If you have an exclusive **Pluralsight promo code**, use the steps below to redeem the coupon. 1. Head over to the Pluralsight[ offer redemption page.](https://www.pluralsight.com/redeem?ref=devopscube.com) 2. Signup with all the details. ![pluralsight offer code redemption](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-200.png) Moreover, Pluralsight has both Android and iOS applications, using which you can access the courses from anywhere. All the course screencasts are in HD quality (Both audio and video). And if you wish to watch the videos offline, you can make use of their desktop player, which has offline functionality. ## Get the Pluralsight Discount Updates Learning is a continuous requirement for me, and I make use of discounts for annual subscriptions. So I keep updating this page whenever a new Pluralsight discount offer is available. You can bookmark this page, or get updates through our email list for the latest Pluralsight offer. ## About Pluralsight Now, let's take a look at what Pluralsight has to offer for users. If you want to know more about Pluralsight, read our detailed [Pluralsight review](https://devopscube.com/pluralsight-review/). ### Pluralsight Course Offerings Pluralsight offers courses for IT in the following key areas. 1. Cloud Computing 2. Machine Learning / AI 3. Software Development \[Courses on popular programming languages\] 4. IT Ops \[Courses on Infrastructure, Virtualization, and Cloud\] 5. Data Professional \[Course on data analytics, engineering, and science \] 6. Information & Cyber Security \[Courses on IT security Certifications\] 7. [Data Science](https://devopscube.com/list-best-frameworks-data-scientists/) Courses ![Pluralsight course categories](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/pluralsight-course-categories-min-2.png) Not just courses, Pluralsight offers hands-on learning using its Skills platform with Labs. ### Pluralsight certificate If you completed a Pluralsight course fully, you are eligible to get the Pluralsight course completion certificate. You can download the certificate from the Desktop browser, not the mobile app. The Pluralsight certificates are available as PDFs and can be used as CEUs (continuing education units) or CPE (continuing professional education) credits in CompTIA, PMI, ISACA, and (ISC)2. ### Pluralsight Labs Pluralsight Labs is a feature to get hands-on experience with the technologies you learn from Pluralsight. Currently, pluralsight labs have more than 950 practical plans. With Pluralsight labs, you have access to a wide range of tools and resources that allow you to explore and grow your skills in just about any area. Whether you want to learn about web development, data analytics, or anything else, Pluralsight labs has you covered. Plus, Pluralsight Labs is always adding new projects and resources, so you’ll never get bored or run out of things to learn. So what are you waiting for? Check out Pluralsight labs today! I tried Pluralsight Labs, and here is how it looks. Each lab environment comes with a timer and progress as highlighted in the image. It will take a couple of minutes for the lab to be ready. Once it is ready, the "open environment" button will be active and will take you to the terminal section. ![pluralsight labs envionment.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-11.png) ### Pluralsight Vs Udemy Unlike [Udemy](https://www.udemy.com/?ref=devopscube.com), when you subscribe to Pluralsight, you will get access to all the courses on the platform. Whereas in Udemy, you need to purchase individual courses. This option is very good if you want to learn from just one course. You can get a Udemy [course as low as $3.95](https://devopscube.com/recommends/dcube-udemy-deal/) In Pluralsight, you can learn from multiple courses from beginner to advanced levels with one subscription. ### Pluralsight Vs Linkedin Learning Both Pluralsight and LinkedIn Learning offer a single subscription model. Linked learning was previously known as Lynda.com. Here, the comparison is mostly on the course availability rather than quality. Both platforms offer quality courses as the authors are screened for their technology background before being onboarded to the platform for teaching. You can try both platforms using their free trials. LinkedIn offers one-month of free access to all its courses. During the free trial program, you can decide on the platform that caters to your needs. ## Expired Offers We keep track of expired offers as they might become active again for a limited time during certain months of the year. ### \[50% OFF\] Pluralsight Sitewide Coupon \[Expired\] Pluralsight is offering 5**0% off** on its individual yearly plans, such as Core Tech, Complete, AI+, Cloud+, Data+, and Security+. Also, you can try 10 days free for all these plans. [Get 30% Discount on Pluralsight Individual Plan](https://devopscube.com/recommends/pluralsight-free-trial/) **Coupon**: Use Code **TECHMARCH50** at checkout **Note:** This offer expires soon! Lockin the discount before it expires ### \[50% OFF\] Pluralsight Holiday Countdown Sale \[Expired\] Get a flat 50% off any individual monthly or yearly plan. This is a great chance to speed up your learning and achieve your career goals with Pluralsight’s on-demand tech courses. [Get 50% Discount Pluralsight Individual Plan](https://devopscube.com/recommends/pluralsight-free-trial/) **Coupon**: Use Code **HOLIDAY50**at checkout Pluralsight is also offering **30% off** on any **business yearly plan**, making it easier to upskill your entire team and build future-ready tech capabilities. [Get 30% Discount Pluralsight Business Plan](https://devopscube.com/recommends/pluralsight-free-trial/) **Coupon**: Use Code **HOLIDAY30**at checkout ⚠️ ****Note:** This offer starts from December 8 and ends on December 25, 2025\. You won’t be able to claim the discount before the offer begins.. ### \[55% OFF\] Pluralsight Black Friday Early Access \[Expired\] Get a flat **55% discount** on the Pluralsight **individual yearly** plan. This is for DevOpsCube readers, get early access to Black Friday Sale. Achieve your career goals faster with on-demand content from Pluralsight. [Get 55% Pluralsight Discount](https://devopscube.com/recommends/pluralsight-free-trial/) **Coupon**: Use Code **55EARLYACCESS**at checkout Also, get **30% OFF** on the **Business yearly** plan. Start to build future-ready tech teams faster with Pluralsight. This is a limited-time offer, so grab it before it expires. [Get 30% Pluralsight Discount](https://devopscube.com/recommends/pluralsight-free-trial/) **Coupon**: Use Code **EARLYACCESS30**at checkout **Note:** This offer expires on November 23, 2025 ### Save 50% on All Pluralsight Plan \[Expired\] Pluralsight is offering **5o% flat discount** on its core tech, Complete, AI+, Cloud+, Data+ and Security+ subscription plans. [Get 50% Pluralsight Discount](https://devopscube.com/recommends/pluralsight-offer) **Coupon**: Use Code **NEWYEAR50**at checkout Here is what you get with a complete skills plan. 1. Access to 6500+ courses, including advanced content, niche topics, and recordings of past tech conferences 2. Hands-on content labs for practical learning and coding projects to prepare for interviews. 3. Access to AWS, GCP, Azure cloud, AI, server, and terminal sandboxes. 4. Certification exam prep for industry-leading DevOps and IT certifications 5. Hands-on content and coding projects. ### \[60% OFF\] Pluralsight Discount \[Expired\] One of the best Pluralsight offers is the **60% discount on its monthly and annual subscriptions**. It includes courses, projects, and interactive courses. Redeem it before it expires. [Redeem 60% OfF Subscription](https://devopscube.com/recommends/pluralsight-exclusive/) **Note:** This offer is for a very limited time. You will get access to, 1. Full library of 7,000+ courses 2. Hands-on content and coding projects 3. Certification exam prep for major certifications 4. Coding challenges. Ensure you enable the toggle button for the yearly option as shown below to get the 31% discount. ![Pluralsight 31% yearly discount.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-201.png) ### \[50% OFF\] Pluralsight Individual Gift Plans \[Expired\] Save 50% on 1 month, 3 months, or 1 year of individual standard, or 1 year of Individual Premium. By gifting a one-month, three-month, or one-year individual subscription to Pluralsight Skills, anyone can help friends and family advance their careers with subscriptionsstarting **as low as $14**. [Get 50% Pluralsight GIFT](https://devopscube.com/recommends/pluralsight-gift/) **Note**: This offer is valid for a limited-time only ### \[50% OFF\] Pluralsight Flash Sale (Limited Time) \[Expired\] Using the latest flash sale, get a massive discount on Pluralsight skills when you opt for an annual subscription. You will save 50% on standard and premium plans. [GET 50% SKILLS DISCOUNT](https://devopscube.com/recommends/pluralsight-promo/) ### \[60% OFF\] Pluralsight Black Friday & Cyber Monday Discount \[Expired\] As part of the Pluralsight **Black Friday and** **Cyber Monday discount** for 2022, You get a 50% discount on all Pluralsight subscriptions. It is applicable for standard and premium plans. This is the best deal ever from Pluralsight. [redeem 60% Black Friday discount](https://devopscube.com/recommends/pluralsight-promo/) **Note:** This is a very limited-time discount. Lock in the price before it expires. ![Pluralsight Black Friday & Cyber Monday Discount ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-313-1.png) ### \[50% Off\] Pluralsight Monthly Subscription \[Expired\] If you are a new user get a **flat 50% off** on Pluralsight's first-month subscription using the limited-time offer. You will get access to exams, projects, and interactive courses. [Get 50% Pluralsight Discount](https://devopscube.com/recommends/pluralsight-bogo/) **Note**: This offer is valid for new customers only ### Get One Month Free Pluralsight Discount \[Expired\] If you want to learn specific tools or technology from Pluralsight, you can buy their one-month subscription and get another month completely free. It is an exclusive **buy-one-get-one offer**. [Get One Free Month](https://devopscube.com/recommends/pluralsight-bogo/) **Note**: This is a limited-time offer ### \[40% Off \] Pluralsight Flash Sale \[Standard & Premium\] \[Expired\] Pluralsight **40% discount sale live** for its individual annual Standard and Premium subscription plans. If you are continuously learning, you definitely need a yearly subscription from Pluralsight. You could make use of the promotion to get a **40% discount** on their annual plan. [Get 40% Pluralsight Discount](https://devopscube.com/recommends/pluralsight-33/) \*A very **limited-time offer**. With this sale, you will get access to the Entire library of standard and advanced courses, exams, projects, and hands-on learning. With access to Pluralsight Skills, you can keep your skills current and see progress faster. Pluralsight will help you with the following. 1. Stay relevant with **expert-led courses** added daily 2. Benchmark and improve your skills with **Skill IQ and Role IQ** 3. Put new skills into practice with **hands-on learning experiences** 4. Get test-ready with unlimited access to **certification practice exams** 5. Access to Interactive courses and projects with the premium plan ### Pluralsight Free Week \[Expired\] Get free access to pluralsight 7,000+ expert-led video courses, 40+ interactive courses, and 20+ projects completely free for seven days. This pluralsight offer starts on October 10 and expires on October 16th. [GET FREE WEEK ACCESS](https://devopscube.com/recommends/pluralsight-free-access/) **Note**: Free access expires on October 16th ### Take Three Skill Assessment \[ Win a DJI Mavic drone\]\[Expired\] Pluralsight is running a three-day skill assessment competition. If you win, you could win a DJI Mavic drone. You can enter the competition with a free account. [Enter The Competition](undefined) ### Free Weekend Access \[Expired\] Get access to entire pluralsight courses on weekends. This offer is valid from Friday, August 13 to August 15\. You will get access to 7,000+ expert-led video courses and 40+ interactive courses completely free. The free access will expire on Sunday. [Get FREE Weekend access](https://devopscube.com/recommends/free-weekend-august/) ## ## Other Pluralsight Coupons \[Free Month to 50%\] From my personal experience, I was never able to complete any course in a month's time. There could be several reasons, starting from busy work schedules to personal commitments. If you are someone like me who needs quarterly or annual subscriptions, here are some Pluralsight offers that you can use. ## Pluralsight FAQ's Here are the frequently asked questions about Pluralsight. ### How do I get my free subscription to Pluralsight? To get free access, you have to be a technology VIP. If you are a new user, you can get a 10-day free account. Also, you can get a one-month free account if you signup for Microsoft Visual Studio Essentials. ### Is the Pluralsight subscription worth it? It depends on what you want to learn. Pluralsight focuses on professionals who want to upskill their careers or learn new technology. Before paying for the subscription, signup for the 10-day free trial and check for yourself if it is meeting your requirements. ### What are the best courses on Pluralsight? Most of the courses on Pluralsight are focused on IT professionals. Cloud computing, DevOps, and programming come under the best course category for Pluralsight. ### Does Pluralsight offer free coupons? Pluralsight does not offer any free coupons for the subscription. You will get discounts on the standard plans. The discounts could range from a free month subscription to one year of free access for technology VIPs. ### Is Pluralsight still free? The Pluralsight subscription is not free. However, you can make use of [five free courses](https://devopscube.com/recommends/pluralsight-free-week/) offered by Pluralsight every month. ### How to get a Pluralsight Discount? The best Pluralsight discounts are available during Black Friday and Cyber Monday sales. The second-best discount you can get is occasional flash sales that offer a 33% discount on premium yearly subscriptions. Usually, you can get a 31% discount on annual subscriptions. If you want to access Pluralsight for a couple of months, then the "buy one get one" offer is the best-discounted option. ### Does Pluralsight offer hands-on labs? Yes. Pluralsight Labs platform offers hands-on project-based live scenarios. ### Is Pluralsight better than Udemy? Both Pluralsight & Udemy offer high-quality courses. The difference is in the subscription model. On Udemy, you can purchase individual courses. However, in Pluralsight, you need to pay a monthly/yearly subscription fee, where you can access all the Pluralsight courses. ### Is Pluralsight good for learning coding? Pluralsight is one of the [best websites to learn coding](https://devopscube.com/top-websites-to-learn-programming-online/). It has an extensive library of programming courses focused on beginner to expert-level users. ### Pluralsight Latest Updates Pluralsight launched [Tour de Tech](https://www.pluralsight.com/tour-de-tech?ref=devopscube.com), a three-weeks tech program to speed up IT skills. This program has stages of challenges with big prizes. Pluralsight acquired [A cloud guru](https://acloudguru.com/?ref=devopscube.com), a cloud learning portal. You can read more about [this here](https://www.pluralsight.com/ps-and-acg?ref=devopscube.com). ## Conclusion Pluralsight is definitely a great platform for learning IT-related skills. You can make use of the **latest Pluralsight discounts** to get access to the platform. With hands-on labs, you can work on real-world projects to gain experience right from the browser-based labs. Also, with a Pluralsight free monthly and premium weekly free access, you can get access to premium Pluralsight courses without spending any money. Also, if you are a developer and want to improve your programming and interview skills, try [educative.io](https://devopscube.com/recommends/educative-trial/). Also, you can save 80% with the [educative.io coupon](https://devopscube.com/educativeio-coupon/) ### KodeKloud Coupons and Promotions for 2026 URL: https://devopscube.com/kodekloud-coupons/ Last updated: 2026-10-16T04:09:38.000Z In this post, I have added the **latest KodeKloud coupons** and promotions to get discounts on the KodeKloud subscription. I have also added some free courses offered by **KodeKloud**, which are updated for October, 2026. To help the DevOps community, we update all the KodeKloud promotions through notifications we get from official KodeKloud communications. If you want to learn [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/)\-related tools and technologies, KodeKloud is one of the best platforms. They primarily offer top-notch courses for containers and [Kubernetes certification ](https://devopscube.com/kubernetes-certification-coupon/)preparation. Additionally, if you are someone who is looking to level up your knowledge in [DevOps Tooling](https://devopscube.com/best-devops-tools/), KodeKloud has a variety of courses and an online playground to help you with that. If you want to know more about KodeKloud, you can check out the [KodeKloud review](https://devopscube.com/kodekloud-review/), where we have covered all the KodeKloud features in detail. ## KodeKloud Coupons and Promotions (Oct 2026) Let's take a look at the current KodeKloud promo codes for its monthly and annual subscriptions. ### \[21% OFF\] on KodeKloud Standard and Pro Subscriptions Get a 21% exclusive discount on KodeKloud Standard and a 20% discount on Pro Subscriptions when you choose the annual plans. [Get upto 21% Discount ](https://devopscube.com/recommends/kodekloud-pricing/) **Note:** This is a limited time offer. 💡 ****Important Note:** If you are preparing CKA from Kodekloud and looking for CKA or other Kubernetes certification coupon, check the latest [CKA coupon](https://devopscube.ghost.io/linux-foundation-coupon/?ref=devopscube.com) code page. With a Pro subscription, you will get access to the following 1. **100+ Courses** covering DevOps, Kubernetes, Cloud, and more, led by industry experts. 2. **880+ Labs** for hands-on DevOps training. 3. **AI-powered Labs:** KodeKloud now offers AI-powered playgrounds. 4. **KodeKloud Engineer 2.0** is a platform where you can work on real project tasks and systems to build hands-on expertise. With KodeKloud AI Subscription, you will get the following. 1. All of the Standard features & Pro Features 2. 60+ DevOps Playgrounds 3. 3 Cloud Playgrounds 4. KodeKloud Engineer Pro 5. AI-Assisted Labs 6. Personalized AI Tutor 7. Multilingual AI ### Save Upto 20% OFF on KodeKloud AI Annual Plan KodeKloud is offering a flat **20% discount** on its AI annual Plan. This plan is best for professionals who prefer personalized AI guidance and practice to level up faster. [Get 20% Discount ](https://devopscube.com/recommends/kodekloud-pricing/) ### 10% Additional Discount For DevOpsCube readers, KodeKloud has offered an additional ten percent discount on all its subscriptions. [Get an Additional 10% Discount ](https://devopscube.com/recommends/kodekloud-pricing/) **Coupon:** Use code **KKCUBE10** at checkout. **Note:** This Coupon expires soon. ### KodeKloud Free Courses KodeKloud offers many free courses to its users in all the course categories. The following are some of the free courses you might like. 1. [Docker Training Course for the Absolute Beginner](https://kodekloud.com/courses/docker-for-the-absolute-beginner/?ref=devopscube.com) 2. [Kubernetes Challenges](https://kodekloud.com/courses/kubernetes-challenges/?ref=devopscube.com) 3. [Linux Challenges](https://kodekloud.com/courses/linux-challenges/?ref=devopscube.com) ### Save Upto 30% OFF on KodeKloud Yearly Plan \[Expired\] KodeKloud is offering up to **30% OFF** on all its annual plans as part of its 1 million+ lab users celebration sale. This is the highest discount available right now. [Get 30% Discount Now ](https://devopscube.com/recommends/kodekloud-pricing/) ### \[Up to 50% OFF\] KodeKloud Autumn of Learning Sale (Expired) As part of the Autumn of Learning Sale, KodeKloud is offering upto **50% off**. The following discounts are available as part of the sale. - **Standard Annual Plan:** 21% OFF - **Pro Annual Plan:** 45% OFF - **AI Annual Plan:** 50% OFF [Get Discount Now ](https://devopscube.com/recommends/kodekloud-pricing/) **Validity:** This offers ends on September 30, 2026 Also, note that you don't need a coupon code to claim these offers. The discount will be automatically applied at checkout. ⚠️ ****Note:** These offers are available only on annual plans, not monthly plans. ### \[50% OFF\] on KodeKloud's Skill-Tember Sale \[Expired\] This skill-tember sale will get you 50% OFF on its AI plan, and 45% OFF on pro plan. This offers apply only to annual plans. This is a limited-time offer, so grab it soon before it expires. [Get 50% Discount ](https://devopscube.com/recommends/kodekloud-pricing/) ### 30% Discount on KodeKloud Business \[Expired\] Get a 35% discount on the Kodekloud Business plan. This plan is for teams that need user rotation. [Get 35% Business plan Discount ](https://devopscube.com/recommends/kodekloud-pricing/) Here is what you get with a Business plan 1. Enterprise Dashboard 2. Team dedicated course on Enhancing Soft Skills for DevOps Engineers. 3. Exclusive Technical Workshops on AI development within DevOps. 4. 1x User License Rotation 5. Dedicated Support for Business 6. Centralized Billing 7. SSO SAML Integration functionality for teams. ### \[50% OFF\] KodeKloud End of Summer Sale \[Expired\] KodeKloud is currently undergoing its end-of-summer sale, where you can get up to **50% OFF**. This offer applies to its Standard, Pro, and Annual plans. [Get End of Summar Sale Discount Now ](https://devopscube.com/recommends/kodekloud-pricing/) **Validity:** This offer ends on 31st August 2026. Here are the discounts that KodeKloud is offering for each plan. 1. Standard Annual Plan - 21% OFF 2. Pro Annual Plan - 45% OFF 3. AI Annual Plan - 50% OFF ⚠️ ****Note:** The discounts will be applied automatically at checkout and is available only on annual plans. ### \[50% OFF\] KodeKloud Kode Your Future Sale \[Expired\] Get upto 50% off on Kodekloud subscriptions. It is a limited-time sale. [Get 50% Discount ](https://tidd.ly/3YXTyO3?ref=devopscube.com) With the Kodekloud AI subscription, you will get, 1. All of the Standard features 2. All PRO Courses 3. 60+ DevOps Playgrounds 4. Cloud Playgrounds 5. KodeKloud Engineer Pro 6. AI Assisted Labs 7. Personalized AI Tutor 8. Multilingual AI ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-78.png) ### \[50% OFF\] on KodeKloud Cyber Monday Sale 2025 \[Expired\] KodeKoud’s Cyber Monday 2025 sale is now live with discounts of up to **50% OFF**. You can get 21% off on the Standard plan, 45% off on the Pro plan, 50% off on the AI plan, and 30% off on the Business plan. [Get 50% KodeKloud Discount ](https://devopscube.com/recommends/kodekloud-black-friday/) **Validity:** This offer expires on December 06, 2025\. So grab it soon! ![KodeKloud Cyber Monday Sale](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-3.png) ### 50% OFF\] KodeKloud Early Black Friday Sale \[Expired\] As part of KodeKloud's early Black Friday Deal, get upto 50% on its KodeKloud subscriptions. You will get 40% off on monthly, 45% off on KodeKloud Pro, **50% off on KodeKloud AI,** and 30% off on KodeKloud for business. It is a very limited-time deal. So lockin the price before it expires. [Get 50% KodeKloud Discount ](https://devopscube.com/recommends/kodekloud-black-friday/) **Note:** This offer expires soon! So lockin the discount. ![KodeKloud Black Friday Discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-78.png) ### 45% OFF KodeKloud Holiday Sale \[Expired\] Using this holiday sale, you can get a **45% discount on the KodeKloud** standard and Pro subscriptions. If you are a continuous learner, the annual subscription would be ideal for you. [Get 45% PRO Plan Discount ](https://devopscube.com/recommends/kodekloud-pricing/) **Coupon:** Use code **KKCUBE10** to get an extra 10% discount at checkout. ### \[45% OFF\] Kodekloud Skillful Spring Sale \[Expired\] As part of **Skillful Spring Sale** for April, Kodekloud is offering a staggering 45% discount on its standard and **45% discount** on its pro plans. [Get 45% Discount ](https://devopscube.com/recommends/kodekloud-pricing/) **Note:** This exclusive offer is valid only for a limited time in April ### KodeKloud Free Week (Expired) Get free access to the entire Kodekloud for a week. This is a very limited-time offer. [Get Free Acess Now ](https://devopscube.com/recommends/free-week) **Note:**The free access expires on Sep 20\. Hurry up! With this free access, you will get acsess to the following AI paths for DevOps Engineers 1. Prompt Engineering for DevOps 2. RAG - Your Team's AI Knowledge Base 3. MCP - Universal Tool Integration 4. Specialized AI Agents 5. Complete AI Operations Platform (Capstone Project) ## How to Apply KodeKloud Coupon Once you have the promo code, choose the required subscription and proceed to checkout. On the checkout page, you will see an option that says "**Have a coupon? Click here to enter your code.**" Enter your coupon code and verify the discount percentage in the final billing amount. The following GIF image shows the entire process of redeeming the discount coupon. ![Kodekloud coupon redemption ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kodekloud-1.gif) ## Maximizing Savings with KodeKloud Promotions Here aer some tips for maximum savings. To maximize your savings on KodeKloud subscriptions, take advantage of the occasional promotions offered by KodeKloud. Simply sign up for a free account with KodeKloud, and you will receive an email whenever a promotional offer is available. You can also use the exclusive KodeKloud coupon code from DevOpsCube along with the promotional offer to get even more savings on your KodeKloud subscription. Here is a video where we go through the KodeKloud promotional offer and discounts. ## KodeKloud Plans & Features A standard KodeKloud subscription allows you to access: 1. Over 50+ premium courses 2. 400+ hands-on labs A KodeKloud PRO subscription allows you to access: 1. Over 100+ premium courses 2. PRO-access-only master courses 3. 400+ hands-on labs 4. AI-Powered Playgrounds. KodeKloud Playgrounds are blank, clean environments designed for you to tinker with, and each playground can be extended, giving you all the time you need to test solutions. These include: 1. Cloud environments like AWS, Azure, or GCP. 2. Other DevOps sandboxed environments, such as a Docker server, a Kubernetes cluster, and an Istio setup. Also, it offers the following role-based learning paths for all DevOps and cloud related Job roles. 1. System Administrator 2. Kubernetes Administrator 3. Site Reliability Engineer 4. Kubernetes Developer 5. [DevOps Engineer](https://devopscube.com/become-devops-engineer/) 6. Platform Engineer 7. Cloud Engineer In 2024, Kodekloud added many courses reaching the 100-course mark, which is over 5000+ hrs of video content. Check out the following video that shows all the key features added to the platform. ## KodeKloud Discount FAQ's The following are the frequently asked questions about KodeKloud discount ### What is the current KodeKloud discount? The current veified discount for KodeKloud is falt 50% discount on its plans. Use this exclusive [promo link](https://devopscube.com/recommends/kodekloud-pricing/) to avail the discount. ## Conclusion If you are a [DevOps Engineer](https://devopscube.com/become-devops-engineer/) who wants to learn all the latest DevOps Tools, KodeKloud is definitely a great option. You can start with KodeKloud's free courses, and if you like the way the course content is structured, you can start with the standard subscription and explore all the premium courses. If you are someone who likes to read rather than watch videos, you could try the Educative platform. It's all text-based content. Check the[ eductative.io coupon](https://devopscube.com/educativeio-coupon/) page to get up to 40% discount. ### Udacity Coupons 2026: Save Big On Nanodegree Programs URL: https://devopscube.com/udacity-coupon-code/ Last updated: 2026-10-20T06:08:50.000Z For all developers, [DevOps engineers](https://devopscube.com/become-devops-engineer/), and the IT community, I have curated a list of the latest **Udacity coupons**, discount codes, and scholarships to save money on all the Udacity nanodegree programs (Up to 50% Savings on Nanodegrees). Also, read the [detailed Udacity review](https://devopscube.com/udacity-review-nanodegree/) to learn more about the Nanodegree programs & scholarships. ## Udacity Coupons for October 2026 I have collected all the exclusive Udacity coupons and promo codes. All Nanodegree coupons will be **updated monthly with special promotional offers** from Udacity. We have updated the **Udacity deals and scholarship programs for 2026\.** Let's look at the latest best offers from Udacity. ## \[Up to 50%\] Udacity Personalized Discount Claim your **Personalized Discount** and start learning the skills you need to land a $100K+ career! This discount applies to Udacity's monthly and annual plans. Personalized discounts range from 2% up to 50% based on your eligibility. [Claim Your Personalized Discount ](https://devopscube.com/recommends/udacity-promo/) **⌛ It is a Limited time Personalized deal!** Here is what you get with Udacity plans 1. Unlimited access to our learning catalog 2. Udacity catalog has over **370 projects** 3. Always-on learning assistant 4. Personalized project reviews 5. Certifications 6. Access to the learner community To unlock the **Udacity personalized discount** offer, the user needs to answer two questions and the **discount code** will be generated in real-time. Use the generated code in the checkout to redeem the discount. If you don't find the discount page, you can use the following link to access the personalized discount form. ![Udacity Personalized Discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-67-3.png) [Apply for PERSONAL DISCOUNT ](https://devopscube.com/recommends/udacity-personalized-discount/) The discount applies to each month of the month-to-month Udacity subscription OR the purchase of an upfront bundle. ⌛ The offer expires soon. So lock in the price before it expires. ## Get 20% Discount on Annual Plan Udacity is offering a flat **20% discount** on its annual plan. If you want a one year subscription, then go with this plan. [GET 20% Discount ](https://devopscube.com/recommends/udacity-promo/) **Note:** This offers expires soon. ## \[Up to 10%\] Udacity Diwali sale Udacity is offering a **10% discount** on all its products for a limited time. This is the best time to enroll in Udacity unlimited courses. [Get 10% Discount Now](https://devopscube.com/recommends/udacity-promo/) **Coupon:** Use code **DIWALI2026** at checkout. **Note:** This offer expires on November 11th, 2026 ## Free AI Courses (Limited Time) Free for a limited time this month, you can discover AI with the following Udacity one hour courses that cover fundamental concepts and issues surrounding artificial intelligence. 1. [Gemini API by Google](https://www.udacity.com/course/gemini-API-by-google--cd13416?ref=devopscube.com) 2. [Discovering Ethical AI](https://www.udacity.com/course/discovering-ethical-AI--cd13462?ref=devopscube.com) 3. [Discovering Artificial Intelligence and Machine Learning](https://www.udacity.com/course/discovering-ai-ml--cd2019?ref=devopscube.com) 4. [Discovering Data Science](https://www.udacity.com/course/discovering-data-science--cd2018?ref=devopscube.com) 5. [Discovering Digital Transformation](https://www.udacity.com/course/discovering-digital-transformation--cd2704?ref=devopscube.com) ## Google Cloud swag offer Udacity’s catalog has over **20 free courses** covering Google Cloud topics in Generative AI, Google Workspaces, and Google Cloud Digital Leader Training. If you can complete all the courses in one of those collections, you may be eligible to **redeem some free Google swag**. [Get Google Cloud swags ](https://devopscube.com/recommends/udacity-gcp-swags/) **Note:** These courses, available at Udacity for free, teach the fundamental skills you need to harness the power of AI on Google Cloud. To get the free swags you need to complete all the Google Generative AI courses offered by Udacity. You also stand to win access to Google Cloud Digital Leader Training courses. ## \[48% Off\] Udacity's Flash Sale (Expired) Learn the skills you need to get a promotion this year with 48% off all programs at Udacity with this flash sale. This sale is the best chance to **save on Udacity Nanodegree programs,** and take the next step toward building in-demand tech and AI skills. This is a limited-time offer and expires soon. [Redeem 48% Discount ](https://devopscube.com/recommends/udacity/) **Coupon:** Use code **SEPT48** at checkout **Validity:** This offers expires on September 24, 2026. ## \[50% Off\] Udacity Back to School Sale \[Expired\] Udacity is offering **50% OFF** on all its courses. This offer is valid for a monthly and a 4-month subscription plan. This is the cost-effective way to develop your skills in your profession. [Get 50% Discount on Udacity Courses](https://www.udacity.com/?ref=devopscube.com) **Coupon:** Use code **BTS50** at checkout. **Validity:** This offer expires on August 24, 2026 💰 ****Note:** In some regions, the above promo code may not work. If that happens, use ****BTS10** at checkout. This offer includes, - Unlimited access to all the courses. - Get access to hands-on project and you will get expert feedback. - Get access to personalized interview preparation and career coaching. ## \[Up to 60%\] Udacity Subscriptions for Memorial Day Sale (Expired) Get a flat **60% discount** on Udacity's Memorial Day Sale and get unlimited courses to courses that can help upgrade your skills. Grab this offer soon before it expires. [Get 60% Discount Now](https://devopscube.com/recommends/udacity-promo/) **Coupon:** Use code **BIGSALE** at checkout. **Validity:** This offer expires on May 29, 2026 This sale includes, - Unlimited access to top courses - Hands-on project - Personalized career coaching, - Interview preparation, and more This full-price market offer is available for: USD, EUR, CAD, BRL, CHF, EGP, GBP, JPY, KRW, MAD, NZD, QAR, SAR, SGD, MXN, COP, ILS, THB, TWD Users in new pricing markets such as INR, AED, AUD, HKD, and ZAR can also get **15% OFF.** [Get 15% Discount Now](https://devopscube.com/recommends/udacity-promo/) **Coupon:** Use code **LOWESTPRICE** at checkout. ## \[Up to 50%\] Udacity 100-Hour Promo \[Expired\] Udacity’s **100-Hour Promo Sale** is live. You can get up to 50% off on all-access, bundle, and standalone subscriptions until the end of the month. If you are planning to upskill with Udacity, this is a great time to get started. [Claim 50% Discount Now](https://devopscube.com/recommends/udacity-promo/) **Coupon:** Use code **100HOURS** at checkout. **Note:** This offers expires on April 10, 2026. ## 50% Discount on 4 Months Plan \[Expired\] When you choose the Udacity subscription for a 4 months plan, you will get a flat 50% discount. If you are choosing a specific career path, you only need 4 months to finish the program. [GET 50% Discount ](https://devopscube.com/recommends/udacity-promo/) **Note:** This flat discount is only available for a limited time. ## \[100% OFF\] Discovering Quantum Computing \[Expired\] Get ahead of the next big trend with our Discovering Quantum Computing course, **free for the next 30 days**. You will learn how quantum technology is being applied in various industries, from finance to pharmaceuticals. [Get Free Course ](https://www.udacity.com/course/discovering-quantum-computing--cd13463?ref=devopscube.com) **Note:** This offer expires on July 31st ## \[55% OFF\] Udacity Black Friday & Cyber Monday Discount (Expired) The biggest Udacity Black Friday and Cyber Monday sale for 2025 is live now. You will get a flat **55% discount** on Udacity subscriptions. It is a limited-time offer. If you are planning to use Udacity nanodegree programs, lock in this offer before it expires. This offer is valid for a monthly and a 4-month subscription. [Get Udacity Black Friday Discount ](https://devopscube.com/recommends/udacity-plans/) **Coupon:** Use code **BLACKFRIDAY55** at checkout. **Validity:** The Black Friday offer Ending Today! Hurry Up ⌛ ## \[48% Off\] Udactiy 48 Hours Flash Promo \[Expired\] Udacity is offering **48% discount** on its monthly and annual subscriptions. This discount is available only for two days, so grab it now. [GET 48% Discount ](https://devopscube.com/recommends/udacity-promo/) **Coupon:** Use code **48HRS** at checkout. **Note:** This offers expires on April, 23, 2026 ## \[40% OFF\] Udacity Prime Day Sale \[Expired\] Get a 40% discount on Udacity Individual and Annual plans using the Prime Day sale. [Redeem 40% Discount ](https://devopscube.com/recommends/udacity-plans/) **Coupon**: Use code **PRIMESKILLS** at checkout. Get an extra 20% discount on Annual Plans. **⌛ This Prime Day Sale expires on October 12th!** ![Udacity 40% Discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-54-5.png) ## \[75% OFF\] Udacity Diwali Discount \[Expired\] As part of the Diwali promotion, Udacity is offering a staggering 75% discount on its month-month and 4-month plans. With the 4-month plan, you get an extra 15% discount. [Get 75% diwali DIscount ](https://devopscube.com/recommends/udacity-promo/) **⌛ Hurry Up! This deal expires in a few days** If the coupon is not applied automatically, use code **DIWALI75** at checkout. ## \[40% OFF\] Udacity Holiday Discount As part of Udacity Holiday discount sale, **get a flat 40% discount** on all the Udacity subscription You will get access to catalog of hundreds of courses in AI, Data Science, Product Management and more. This is a very limited time sale. Also when you choose four months subscription, you will get extra 15% discount. [GET 40% discount now ](https://devopscube.com/recommends/udacity-promo/) **Coupon:** Use code **HOLIDAY40** at checkout. **⌛ Hurry Up! This offer expires soon.** ## Udacity AWS AI & ML Scholarship Program If you are interested in an AI/ML career, you can apply for the Udacity AWS scholarship. You should be over 16 years old to apply for this scholarship. 2,000 students are eligible for this scholarship. [Apply for AWS Scholarship ](https://www.udacity.com/scholarships/aws-ai-ml-scholarship-program?ref=devopscube.com) The following image shows the timeline of the scholarship. ![Udacity AWS AI/ML Scholarship](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-2-14.png) ## \[40% OFF\] Udacity May Discount \[Expired\] Get a 40% discount on Udacity subscriptions as part of the May sale. This discount applies to the entire Udacity catalogue. Hurry up and make use of this limited time discount. [Redeem 40% Discount ](https://devopscube.com/recommends/udacity/) **Coupon**: Use code **MAY40** at checkout. ## Udacity and OneTen Scholarship Opportunity With this Scholarship program, OneTen, the Blacks In Technology Foundation, and Udacity are planning to offer 2,000 fully-funded **scholarships** for the African-American community without a four-year degree. Applicants will get to choose between four paths, Business Analytics, Front-End Web Development, Digital Marketing, or Predictive Analytics, and upon graduation, will have the skills needed to kick off their career in their desired role. Applications close on April 6th. [Apply Now ](https://www.udacity.com/scholarships/oneten-bit-scholarship?ref=devopscube.com) ## New Financial Support Discounts Udacity wants everyone to have the same opportunity to increase their earning potential by learning the latest in-demand tech skills. So it offers discounts that are tailored to each user. They just two questions and then calculate your savings. [Get support Discount ](https://devopscube.com/recommends/udacity/) ## **Udacity Free Access** Udacity is offering free nanodegree access for 30 days. This offer is not valid in the following countries: India, Brazil, Bahrain, Egypt, Jordan, Kuwait, Morocco, Oman, Qatar, and Saudi Arabia. We have organized all the free courses under different categories. Check out the [Udacity Free Courses](https://devopscube.com/udacity-free-courses/) list. Also, you can check for free Udacity courses which are available in the portal. [Check Udacity Free Courses ](https://devopscube.com/recommends/udacity-free-courses/) > **Note:** Coursera also offers 2500+ free courses. Check out the [Coursera discount](https://devopscube.com/coursera-plus-discount/) page to know more. ## Udacity Free Courses Apart from Udacity nano degree programs, you can get more than 90 courses from Udacity completely free. Courses range from career development to IT and software development courses. [Check Udacity free courses ](https://devopscube.com/recommends/udacity-free-courses/) ## Buy One, Gift One FREE Nanodegree program \[Expired\] When you purchase a multi-month subscription to any Udacity Nanodegree program, you will receive a promotional code for **multi-month access** to another Nanodegree program for completely free. [GET UDACITY Bogo Discount ](https://devopscube.com/recommends/udacity-bogo/) **Note**: To receive the BOGO discount coupon, when enrolling, select the “pay upfront” option for multi-month access to the Nanodegree program, and you will receive a code via email between December 13, 2021, and December 23, 2021, containing your Udacity free coupon code. ## \[70% Off\] Udacity Summer Sale \[Expired\] Udacity is offering an exclusive **70% OFF promotion** on bundle subscriptions. In addition to the **15% discount for upfront payment**, you will get an **extra 70% off** to get the lowest price on any program! \*Note that this offer does not apply to monthly subscriptions [Get 70% Discount now ](https://devopscube.com/recommends/udacity-exclusive-promo/) **Coupon**: Use code **SUMMERSAVINGS22** at checkout **Note**: Discount gets applied automatically on the checkout page. You will get a 15% prepaid discount + a 70% sale discount. That **85% savings on nanodegree**. Don't miss out on this offer. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-20-11.png) ## 35% Off Udacity Bundle Discount \[Expired\] Get a 35% discount on all Udacity nanodegree programs using this exclusive promo code. If you opt for the prepaid option, you will get an **additional 15% discount**. Total **50% savings** (15% Pre-paid Discount + 35% Coupon Discount) [GET 35% + 15% DISCOUNT ](https://devopscube.com/recommends/udacity-35/) **Coupon**: Use code **DKFOI829D** at checkout **Note**: This offer expires soon. ![35% Udacity coupon plus additional 15% discount.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-6-8.png) ## \[75% OFF\] Udacity Nanodegree Coupon Code \[Expired\] With the Udacity coupon code, you can get a flat **75% discount on Udacity nanodegree programs**. This is the current best deal from Udacity. We will update the offer once it is available. While paying upfront you can save an extra 10%. ie, with **upfront payment, the discount is 85%**. [Redeem 75% Discount ](https://devopscube.com/recommends/udacity-nanodegrees/) Coupon: Use code **BESTDEAL75** at checkout ****Note:** This discount is available only for a limited time. Along with the discount code, you will get an additional 10% base discount on all Nano Degree Programs If you want more discounts or financial assistance, you can use Udacity's financial support program. ## \[70% OFF\] Udacity Holiday Season Discount \[Expired\] Get a 70% Udacity sitewide discount for the Holiday season promotion. This offer is **applicable for all the upfront payments** of nanodegree programs. Additionally, there is an additional 15% discount on upfront payments. That is an **85% discount** and is the best discount you can get until the next holiday promotion. [REDEEM 70% UDACITY DISCOUNT ](https://devopscube.com/recommends/udacity/) ## \[40% OFF\] Udacity Valentine’s day Sale \[Expired\] Get a 40% discount on Udacity Nanodegree plans as part of the Valentines day sale. [Redeem 40% Discount ](https://devopscube.com/recommends/udacity/) **Coupon**: Use code **FEB40** at checkout. You will get the following. 1. Hands-on projects that deliver real world outcomes 2. Personalized feedback from expert mentors 3. Content co-developed with industry leaders and taught by subject matter experts ## \[40% OFF\] Udacity Single Nanodegree Programs \[Expired\] Get flat 40% discount on Udacity single Nanodegree programs using this exclusive coupon code. [Redeem 40% Discount ](https://devopscube.com/recommends/udacity/) **Coupon:** Use code **PAYONCE** at checkout. ⌛ This Sale ends Soon ## \[50% Off\] Udacity Memorial Day Sale \[Expired\] As part of Memorial Day, Udacity is offering 50% OFF on subscriptions. [Get 50% Discount Now ](https://devopscube.com/recommends/udacity-personalized-discount/) **Coupon:** Use code **MEMORIAL50** at checkout. ## \[45% OFF\] Udacity Job-Ready AI & Tech Skills Sale \[Expired\] Udacity is currently running a AI job ready and tech skills sale. This sale can help you access AI courses that in-demand in the current IT market. So make use of this sale to get skilled in AI. [Get 45% Discount Now ](https://devopscube.com/recommends/udacity-personalized-discount/) ## \[40% OFF\] Udacity's Agentic AI Sale \[Expired\] Get a 40% discount on Udacity subscriptions as part of an exclusive Agentic AI nanodegree launch sale. It is a limited time sale to learn AI, Data and more. [Redeem 40% Discount ](https://devopscube.com/recommends/udacity/) **Coupon:** Use code **SALE40** at checkout. **⌛Hurry Up! This sale expires soon** ## \[50%\] Udacity Flash Sale (Expired) As part of the extended Udacity Labor day sale, Udacity subscriptions will be 50% OFF for All Access, Bundle, and Standalone subscriptions. [Get 50% OFF Udacity Discount ](https://devopscube.com/recommends/udacity-plans/) **Coupon**: Use Code **TOPSKILLS** at checkout ## \[50% OFF\] Udacity Labor Day Sale (Expired) Get a **50% discount** on all nanodegree programs using the Udacity Labor Day sale. Not only nanodegree programs, but you can also get a discount on all the courses on Udacity. [Redeem 50% Discount Now ](https://www.udacity.com/catalog?promo=SEPT50&coupon=SEPT50&ref=devopscube.com) **Coupon**: Use code **SEPT50** at checkout **Validity:** This offers expires on 11th September 2026. ## Udacity Scholarship Programs Udacity AWS Machine Learning scholarship is live now. As per Udacity, the first 150 learners to complete the AWS Machine Learning Foundations course are eligible to receive an AWS DeepLens device! The first 2,500 students will receive $in 35 AWS credits to continue their hands-on experimentation with AWS DeepRacer. Udacity has 10+ Scholarship programs for students. You can browse and apply for other Scholarships from the portal. [Check All the Scholarships ](https://devopscube.com/recommends/udacity-scholarship/) 1. **Swift Tech Scholarship:** Udacity is offering a scholarship program for intermediate-level developers interested in learning DevOps. This program is intended for individuals who already have a background in Python web development, SQL, HTML, and command line. The objective is to enhance the participants' intermediate-level DevOps skills with a focus on Java application development and cloud-native principles. The program duration is 5 months. 2. [**Citi Scholarship Program**](https://www.udacity.com/scholarships/citi-scholarship-program?ref=devopscube.com)**:** Scholarships for Programming and Web Development are offered by Udacity in partnership with Citi. This program is limited to 100 scholarships for underrepresented communities. 3. Udacity has launched the [SUSE Cloud Native Foundations Scholarship Program](https://www.udacity.com/scholarships/suse-cloud-native-foundations-scholarship?ref=devopscube.com)The followinging are the available **Udacity scholarships for September 2022.** 4. OLX Boost Your Skills Scholarship Program 5. OneTen/Blacks in Technology Scholarship Program 6. Cognizant Skills Accelerator 7. AWS AI & ML Scholarship Program 8. AWS Machine Learning Engineer Scholarship Program ## How to Redeem Udacity Coupon Follow the steps to redeem the Udacity coupon. **Step 1:** Select the nanodegree program you want to enroll in. For example, Data Engineer nanodegree program. Click the "**Enroll Now**" Button. ![Udacity nanodegree discount](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/udacity-enrollement-min-1.png) **Step 2:** Select the 3 months option to get an additional 30% base discount as highlighted in the image below and click "Enroll Now". It will take you to the checkout page. ![30% Udacity coupon](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/udacity-discount-min-1.png) **Step 3:** On the checkout page, you will see an option to apply a coupon code. Use the coupon code and you will see the coupon discount plus the additional 75% discount as shown below. ![Apply Udacity coupon on checkout](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/discount-min-1.png) ## Udacity Financial Support Discount With the financial support program, you get financial assistance on nano-degree programs using a special Udacity coupon code. [Apply for Udacity Financial Support ](https://admissions.udacity.com/apply/learn%5Fwith%5Fudacity?ref=devopscube.com) You need to fill in a few details about yourself to be eligible for the Udacity financial support discount option. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/udacity-financial-min-1.png) ## Udacity Learning There is no age for learning new things. You may learn how to cycle as a toddler and learn to swim when you are much older. There is no end to learning either. You learn every single day. As you are studying in a university or working in an establishment you are not only learning through books but also through experience. Learning is one of the few constant things in life. Learning is a continuous, spontaneous process that goes on and on. There are many online institutes that help you grasp new concepts and learn new things. If you are looking forward to expanding your knowledge in the fields of data analysis, IT, engineering, and anything else similar, you can start your endeavor at Udacity. You will get attractive discounts as well by applying Udacity coupon codes. It is a place to upgrade your technology-oriented skills for a better tomorrow. Udacity encourages project based learning. They have over 370 projects in their catalouges. ## About Udacity Udacity is an e-learning platform founded in June 2011 by Sebastian Thrun, David Stevens, and Mike Sokolsky. It primarily focuses on technology skills related to information technology and software development. It's a massive platform where you can start your learning journey to build real-world projects with reviewers and technical mentors. Udacity offers most of the courses as a Nanodegree program. Using a special Udacity coupon code, you can get discounts on all the courses related to [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/). Udacity is very much like a university that gives out various kinds of courses. At Udacity you can enroll in something new as it takes you only a few months to become an expert in a new field. Udacity is a place to learn and help others to learn. You can enroll as a teacher and impart your knowledge to others. You can also take up a position as a student willing to learn something new, something fascinating. ## Key Features of Udacity Here is what you can achieve at Udacity. ### 1\. Learn IT Skills On The Go Udacity is an online hub for learning anything related to IT. You can learn how to code in different languages, how to carry out digital marketing, etc. You can learn about robotics and Artificial Intelligence from the experts at Udacity. This amazing place houses all the professional IT degrees that you can think of and takes a maximum of one year from you to make you job-ready. ### 2\. Learn from Experts Udacity has an array of experts all belonging to different aspects of IT skills. They are really great at their respective fields and they are going to be your 24x7 guides and mentors as you cut your way through the course. There is a strong base of 200+ industry experts who work in association with Udacity to build and develop their engaging courses. ### 3\. Udacity Nanodegree The best thing about taking an online course is **Udacity Nanodegree**. This is a degree that is awarded to you after the successful completion of a course. The degree is named Nanodegree as it takes anywhere between 4 to 12 months to complete a course at Udacity. You are taken through the intricacies of a subject. The syllabus and coursework at Udacity are very thorough and it gives you quite a detailed understanding of how anything works you can really benefit from a course at Udacity if you are really hard working and have a penchant for learning. Following are some of the latest nano degree programs. 1. [Site Reliability Engineer Nanodegree](https://www.udacity.com/course/site-reliability-engineer-nanodegree--nd087?ref=devopscube.com) 2. [Become a Cloud DevOps Engineer Nanodegree](https://www.udacity.com/course/cloud-dev-ops-nanodegree--nd9991?ref=devopscube.com) 3. New release: [Cloud Developer & Cloud DevOps Nanodegree program](https://www.udacity.com/course/cloud-developer-nanodegree--nd9990?ref=devopscube.com)s If you want to know more about the Nanodegree, check out the detailed [Udactity review](https://devopscube.com/udacity-review-nanodegree/) on nanodegree programs. ### 4\. Jobs for You Udacity works in collaboration with lots of industries. They even work with big names such as IBM, Nvidia, and Google. These organizations recruit students from Udacity into their firms on a regular basis. There are other smaller technology-oriented firms that work along with Udacity. Thus you can also be placed when you graduate with a nanodegree from Udacity. In fact, there is a Nanodegree Plus course offered by them which guarantees a job at the completion of a degree. If Udacity cannot provide you with a job then you will get a full refund. ### 5\. GPT-powered chatbot for Classrooms Udacity’s AI chatbot is now available in beta; it’s powered by OpenAI and designed to enhance your learning experience. If helps you with the following. 1. Summarize concepts 2. Pose deeper questions 3. Translate to another language 4. Fix errors in your code ## Latest Udacity News 1. Udacity announced new New [Blockchain Nanodegree Program](https://www.udacity.com/course/blockchain-developer--nd1310?ref=devopscube.com) 2. Udacitys newest Course, built in collaboration with AWS, equips you with foundational knowledge for AI, machine learning, and generative AI, empowering you to connect your technical expertise to responsible AI applications in the real world. You can [get started here](https://www.udacity.com/course/generative-AI-with-AWS--cd13232?ref=devopscube.com). 3. Udacity launched a new Learners community website to help learners with more support. 4. The Data Analyst Nanodegree program has been enhanced with new learning materials. 5. Currently, there are three active scholarships. 6. AWS Machine Learning Engineer Nanodegree program enrollment is open now. 7. Udacity is accepting applications for the Bertelsmann Technology Scholarship Program: Bertelsmann is funding scholarships in Azure Cloud Architecture, Business Analytics, and Machine Learning with TensorFlow. You can earn one today! Applications will be closed by November 30, 2021. 8. Stem forward with the women's virtual conference to start on September 23, 2021\. You can register for this virtual [conference here](https://www.udacity.com/women-in-stem?ref=devopscube.com) 9. Udacity and AWS collaborate to offer more courses in Machine learning. The last day for applying for the Scholarship is July 12, 2021. 10. Udacity added an AI chatbot powered by OpenAI to enhance the learning experiences for the students. ## Udacity Pricing When you log in to Udacity to learn a course, it can take you anywhere between 4 to 12 months. There are so many different courses offered by this online site. All the courses that you can avail of at Udacity are fairly priced at only Rs. 22849 per month. You can pay monthly as well. You can also opt to pay the whole course fee at once. If you do the latter, you are entitled to a 10% reduction in price. If you are working in an organization and if the new skills that you learn from Udacity help you team, you can get the subscription fees reimbursed from your organization. You can read more about [here](https://www.udacity.com/blog/2023/12/get-your-udacity-subscription-reimbursed.html?ref=devopscube.com). ## Udacity Coupon FAQs Following are the frequently asked questions about the Udacity coupon. ### How to access Udacity's nano degree courses for free? Udacity nano degree programs are not available for free. However, there are individual courses that you can get for free. Also, you could use the Udacity discount coupon to get 75% off on all the nanodegree programs. ### How To Get a 75% Udacity Flash Sale Discount? Udacity publishes deals on special occasions that offer a 75% discount on all its nanodegree programs. Check the coupon section to get the latest 75% Udacity flash sale discount coupon. Also, you can get 75% off using the [Udacity personalized discount](https://devopscube.com/recommends/udacity-personalized-discount/) program. ### Are Udacity Courses Free? Udacity has many free courses. See [Udacity free courses](https://devopscube.com/recommends/udacity-free-courses/) to know the list of available free courses. ### Does Udacity Have any Scholarship Programs? Yes. Udacity has more than 10 scholarship programs that you can apply to. There are only a limited number of approvals for the scholarship programs. See [Udacity scholarship programs](https://devopscube.com/recommends/udacity-scholarship/) to know more details. ### What is the latest Udacity Coupon? The latest Udacity coupon is **DIWALI75**. You will get a **75% flat discount** on month-to-month and an additional 15% prepaid discount on 4 months plan. So, a total of 75%+ discount on nanodegree programs. ## Conclusion Udacity is one of the best online platforms that helps you learn a lot of new things. All their nanodegree programs are focused on IT and business skills. With Udacity coupon codes you can save up to 75% on all the nanodegree programs. Moreover, the scholarship programs help you gain access to premium nanodegree programs. Also, if you are a developer who wants to learn programming and [system design](https://devopscube.com/system-design-interview-courses/), you can check out the [educative.io coupon](https://devopscube.com/educativeio-coupon/) to get a 40% discount on the entire course library. Happy learning! ### Coursera Plus Discount for 2026: Save on Courses & Specializations URL: https://devopscube.com/coursera-plus-discount/ Last updated: 2026-10-01T09:22:04.000Z In this post, I have added the **latest Coursera Plus discount** coupons and offers for 2026 to get discounts on the Coursera subscription. In addition, I have also listed all the freebies offered by Coursera. With Coursera Plus, you can learn from **350+** leading universities and companies. ## Latest Coursera Discounts (October 2026) The following is the list of the best Coursera Plus discounts. We have updated the latest official sale details for October. ## \[50% OFF\] Coursera Professional Certification Courses If you choose a 6-month duration for Coursera professional certification courses, you will get a 50% discount. For a 3-month duration, you will get a 33% discount. [Get 50% discount ](https://devopscube.com/recommends/google-professional-certificates/) If you buy a single Google Professional certificate program, it will cost you $49 per certification program. ## 7 Days Free Coursera Plus Account Coursera offers a 7-day free trial account before you pay for the Coursera Plus subscription. If you don't like the Plus subscription, you can cancel it within 7 days and you will not get charged for the Plus subscription. [Coursera free trial ](https://devopscube.com/recommends/coursera-plus/) ## Free Courses Coursera offers 2500+ Free Online courses from top universities and companies. [Try Coursera free courses ](https://devopscube.com/recommends/coursera-free-courses/) You can find free Coursera courses in the following categories. 1. Arts and Humanities 2. Business 3. Computer Science 4. Data Science 5. Health 6. Information Technology 7. Language Learning 8. Math and Logic 9. Personal Development 10. Physical Science and Engineering 11. Social Sciences If you want more free courses, you can try the [Udacity Free Courses](https://devopscube.com/udacity-free-courses/) as well. ## \[50% OFF\] Coursera for Teams\[Expired\] Get flat 50% discount on coursera plus for teams for a limited time. You can save **$199.50** USD per user for 12 months [Get coursera TEAM discount ](https://devopscube.com/recommends/coursera-teams/) **CODE:** Use code new-year-2024 at checkout Here is what you get with the discount 1. You can upskill 5 to 125 employees 2. You get unlimited access to 8000+ learning courses. 3. User Analytics and benchmarking dashboard ## \[40% OFF\] Coursera Plus Discount on Annual Subscription \[Expired\] Get a 40% discount on Coursera Plus when you opt for an annual subscription as compared to a monthly subscription. It is a total of **$300 in savings.** [Get 40% coursera discount ](https://devopscube.com/recommends/coursera-plus/) **Validity:** This Offer ends soon. **Note:** Annual Subscription Comes With a 14 days Money Back Guarantee. With Coursera plus discounted subscription, you will get, 1. Unlimited access to 10,000+ courses in AI, business, technology, and more. 2. Access to Projects, Specializations, and Professional Certificate program. 3. Get certificates for every course you finish. 4. Expert-led courses, Coursera Coach and AI-powered guide. ⚠️ ****Note:** Certain courses, Specializations, and Professional Certificate programs are excluded from the Coursera Plus program. Please visit [this page](https://www.coursera.support/s/article/360036151932-Courses-content-available-on-Coursera-Plus?ref=devopscube.com) to understand whats included in plus. ## ## 77% Off\] Coursera Plus New Year Discount \[Expired\] Coursera is offering a **50% discount** on annual Coursera Plus subscription. This means you can gain unlimited access to over 10000+ courses, including Professional Certificates from top industry leaders like Google, Meta, Microsoft, IBM, and more—**all for just $199** (regularly $399) for 12 months. [Get 50% coursera discount ](https://devopscube.com/recommends/coursera-promo/) **Validity:** This offer is valid only for a limited time. So Hurry Up! Here is what is covered in the Annual Plus Subscription 1. Unlimited certificates 2. Unlimited access to more than 10000 courses, Projects, Specializations, and Professional Certificate programs 3. Learn from **275+** leading universities and companies. 4. Projects, Specializations 5. Professional Certificates 6. Flexible learning Following are the sought after certifications you can access with this offer. 1. **Microsoft Cybersecurity:** A great starting point for individuals interested in cloud computing and seeking to build foundational skills with Microsoft’s trusted platform. 2. **Google Professional Certificates:** Perfect for those looking to break into IT support, data analytics, or project management. 3. **Meta Social Media Marketing Certificate:** Ideal for aspiring social media marketers wanting to learn from industry experts. ## \[$1 Offer\] Get Coursera Plus for $1 \[Expired\] Coursera is offering the first month of Coursera Plus Monthly for just $1\. This monthly subscription gives learners full access to over 7,000 courses, including popular Professional Certificates from Google and Meta [Get coursera $1 offer ](https://devopscube.com/recommends/coursera-special-promo/) ## \[$200 OFF\] Coursera New Year Offer 2023 \[Expired\] From December 26 - January 14, Coursera is offering **$200 USD off** (**50% Discount**) Coursera Plus Annual. This offer is only for new Coursera Plus subscribers (i.e. they must not have an active Coursera Plus subscription) [Get $200 COURSERA DISCOUNT ](https://devopscube.com/recommends/coursera-special-promo/) ## 25% OFF Coursera Plus Cyber Monday Deal \[Expired\] The regular price for Coursera Plus is $400 per year, but with the Cyber Monday offer for a limited time, you can get Coursera Plus for only $300\. That is $100 in savings. With this subscription [Get 25% Coursera Plus discount ](https://devopscube.com/recommends/coursera-cyber-monday/) With Coursera Plus, you will get 7,000+ world-class courses, hands-on projects, and job-ready certificate programs. ## Get Coursera Plus for only $1 \[Expired\] With this $1 Coursera discount, you will get access to unlimited courses for for the first month. This is a limited time offer and ends soon. [Get coursera $1 offer ](https://devopscube.com/recommends/coursera-promo/) **Note:** This is a very limited time offer. ## \[$200 OFF\] Coursera Plus annual subscription \[Expired\] Get $200 off on Coursera Plus annual subscription as part of new year sale. It means, you get unlimited access to 7,000+ courses from top companies and universities including Google, Microsoft, Meta, Yale and more for less than $1/day. [Get coursera $200 discount ](https://devopscube.com/recommends/coursera-promo/) **Note:** This discount expires very soon. ## \[$100 OFF\] Coursera Plus Flash Sale \[Expired\] Get $100 off Coursera plus subscription for a limited time. That means unlimited access to learning programs from top companies and universities including Google, Microsoft, Meta, Yale and more for less than $1/day. It is an exclusive special promotion. Dont miss out on this deal. [Get coursera PLUS discount ](https://devopscube.com/recommends/coursera-promo/) ## \[77% OFF\] Coursera Plus Offer for Indian Learners \[Expired\] For select regions in the world for purchase parity, you will **get 77% discount**. For example, In India, you can get the subscription for **INR 7499 for 12 months (regularly INR 33,568)**. [Get 77% coursera discount ](https://devopscube.com/recommends/coursera-india-promo/) With this plus subscription, **Validity:** This offer is valid for a limited time. ## How to Redeem Coursera Plus Discount? Follow the steps to redeem the discount on the Coursera Plus subscription. **Step 1:** Go to the [Coursera Plus](https://devopscube.com/recommends/coursera-cyber-monday/) subscription page with the discount. ![coursera plus discount page.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/coursera-2.png) **Step 2:** Click the **Learn and Save Today** option. It will take you to the checkout page. **Step 3:** Verify if the discount has been applied as shown in the image below. ![coursera plus discount checkout.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/coursera-plus-discount-checkout-1.png) ## Coursera Black Friday & Cyber Monday Discount 2025 Coursera Black Friday and Cyber Monday deal for 2025 is over. You will get a huge discount using this sale. We will update the deal details once it is available. ## About Coursera Plus Coursera Plus is a subscription service that offers extra benefits on top of the free Coursera courses. For example, Coursera Plus members can access graded assignments and course feedback from Coursera instructors, as well as earn Coursera Certificates of Achievement. With Coursera Plus you get **access to 7000+ courses**, Specializations, and Professional Certificates from instructors from **275+ well-reputed companies** and Universities. You can access courses from companies like Google, Facebook, etc. 💡 **"As per coursera, 77% of learners report career benefits, like landing a new job, earning a promotion, gaining applicable skills, and more*" ## Coursera Career Academy Career Academy is a resource that helps you explore various careers, such as data analyst, UX designer, machine learning engineer and more. It provides salaries, job availability and relevant credentials that Coursera offers. [Access Carreer Academy ](https://www.coursera.org/career-academy?ref=devopscube.com) ## Coursera Plus Best Courses Following are the best professional certification courses that are part of Coursera Plus. 1. [Google Data Analytics Professional Certificate](https://www.coursera.org/professional-certificates/google-data-analytics?ref=devopscube.com) 2. [Google UX Design Professional Certificate](https://www.coursera.org/professional-certificates/google-ux-design?ref=devopscube.com) 3. [Google IT Support Professional Certificate](https://www.coursera.org/professional-certificates/google-it-support?ref=devopscube.com) 4. [Google Project Management: Professional Certificate](https://www.coursera.org/professional-certificates/google-project-management?ref=devopscube.com) 5. [Google Digital Marketing & E-commerce Professional Certificate](https://www.coursera.org/professional-certificates/google-digital-marketing-ecommerce?ref=devopscube.com) 6. [Meta Front-End Developer Professional Certificate](https://www.coursera.org/professional-certificates/meta-front-end-developer??ref=devopscube.com) 7. [Meta Back-End Developer Professional Certificate](https://www.coursera.org/professional-certificates/meta-back-end-developer??ref=devopscube.com) 8. [Meta Database Engineer Professional Certificate](https://www.coursera.org/professional-certificates/meta-database-engineer??ref=devopscube.com) 9. [Meta Android Developer Professional Certificate](https://www.coursera.org/professional-certificates/meta-android-developer??ref=devopscube.com) 10. [Meta iOS Developer Professional Certificate](https://www.coursera.org/professional-certificates/meta-ios-developer??ref=devopscube.com) 11. [Meta Social Media Marketing Professional Certificate](https://www.coursera.org/professional-certificates/facebook-social-media-marketing?ref=devopscube.com) 12. [Meta Marketing Analytics Professional Certificate](https://www.coursera.org/professional-certificates/facebook-marketing-analytics??ref=devopscube.com) 13. [Generative AI with Large Language Models](https://www.coursera.org/learn/generative-ai-with-llms?ref=devopscube.com) ## Coursera Financial Aid If you can't afford Coursera specialization courses, you can try the Coursera Financial Aid program. You can find the financial aid option in the course description. For example, the following image shows the Google Cloud Machine Learning course with financial aid. ![Coursera Financial Aid option.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-83-6.png) If you click the Financial aid available option, you will get the form to apply for the aid as shown below. ![Coursera Financial aid application.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-84-7.png) ## Conclusion If you want to make the most out of your learning on Coursera, A Coursera Plus subscription is worth it. However, if you feel like the subscription is expensive, you can make use of the occasional **Coursera plus discount** offers to **save up to $200.** If you want to focus on individual technology or a skill, you can try the professional certification path, where you will **get up to a 50% discount.** Also, you can start with the free Coursera courses and then move to paid courses only if necessary. 77% of learners on Coursera who have reported career benefits including new skills, increased pay, and new job opportunities. You can find more from the coursera [2023 Learners Outcomes Report](https://u29708799.ct.sendgrid.net/ls/click?upn=u001.B8VMPMOzxR7RPOX-2BK2XdT4zGvgltoXutczRRmqk-2FMCbWKpyP9fJLgEClFYBld3c5V-2FUf9zSxPeQVgwzH1iVmvH2241Bpxc6ZjDnaMXrynaASkg2Wj8P-2F-2FUvRBy9ulaPkb5SmZfjtL7Ftfaq2fjI16g-3D-3DvgGl%5FA3nRQoop3xGTTNLdbAlLJe-2BOT-2BOrSzxxil2EVyb3o1oA2YNMRvp9MABNio4XVv-2FexyImQeHbr2WRpXRZ0zv4CXRDOl5e3ebmqoqwFqXWUW917amEH94pZxxJmQ9Os6uipiO1RCHPvBx7AKqGtFNzfa95UVvPBIIQN2qpc50PJoQxf6a1x53-2Fdguy7jwluG-2BiwX6DOPDKqmXlGa9kkahP8hkOIY2Xuze4zbMeuPtsrSOhFYhaa5-2BiecEEwBFPd5Y9ezvreg9RilHWAfwVcyuBdXMkn1l4nEguuwSwV-2Fz9MoriIHIbXMUuAEw68QmXaSxBvWsky7TiumGse58086F-2BTMVXDoJptYjwnw-2Fcye2DJP80pch7gSWiBgm2BraRSReefBQJn4-2B7lDWUByn-2BXeHBHOxQS16Qbpgs-2F90VRrhn8Lo8ci7r30eXghiY8nr5vfIA-2FzwZepdfbCtST-2B7kLdbW3NDjSBVf987MzKV8U0qBuQge8bc2wBcZK1d1FJsKatcgrw2HkTpAHl6e6BrUQvKZZC8MTBAQOpY8ir39svFqBl1DZvCtOFPHMY2uffEHMpeuFtvgi9XlSlF00Ms7JN4J4qoIjox3zv-2Fzcz5wZMlz81HTO4YI3NdOgcuYKOE7UoF8cvmKCKI9PywnoZ0obn5iG2UaVWt10n-2Bb2GAb4hF9mIlCcck-2F4zU8Ee4XEReEXsVe6GHq9gu3sZfnyMrNfArNkJ5t8IorQ29sg4zGMAbgmQY-2B7Joh3g4QzPDqSeUqGJujGcfDdhp0fkFUcqfUMO-2B9P4mDiFunf2ce9Xns4HhY6PUIJGQTWD-2F06-2BMsMLkxpjPIG8UQ-2BnVHggkSIt0Zd1KMxULgE-2F4vgwDE-2BtyoabyCBT-2FIjHygta1R-2FRUrQ7W285mfPkJN6HD9VT8l-2BCRutDR4prTpa2Qv2LsUFoWyrWToR4t1qIG2DuyiQ1GhdXk20OtY8Jdc4z41n1fV7nzM6UHeRJb65yl84r54Km4vqKOeVS4-3D&ref=devopscube.com) There is also a similar platform called [Udacity](https://devopscube.com/udacity-review-nanodegree/). You can also try Udacity Nanaodegree programs at a discount using the [Udacity Coupons](https://devopscube.com/udacity-coupon-code/). ### 8 Best Open Source LLMOps Tools URL: https://devopscube.com/open-source-llmops-tools/ Last updated: 2026-09-30T06:54:40.000Z Running LLMs in production is not just about deploying a model. It's about managing an entire technology stack. For DevOps and [MLOps engineers](https://devopscube.com/devops-to-mlops/), an open-source LLMOps stack architecture will feel similar because it builds on Kubernetes and other cloud-native platforms. However, it introduces additional challenges, including hallucination control, prompt and model management, token costs, model evaluation, latency, and AI-specific observability. So I looked at the key open-source tools that make up the LLMOps stack, what each tool does, and where it fits in the stack. I have covered everything from high-performance inference with vLLM to Kubernetes-native serving with KServe, Model routing with LiteLLM, and [observability](https://devopscube.com/what-is-observability/) and evaluation with Langfuse and Ragas. Let's get started. ## What is LLMOps? Large Language Model Operations (LLMOps) is a set of practices, tools, and workflows for building, deploying, [monitoring](https://devopscube.com/evidently-ai-on-kubernetes/), and maintaining large language model applications in production. The interesting part is that LLMOps is built on [DevOps](https://devopscube.com/become-devops-engineer/) and MLOps practices. However, LLM applications introduce additional challenges that traditional software and machine-learning workflows may not cover. These challenges include managing prompt versions, evaluating response quality, tracing LLM requests, protecting sensitive data, and monitoring token usage, latency, and costs. An LLMOps stack brings together the tools needed to manage these processes throughout the application lifecycle. The following diagram illustrates an **example LLMOps stack architecture** that combines LLM gateways, authentication, self-hosted LLM inference, and validation and evaluation tools. ![Open-source LLMOps stack architecture showing LiteLLM, KServe, vLLM, llm-d, Gateway API Inference Extension, Langfuse, Ragas, and Guardrails AI for deploying, routing, monitoring, and evaluating LLM applications.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-162.png) This architecture diagram provides context on the different layers of LLMOps and how tools fit into each layer. ## Best Open Source LLMOps Tools The Open Source LLMOps stack is a set of community-driven tools that are used to deploy, manage, monitor, and optimize Large Language Models (LLMs) in production. The following table shows the key open-source LLMOps tools. | Tool | Use Case | When to Consider It | When Not to Use It | | ------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | Guardrails AI | Validates application inputs and outputs | You need reusable content or structure checks | Existing validation meets your requirements | | LiteLLM | Provides a common gateway to managed and self-hosted models | You need shared access, routing, or usage controls with multiple teams | A direct provider integration based on your needs | | Gateway API Inference Extension | Routes to the suitable self-hosted models | When you need Gateway API capabilities with inference-aware routing | When you use managed LLMs or when basic routing is enough for your model | | llm-d | For inference-aware endpoint picking and advanced distributed serving | When you need to find and route to a suitable model based on latency, KV cache, adaptor, etc | A simpler serving deployment meets your performance targets | | KServe | Deploys and manages model servers using Kubernetes native resources | Your platform uses a consistent deployment method | You do not run model serving on Kubernetes | | vLLM | Model server that runs a model and serves inference | You want to host a supported model yourself | You use hosted model APIs only | | Langfuse | Records traces and manages prompts and evaluations | You need to inspect application behavior | Existing tooling already covers these needs | | Ragas | Evaluates application quality | You need repeatable quality tests | Your existing evaluation framework is sufficient | Now, let's have a look at them one by one. ## 1\. Guardrails AI (Guardrails & Safety) When LLM applications move to production, guardrails help prevent unsafe inputs, unwanted outputs, and unexpected model behavior. ![Guardrails AI workflow image showing a user request passing to the llm and it passes through output schema and validators in Guardrails AI framework and validates it as a flowchart](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-160.png) [Guardrails AI](https://guardrailsai.com/guardrails/docs?ref=devopscube.com) is a Python framework that provides reusable validators that check whether the LLM’s output meets specific requirements, such as privacy rules, safety policies, and valid formats. ****Best for**: Teams that need LLM outputs to follow a specific structure and want to automatically validate and correct responses rather than writing custom error-handling logic. Guardrails AI combines structured output and validation into a single framework. You can define a Pydantic or RAIL schema for the output and attach reusable validators to check whether the response meets your requirements. When validation fails, Guardrails can re-ask the model, correct the output, filter out invalid fields, or raise an error, depending on how you configure it. **Here is why organizations use Guardrails AI?** Guardrails AI solves a common problem in LLM applications: models can produce harmful, unsafe outputs that may contain sensitive information, hallucinate facts, or fail required output formats. ## 2\. LiteLLM (Model Access and Routing) [LiteLLM](https://docs.litellm.ai/docs/proxy/docker%5Fquick%5Fstart?ref=devopscube.com) acts as a centralized AI gateway for LLM traffic. It provides features such as virtual API keys and model routing across different providers, making it much easier to manage, monitor, and control AI workloads across applications. ![Architecture diagram showing LiteLLM Gateway between an application and multiple LLM providers, providing authentication, routing, load balancing, retries, fallbacks, cost tracking, and budgets, with Langfuse for observability, logs, and traces.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-163.png) ****Best for:** LiteLLM is useful for teams that need a single interface for multiple LLM providers, along with model routing, access controls, usage tracking, budgets, and fallback handling. LiteLLM can be integrated in two ways. You can integrate it into application code. The other approach in a large organization is to deploy LiteLLM as a central proxy server. One key advantage of LiteLLM is that it reduces the risk of a company becoming locked into a single technology provider. By providing an OpenAI-compatible interface for more than 100 LLMs, engineering teams can switch between supported model providers with fewer application-level changes. **Here is why organizations use LiteLLM?** As companies start using more LLMs, managing different APIs, authentication methods, usage limits, and access rules can become complicated. When deployed as a proxy, LiteLLM provides a central layer for managing model access, authentication, usage, and controls across teams. This is especially useful for larger teams working with multiple models and providers. [NVIDIA](https://x.com/NVIDIAAI/article/2070654232139833720?ref=devopscube.com) uses LiteLLM to provide engineers with a consistent way to access more than 100 AI model endpoints across cloud providers and self-hosted LLMs. ## 3\. Gateway API Inference Extension (Model-Aware Routing) The [Gateway API Inference Extension](https://gateway-api-inference-extension.sigs.k8s.io/?ref=devopscube.com) is a Kubernetes project that extends the capabilities of Gateway API to understand ML models and route traffic accordingly. Inference Gateway uses its InferencePool resource, which selects model-serving pods by label and uses the EPP pod to point to the appropriate model server pod. The suitable pod will be chosen based on latency, queue length, KV cache, and LoRA adapters. ![Gateway API Inference Extension architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-146.png) The above image is an example that uses AgentGateway as the controller, and its proxy pod acts as the Inference Gateway. When the proxy receives a request, it uses the HTTPRoute to find the InferencePool and, if configured, applies a policy. The InferencePool points to the configured EPP pod, and the proxy requests that EPP find a suitable model server. Once the proxy gets the suitable pod, it routes traffic to it. There are also other Gateways that support the Gateway API Inference Extension, such as [Istio](https://devopscube.com/istio-ingress-kubernetes-gateway-api/), NGINX Gateway Fabric, and [Envoy Gateway](https://devopscube.com/setup-envoy-gateway-api/), ****Best for:** Models running on Kubernetes that needs model aware routing instead of normal load balancing **Here is why organizations use Inference Gateway?** A regular Ingress or Gateway API routes traffic to healthy pods, but it doesn't know which cache is in use, the length of the processing queue, etc. This is where this extension adds its inference-aware routing capability to select the best model-serving pod. This helps increase the model's performance and GPU utilization. One example is how [Tesla](https://llm-d.ai/blog/production-grade-llm-inference-at-scale-kserve-llm-d-vllm?utm%5Fsource=chatgpt.com) uses a combination of Inference Gateway, llm-d, Kserve, and vLLM to implement prefix-cache-aware routing, which provides 3x more output tokens per second and a 2x reduction in time. ## 4\. LLM-d (Distributed Inference) [llm-d](https://llm-d.ai/docs?ref=devopscube.com) is an open-source, Kubernetes-native inference framework that is designed to run LLMs efficiently at production scale. llm-d does not replace inference engines such as vLLM. Instead, it adds distributed serving capabilities, which include LLM-aware request routing, autoscaling, KV-cache-aware scheduling, and prefill/decode disaggregation. The image below shows how llm-d works to help you understand it better. ![image showing llm-d finding suitable model and send traffic to it](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-166.png) ****Best for:** Organizations running LLM across mutiple model server pods where GPU utilization, KV-cache efficiency, and distributed serving performance are critical. LLM-d can separate the prefill and decode phases of LLM inference. Prefill processes the input prompt, while decode generates the output tokens. The prefill server processes the full prompt and creates the KV cache. Then the decode server uses that information to generate the response token by token. By running these phases on separate model-server instances (prefill server and decode server), LLM-d can reduce interference between them and allow each phase to scale independently, improving GPU utilization and overall inference performance. **Here is why organizations use LLM-d?** Standard Kubernetes load balancing does not account for LLM-specific metrics such as prompt length, KV cache location, GPU load, or request queues. LLM-d takes over this limitation through LLM-aware scheduling and routing. For example, it can route a request to a model server that already contains a reusable part of the prompt in its KV cache. This avoids repeating some prompt-processing work. This may sound like what Inference Gateway does. Because EPP is part of LLM-d and used in the Gateway API Inference Extension to find the suitable pod. One real-world use case is that [IBM Research and Red Ha](https://research.ibm.com/blog/running-open-models-on-h100-gpus-with-llmd?ref=devopscube.com)[t](https://research.ibm.com/blog/running-open-models-on-h100-gpus-with-llmd?ref=devopscube.com) demonstrated llm-d serving a 753B-parameter model on NVIDIA H100 GPUs to support thousands of coding agents. ## 5\. KServe (Model Serving Orchestrator) [KServe](https://kserve.github.io/website/docs/intro?ref=devopscube.com) is an open-source, Kubernetes-native controller that deploys, scales and manages machine learning models. It provides model-serving runtimes like vLLM and Triton, allowing models to run without building custom infrastructure for each tool. ![kserve architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-152.png) ****Best for:** KServe is best suited for organizations that want to deploy, scale, and manage machine learning models on [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). **Here is why organizations use KServe?** Running different AI models in production can require separate deployment configurations, scaling systems, networking rules, and monitoring setups. KServe helps overcome this complexity by providing a consistent way to deploy and manage models on Kubernetes. This reduces the need to build separate serving infrastructure for every model or framework. One real-world use case is that [Bloomberg](https://www.bloomberg.com/company/stories/the-journey-to-build-bloombergs-ml-inference-platform-using-kserve-formerly-kfserving/?ref=devopscube.com) uses KServe as its production ML Inferencing Platform. 📚 If you want to learn more about KServe, we have written a blog about [deploying a model using KServe](https://devopscube.com/deploy-ml-model-kubernetes-kserve/). ## 6\. vLLM (Model Server) [vLLM](https://docs.vllm.ai/en/latest/?ref=devopscube.com) is an open-source inference engine that runs the model and serves its endpoint. It improves serving performance through efficient KV-cache memory management with PagedAttention, along with techniques such as continuous batching and optimized model execution. ![Architecture diagram showing a vLLM model server running inside a Kubernetes serving pod, handling HTTP/gRPC requests, GPU model execution, GPU memory for model weights and KV cache, metrics, and traces.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-169.png) ****Best for:** [vLLM](https://devopscube.com/deploying-llama-with-docker-and-vllm/) is best suited for production environments that require high-throughput, multi-user LLM serving with efficient [GPU](https://devopscube.com/setup-gpu-operator-kubernetes/) memory utilization. vLLM’s PagedAttention (memory-management technique) breaks the KV cache into small, fixed-size blocks. Instead of requiring one large, contiguous block of GPU memory, these blocks can be placed in different available memory locations and tracked individually, similar to virtual memory in an operating system. This reduces wasted GPU memory and lets vLLM handle more sequences at once. As a result, the GPU is used more efficiently, and overall serving speed improves. **Here is why organizations use vLLM?** Running LLMs at scale requires companies to balance throughput, latency, infrastructure costs, and hardware utilization. [vLLM](https://devopscube.com/deploying-llama-with-docker-and-vllm/) helps to overcome these challenges by managing memory efficiently and batching incoming requests. This lets organizations serve more users while making better use of available hardware. As a result, several large organizations use vLLM in production. One real-world example is, [LinkedIn](https://www.linkedin.com/blog/engineering/ai/how-we-leveraged-vllm-to-power-our-genai-applications?ref=devopscube.com) uses vLLM to support its wide range of generative AI use cases and serve its large, active audience. ## 7\. Langfuse (Observability and Tracing) [Langfuse](https://langfuse.com/docs?ref=devopscube.com) is an open-source LLM observability framework that includes prompt management, evaluations, analytics, and everything in a single self-hosted solution. ![Langfuse observability diagram showing trace breakdown of a RAG app request for debugging, cost tracking, and prompt evaluation](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-113.png) ****Best for:** Teams that want to understand what happens inside an LLM application, including LLM calls, retrieval steps, and tool usage, while tracking latency, token usage, costs, and application quality. When an application is instrumented with Langfuse, it turns each LLM interaction into a structured trace so that you can inspect it step by step. This makes it easier to find exactly where an application went wrong or became expensive. **Here is why organizations use Langfuse?** Traditional application monitoring often focuses on latency, error rates, resource usage, and uptime. However, an LLM application can return a successful 200 response while still producing an incorrect, irrelevant, or hallucinated answer. Langfuse's current observability SDKs are built on OpenTelemetry, and Langfuse can also ingest OpenTelemetry traces directly. Here are some companies that use Langfuse in production: - [Canva](https://langfuse.com/users/canva?ref=devopscube.com) uses Langfuse to monitor and improve its AI-powered customer support system, including its multi-agent Help Assistant and OmniAgent, which handles complex, multi-step support tickets. - [Cresta](https://cresta.com/blog/observability-for-ai-agents-tracing-multi-service-llm-pipelines-with-langfuse?ref=devopscube.com) uses Langfuse to trace and debug its multi-service AI agent pipelines across development and production. ## 8\. Ragas (Evaluation and Testing) A small prompt change or model update can silently degrade your application's quality, even when everything appears to be working. LLM evaluation frameworks help catch these issues before they reach production, just like automated tests prevent buggy code from being deployed. [Ragas](https://docs.ragas.io/en/stable/?ref=devopscube.com) is an open-source evaluation framework built specifically for LLM applications. It provides strong support for RAG systems, AI agents, and custom evaluation workflows, offering metrics such as faithfulness, answer relevancy, context precision, and context recall to help you measure retrieval performance and response accuracy. ![Ragas RAG evaluation diagram showing faithfulness, relevancy, and context metrics leading to deploy or iterate decision](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-114.png) ****Best for:** Teams that need to measure the quality of their LLM and RAG applications. Ragas helps evaluate whether responses are grounded in retrieved context, relevant to the user's question, and whether the retrieval system is finding the right information or not. The main advantage is that companies can test their applications against a dataset, compare different models, prompts, and retrieval strategies, and keep track of metrics such as faithfulness and relevance. **Here is why organizations use Ragas?** Companies use Ragas to move beyond manual testing and measure how well their LLM applications actually perform. It helps teams evaluate retrieval and generation separately, run experiments, and use evaluation results to continuously improve their applications. For RAG applications, teams can measure context precision, context recall, response relevance, and faithfulness. Ragas also supports AI agent evaluations, including tool-call accuracy. These evaluations help teams compare prompts, models, retrieval configurations, and application versions before releasing changes to production. ## Conclusion LLMOps is not a replacement for MLOps and [DevOps](https://devopscube.com/become-devops-engineer/). It extends the same engineering practices to address the additional challenges of running LLM applications in production. As we learned in this guide, each open-source tool solves a different part of the problem. vLLM handles efficient model inference, KServe helps manage model serving on Kubernetes, LiteLLM provides a common gateway for accessing models, Langfuse gives you observability and tracing, and Ragas helps evaluate the quality of your application. However, you don't need all of these tools to build an LLM application. *So how to choose the right stack?* Well, it depends on whether you use managed APIs or self-hosted models, whether you run on Kubernetes, your scale, and the level of control and observability you need. The important thing is to understand **what problem each layer solves**. For DevOps and MLOps engineers, many of the underlying concepts are already familiar. Kubernetes, APIs, gateways, scaling, monitoring, security, and automation. LLMOps builds on those foundations while adding new concerns such as model quality, token usage, prompt management, evaluation, and AI-specific observability Over to you! Which open-source tools are you using or planning to use in your LLMOps stack? Let me know in the comments. ### 40 Best Websites to Learn Coding [Updated for 2026] URL: https://devopscube.com/top-websites-to-learn-programming-online/ Last updated: 2026-09-30T11:08:34.000Z This comprehensive review guide talks about the **top websites to learn Coding online**. I have covered 40 **coding websites** to get started with programming Programming is a little intimidating at the beginning but as you start practicing it, you will start loving it. By teaching yourself how to code, you will develop algorithmic thinking which gives you a competitive edge over your peers. In compiling this list of the **best Websites to Learn Coding**, I have focused on a few main factors: interactive learning, quality of content, convenience, coding best practices, developer stories, developer community discussions, quizzes, assignments, and peer-to-peer discussions Many websites teach coding through text-based tutorials while others use video. We want to use **websites that offer coding lessons** in the easiest and most convenient way. As well, once you've picked up a few basic skills, I hope these websites will help you explore your options for programming languages and tech-related jobs. ## Best Websites to Learn Coding by Category Before diving deep into individual websites, let's look at **our top choices in different programming categories.** These top choices are based on structured learning, website authority, ease of understanding, community support, quality of courses, interactive project-based learning, and programming interview preparation. | Programming Category | Top website Picks | | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | General Programming Languages | 1\. [Educative.io](https://devopscube.com/recommends/educative-trial/)2\. [Coursera](https://devopscube.com/recommends/coursera-programming/) 3\. [Udacity school of programming](https://devopscube.com/recommends/school-of-programming/)4\. [Pluralsight](https://devopscube.com/recommends/pluralsight-free-month/)5\. [EDX](https://devopscube.com/recommends/edx-programming-courses/) | | Algorithms, System Design & Coding Interviews | 1\. [Grokking the system design](https://devopscube.com/recommends/educative-system-design/)2\. [Design Gurus](https://devopscube.com/recommends/design-gurus/)3\. [ByteByteGo](https://devopscube.com/recommends/bytebytego/)4\. [Leetcode](https://leetcode.com/?ref=devopscube.com)5\. [Geeksforgeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/?ref=devopscube.com)6\. [Exponent](https://www.tryexponent.com/?ref=devopscube.com) | | Data Science & Data Engineering | 1\. [Datacamp](https://devopscube.com/recommends/datacamp-free-trial/) | | Machine Learning & Artificial Intelligence | 1\. [Udacity AI/ML Courses](https://devopscube.com/recommends/udacity-ai-ml/)2\. [Educative machine learning path](https://devopscube.com/recommends/educative-machine-learning/)3\. [Coursera AI/ML courses](https://www.coursera.org/collections/best-machine-learning-ai?ref=devopscube.com) | ## Detailed Coding Websites List Now let's look into each best websites in detail to learn to program this year. These learning platforms are not just limited to programming. You can learn other related skills as well. I have added information about programs and resources offered by each website. ### 1\. [Udemy.com](https://www.udemy.com/?ref=devopscube.com) **Best Overall Online Platform to learn different programming languages (Free or less than $10)** Udemy is one of the best portals for online courses and my #1 recommendation when it comes to learning. Udemy is the largest online course provider with a marketplace of 24 million students, **35,000 instructors, and 80,000+ courses.** You can choose the courses by category, instructor popularity, user ratings & reviews, and author profiles. ![Udemy programming courses.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-231.png) There are many coding courses from top instructors who teach you programming by building real-world applications. There are many free Udemy courses available to learn basic programming. There is no single subscription to access all the courses in the catalog. You need to individually subscribe to the required courses. However, if you have access to Udemy business, you will have access to 16,000+ courses. Also, with the Udemy Subscription option, you can get access to 8000+ top courses for a small monthly payment. **Overall, I recommend the Udemy platform as my #1 choice as you can pick and choose courses based on existing student reviews.** [TRY UDEMY FREE](https://devopscube.com/recommends/udemy-free/) ### 2\. [Educative.io](https://www.educative.io/?ref=devopscube.com) **The best platform to learn programming, design, and distributed systems, and prepare for SDE & DevOps interviews** Next on my list is **educative.io**. It's an online course platform for learning programming, distributed systems, devops, and much more. Educative offers [courses on System Design](https://devopscube.com/system-design-interview-courses/), Coding Interview Prep, and over 560+ programming courses. The platform is used by more than **1.5 million developers** worldwide. Educative.io has taken the learning experience to the next level with courses that help you crack SDI interviews. For example, their Grokking the System Design course and Grokking Modern System Design for Software Engineers & Managers have an impressive course structure that covers the design of major online apps. ![educative.io programming courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-27.png) Click to view in PDF You also get to see your progress over time with graphs! Educative courses are text-based and have challenges, browser-based interactive labs, and quizzes to help you retain the information. Get a [**free 7-day trial of educative.io**](https://devopscube.com/recommends/educative-trial/) with my link below and start learning programming with interactive tutorials. If you like the platform, you can use the [educative.io coupon](https://devopscube.com/educativeio-coupon/) to save 40% on its yearly subscription. [TRY EDUCATIVE.IO FOR FREE](https://devopscube.com/recommends/educative-trial/) ### 3\. [Coursera.com](https://devopscube.com/recommends/coursera-programming/) **A recommended platform for Programming course specialization and online IT degree programs.** Coursera has a vast collection of free programming courses. It also offers online degree programs in IT-related subjects. Coursera works with universities to offer hundreds of free online courses on a variety of subjects. You can take individual classes or entire degree programs. One more great advantage of Coursera is that you have many learning paths for **machine learning, deep learning, and artificial intelligence**. Also, Coursera partners with top universities and organizations to offer courses that are designed and taught by experts in their fields. The content is high-quality and up-to-date, and students can learn at their own pace. Coursera Plus is a paid program with unlimited access to more than 7,000 courses, Guided Projects, Specializations, and Professional Certificate programs in domains, like data science and computer science. Coursera offers discounts on its paid plans. You can check the [Coursera discount](https://devopscube.com/coursera-plus-discount/) page for the latest discounts. Also, you can get a [**free 7-day trial of Coursera plus**](https://devopscube.com/recommends/coursera-plus/) to get free access to 7000+ courses. Or use the link below to access the top free courses available from Coursera. [TRY coursera for free](https://devopscube.com/recommends/coursera-programming/) ### 4\. [Pluralsight.com](https://devopscube.com/recommends/pluralsight/) Pluralsight Skills platform is one of the best IT certification and course websites. Most of the technologies taught in Pluralsight are related to **Programming**, IT certifications, coding frameworks, Tools, DevOps, and Automation. It also releases screencasts on the latest developer productivity tools. Some of them are vagrant, chef, Docker, etc. Along with programming, you can learn about tools that you can use in your Dev environment to make the most out of your time. The best thing I like about pluralsight is the **free 5 weekly courses** on technology. Sometimes it offers full free access to the entire platform. Also, if you are a technology VIP, you can get free access to the entire platform for a year. I have listed all the available pluralsight offer information in the [latest Pluralsight discount](https://devopscube.com/pluralsight-coupons-offers/) post. **Try Pluralsight today and get 10 days of free access.** [TRY pluralsight for free](https://devopscube.com/recommends/pluralsight-free-trial/) ### 5\. [Udacit](https://devopscube.com/recommends/udacity-programming-courses/)y (School of Programming) Udacity offers [**200+ free courses**](https://devopscube.com/recommends/udacity-free-courses/) and school of programming **nanodegree programs** to help you learn programming and other cutting-edge technologies including robotics, machine learning, and artificial intelligence. Udacity offers a unique Nanodegree program that provides students with the opportunity to earn a job-ready degree. The program is designed with the help of industry experts and focuses on in-demand skills like programming, Data engineering, robotics, machine learning, and artificial intelligence. You can choose from a variety of courses to suit your needs and interests and receive feedback and support from experienced instructors. ![Udacity coding courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-21.png) Click to view in PDF The best part is, that there is no prior programming experience required to start the nanodegree program. All the programs include the following. 1. Real-world projects from industry experts 2. Technical mentor support 3. Career services 4. Flexible learning program You can also apply for the available Udacity scholarship to get the Nanodegree programs completely free. You can check out the detailed[ Udacity review](https://devopscube.com/udacity-review-nanodegree/) to learn more about Nanodegree programs. Also, Udacity offers personalized discounts for students opting for nano degree programs. You need to fill out a few details about your background, and you will get a deal based on that. Also, you can check out the [Udacity discount](https://devopscube.com/udacity-coupon-code/) page to get up to a 75% additional discount. Also, we have curated the best [Udacity Free Courses](https://devopscube.com/udacity-free-courses/) out of 200+ free courses. It includes many free coding courses. [TRY UDACITY School of Programming](https://devopscube.com/recommends/udacity-programming-courses/) ### 6\. [Datacamp](https://devopscube.com/recommends/datacamp-free/) **Datacamp is a great website for learning all programming languages and tools required for data science.** Datacamp offers 430+ courses and career tracks in ChatGPT, data science, AI, MLOps, business intelligence, and more If you are looking for a career in data, AI/ML related profiles or want to switch to the data science domain, this is a great place to start. Along with coding, you will learn to use associated data analytics tools. You can get started with **Datacamp for free.** ![Programming for data science](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-23-24.png) Click to view in HD Datacamp Key tracks: 1. Python, R, SQL 2. Data Science 3. Machine Learning 4. Deep Learning To know more, you can read the detailed [DataCamp review](https://devopscube.com/datacamp-review/) Try Datacamp with its free courses today. [TRY DATACAMP](https://devopscube.com/recommends/datacamp-33/) ### 7\. [Edx](https://devopscube.com/recommends/edx-devops-courses/) EdX is a website that offers free courses from dozens of universities and other institutions worldwide. It covers a wide variety of topics, including computer science. ![edx coding courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-241.png) Click to view in HD Some of the features of Edx include: 1. Thousands of courses are available 2. Learn from some of the best universities in the world 3. Interactive lessons with videos, exercises, and quizzes 4. Get certified for free EdX offers courses from some of the best universities in the world, including Harvard University, Massachusetts Institute of Technology, and The University of California, Berkeley. Some of the courses offered include computer science, artificial intelligence, and data science. The courses are interactive and include videos, exercises, and quizzes. You can also get certified for free. [TRY EDX](https://devopscube.com/recommends/edx-devops-courses/) ### 8\. [Linkedin Learning](https://devopscube.com/recommends/linkedin-learning-programming/) LinkedIn Learning is a resource for professionals to learn new skills and stay ahead of the curve. It offers a variety of courses in programming, business, technology, and creative skills taught by industry experts. You can access LinkedIn Learning with a LinkedIn subscription or through its free trial. Some of the courses offered on LinkedIn Learning include: 1. **Technology**: Programming, Design and development, Artificial Intelligence, Machine Learning, DevOps, SRE, cloud computing, web development, and data science 2. **Business**: marketing, finance, and project management 3. **Creative skills**: graphic design, video production, and photography LinkedIn Learning also offers exclusive courses taught by industry experts. You can access these courses with a LinkedIn subscription or through its free trial. [TRY linkedin learning](https://devopscube.com/recommends/linkedin-learning-programming/) ### 9\. [HackerRank](https://www.hackerrank.com/?ref=devopscube.com) **Hackerrank is ideal for anyone who wants to improve their coding skills.** ![learn coding using hackerRank interactive platform](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-29.png) Click to view in HD HackerRank is a site that helps you improve your coding skills through practice problems and challenges. It also offers a variety of courses in different languages, and you can earn badges to show off your coding skills. HackerRank offers a variety of practice problems and challenges to help you improve your coding skills. You can also earn badges to show off your coding skills. [TRY HACKERRANK](https://www.hackerrank.com/?ref=devopscube.com) ### 10\. [Algomonster](https://devopscube.com/recommends/algomonster/) **We recommend this platform for candidates who are preparing for coding interviews or competing in coding competitions** Algomonster is a website that helps people learn about algorithms. Algomonster provides an extensive library of resources on algorithms, including articles, tutorials, and sample code. Algomonster also offers a forum where users can ask questions and share ideas. ![Algomonster conding interview learning and practice.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-29.png) Click to view in HD It is a dedicated website for master coding interviews to gain systematic knowledge on coding patterns and be confident for technical interviews. The challenges are designed to be challenging and can help developers improve their coding skills. [TRY ALGOMONSTER](https://devopscube.com/recommends/algomonster/) ### 11\. [HackerEarth](https://www.hackerearth.com/?ref=devopscube.com) HackerEarth is a website similar to HackerRank that helps you improve your coding skills through practice problems and challenges. The coding challenges are typically more practical and focused on real-world scenarios. It offers a wider range of challenges, including coding, AI, machine learning, and data science challenges. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-2-23.png) Click to view in HD [TRY HACKERearth](https://www.hackerearth.com/?ref=devopscube.com) ### 12\. [Freecodecamp](https://www.freecodecamp.org/?ref=devopscube.com) Freecodecamp is a nonprofit organization that provides free coding courses to help people learn digital skills and land a job in the tech industry. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-3-26.png) Click to view in HD The coursework is self-paced and you can choose from a variety of topics to learn including HTML, CSS, JavaScript, React, and Node.js. You can also join one of its online communities or find a mentor to help you along your coding journey. Freecodecamp has helped thousands of people learn digital skills and land a job in the tech industry. The coursework is self-paced so you can choose from a variety of topics to learn including HTML, CSS, JavaScript, React, and Node.js. You can also join one of its online communities or find a mentor to help you along your coding journey. [TRY FREECODECAMP](https://www.freecodecamp.org/?ref=devopscube.com) ### 13\. [GeeksforGeeks](https://www.geeksforgeeks.org/?ref=devopscube.com) GeeksforGeeks is a website that provides resources for geeks of all levels. It offers tutorials, articles, and problem sets to help you improve your coding skills. You can also find solutions to various coding challenges, and participate in discussions with other geeks. [TRY GEEKFORGEEKS](https://www.geeksforgeeks.org/?ref=devopscube.com) ### 14\. [Codementor](https://www.codementor.io/?ref=devopscube.com) Codementor is a platform that connects students and professionals with experienced developers for one-on-one mentorship. ![learn coding with codementor](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-23.png) Click to view in HF You can use Codementor to learn new coding skills, find a job in the tech industry, and get help with your coding projects. You can also find mentors for specific programming languages and technologies, and join one of its online communities. Codementor has helped thousands of people learn new coding skills and land a job in the tech industry. You can use Codementor to find a mentor for specific programming languages and technologies and join one of its online communities. [TRY CODEMENTOR](https://www.codementor.io/?ref=devopscube.com) ### 15\. [W3Schools](https://www.w3schools.com/?ref=devopscube.com) W3Schools is a website that provides tutorials and reference materials for web developers. It offers tutorials for a variety of programming languages, and you can find solutions to various coding challenges. W3Schools also offers a certification program to help you prove your coding skills. [TRY W3Schools](https://www.w3schools.com/?ref=devopscube.com) ### 16\. [Leetcode](https://leetcode.com/?ref=devopscube.com) Leetcode is a website that helps people learn about algorithms and coding interview questions. ![Leetcode Coding interview learning](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-19.png) Click to view in HD Leetcode provides an extensive library of resources on algorithms, including articles, tutorials, and sample code. Leetcode also offers a forum where users can ask questions and share ideas. It currently offers learning in 14 popular coding languages. [TRY LEETCODE](https://leetcode.com/?ref=devopscube.com) ### 17\. Onemonth.com onemonth.com is a website that helps people learn about web development, programming, and technology. Onemonth.com has a different approach to teaching web development. It **offers 30 days of courses on web development.** onemonth.com provides an extensive library of web development, programming, and technology resources, including articles, tutorials, and sample code. onemonth.com also offers a forum where users can ask questions and share ideas. [TRY ONEMONTH](https://devopscube.com/recommends/onemonth/) ### 18\. [Codecademy](https://www.codecademy.com/?ref=devopscube.com) CodeAcademy is absolutely free. Code Academy is one of the best sources to learn computer programming online. It offers dozens of courses in popular languages like JavaScript, Ruby, HTML/CSS, and Python. ![CodeAcademy coding courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-17.png) Click to view in HD Codeacademy provides an extensive library of resources on programming, including articles, tutorials, and sample code. Codeacademy also offers a forum where users can ask questions and share ideas. It also has AI courses on ChatGPT, Generative AI, etc. [TRY CODECADEMY](https://devopscube.com/recommends/onemonth/) ### 19\. Skillshare Skillshare is also a course provider like Udemy. It has many courses that offer coding from scratch in different front-end and back-end technologies. If you are an experienced person you can check out their product management courses as well. Skillshare has the following key technology tracks: 1. Data Science 2. Game Design 3. Mobile Development 4. Product Management 5. Web Development You can also try the [skillshare premium free](https://skillslane.com/skillshare-free/?ref=devopscube.com) to access all courses for a month. [TRY SKILLSHARE FOR FREE](https://devopscube.com/recommends/skillshare-2free/) ### 20\. Linux Foundation The Linux Foundation is a website that helps people learn about Linux. The Linux Foundation provides an extensive library of resources on Linux, including articles, tutorials, and sample code. It has 65+ absolutely FREE courses. The Linux Foundation also offers a forum where users can ask questions and share ideas. If you are interested in Linux kernel development or cloud-native application development, the Linux Foundation is a great place to start with. It offers free cloud-native courses on Gitops, Kubernetes, Jenkins, Linux, Blockchain Development, and much more. Also, check out the [Linux Foundation coupons](https://devopscube.com/linux-foundation-coupon/) page to get the latest free offers. [TRY linux foundation](https://devopscube.com/recommends/lf-free-course-catalogue/) ### 21\. Khan Academy Khan Academy is a website that helps people learn about a variety of topics. Khan Academy provides an extensive library of resources on topics such as math, science, and history. Khan Academy also offers a forum where users can ask questions and share ideas. [TRY KHAN ACADEMY](https://www.khanacademy.org/?ref=devopscube.com) ### 22\. Springboard Springboard is a website that helps people learn about programming and data science. Springboard provides an extensive library of resources on programming and data science, including articles, tutorials, and sample code. Springboard also offers a forum where users can ask questions and share ideas. [TRY SPRINGBOARD](https://www.springboard.com/?ref=devopscube.com) ### 23\. Teamtreehouse Teamtreehouse is a great website for learning web development, design, mobile application development, etc. You can choose a track to get you equipped with a specific technology. You can start with front technologies like **HTML, CSS, and Javascript** and move all the way through back-end technologies like **Ruby, Java, PHP, Python,** etc.. Treehouse also offers various courses on version control systems like git which is must-have knowledge for developers as well as system administrators. If you want to learn mobile application development, treehouse offers various courses on **iOS Swift** development. The best part is, that once you learn the basics, you will start developing real-world applications along with the courses instead of just learning the concepts. Moreover, new content gets added every week. Treehouse currently has the following offers. We don't know how long this offer will last. 1. Treehouse Free Trail 2. 4-month subscription free with the silver annual plan. ( Save $100) 3. 4 months subscription free with a pro plan ( Save $196) [TRY TEAMTREEHOSUE](https://teamtreehouse.com/?ref=devopscube.com) ### 24\. Sololearn SoloLearn is a website that helps people learn about programming. SoloLearn provides an extensive library of resources on programming, including articles, tutorials, and sample code. SoloLearn also offers a forum where users can ask questions and share ideas. [TRY SOLOLEARN](https://www.sololearn.com/home?ref=devopscube.com) ### 25\. MIT Open Courseware The Massachusetts Institute of Technology offers a variety of courses online for free. The courses cover a wide range of topics, including mathematics, computer science, and physics. MIT also offers a forum where users can ask questions and share ideas. [TRY MIT COURSEWARE](https://ocw.mit.edu/?ref=devopscube.com) ### 26\. Theodinproject The Odin Project is a website that helps people learn about web development. The Odin Project provides an extensive library of resources on web development, including articles, tutorials, and sample code. The Odin Project also offers a forum where users can ask questions and share ideas. [TRY Theodinproject](https://www.theodinproject.com/?ref=devopscube.com) ### 27\. Google Developers Training Google Developers Training is a free resource for learning about coding and building software offered officially by Google. This site offers tutorials mainly focused on mobile app development, but it also includes courses in other languages including PHP and JavaScript. [TRY GOOGLE DEVELOPERS LEARNING](https://developers.google.com/learn?ref=devopscube.com) ### 28\. Condingbat CodingBat is a website that helps people learn about programming in Python and Java. CodingBat provides an extensive library of resources on Python and Java programming, including articles, tutorials, and sample code. CodingBat also offers a forum where users can ask questions and share ideas. [TRY CODINGBAT](https://codingbat.com/java?ref=devopscube.com) ### 29\. sqlzoo SQL by itself is a domain-specific language to maniWhen it comes to coding, SQL plays a key role when you work with data. Therefore, it is essential to know SQL concepts for programming. SQL by itself is a domain-specific language to manipulate data. sqlzoo offers free SQL tutorials where you can execute and learn SQL queries interactively on its browser-based lab itself. ![SQL interactive lab ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-21-17.png) Click to view in HD When it comes to coding & data science, SQL plays a key role when you work with data. It is essential to know SQL concepts for programming. Also, check out our [SQL for data science](https://devopscube.com/sql-for-data-science/) for a complete SQL tutorial. [TRY SQLZOO](https://sqlzoo.net/?ref=devopscube.com) ### 30\. Bytebytego System design is an integral part of software development and devops interviews. Bytebytego helps you to take your system design skills to the next level through text-based content with many illustrations. ![system design courses by bytebytego](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-31.png) Click to view in HD For example, suppose you want to understand how to scale a web application from zero to millions. In that case, ByteByteGo has a detailed explanation starting from basics to complex scaling concepts that cover the following. 1. Loadbalancer 2. Vertical & Horizontal Scaling 3. Database replication & Scaling 4. Caching considerations 5. Content Delivery Network 6. Stateful architecture & Stateless architecture 7. Message Queues 8. Logging, metrics, automation Plus, the reference materials have tons of information to improve the system design skills further. [TRY BYTEBYTEGO](https://devopscube.com/recommends/bytebytego/) ### 31\. Medium Programming Publications Medium is a great platform to learn about programming and experiences shared by Developers. Medium publications have the goldmine of information related to coding. Following are some of the best medium programming publications. 1. [Betterprogramming](https://betterprogramming.pub/?ref=devopscube.com) 2. [Towards Data Science](https://towardsdatascience.com/?ref=devopscube.com) 3. [Levelup Coding](https://levelup.gitconnected.com/?ref=devopscube.com) 4. [Netflix Tech Blog](https://netflixtechblog.com/?ref=devopscube.com) ### 32\. dev.to dev.to is a great developer community that covers various topics in different programming languages. It is a great place to learn to program and get productivity tips from fellow developers as it is a developer-focused community. You will also find great discussions on different aspects of programming. [TRY DEV.TO](https://dev.to/?ref=devopscube.com) ### 33\. ChatCPT ChatGPT needs no introduction. Even though it is not a coding website, you can use ChatGPT to learn about programming in any language. For example, if you want to learn about the Python HTTP module, all you have to ask is "Explain the Python HTTP module with an example". chatGPT will explain the module with code examples as shown below. ![learning coding with chatGPT](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-11-20.png) Click to view in HD ### 34\. [Dataquest](https://devopscube.com/recommends/dataquest-2/) DataQuest offers free online courses focused on data science. You can learn to program using Python or R, plus take several different courses focused on data visualization. Dataquest has a very cool feature that allows you to work through a project and see your progress live in the browser. Also, you can choose a goal to work towards a career path or upskill yourself. Currently, Dataquest offers the following, 1. 60+ Data science courses 2. 15+ Learning Paths 3. 30+ Guided projects 4. 100+ Practice problems 5. Certificates of completion 6. Job-ready data skills 7. Lifetime Community Membership [TRY DATaquest](https://devopscube.com/recommends/dataquest/) ### 35\. [Design Gurus](https://www.designgurus.io/?ref=devopscube.com) If you want to learn system design and prepare for coding interviews, Design Gurus is a great option. It has courses, mock interviews, an interview bootcamp, and more. [TRY DESIGN GURUS](https://devopscube.com/recommends/design-gurus/) ### 36\. [Exponent](https://www.tryexponent.com/?ref=devopscube.com) Exponent is a website dedicated to learning and interview preparation for software developers. It covers various subjects related to coding, system design, etc. The website also offers mock interviews for interview preparation. ### 37\. [DeepLearning.AI](https://www.deeplearning.ai/?ref=devopscube.com) DeepLearning.AI is an educational technology company that helps the workforce to create or build an AI future with courses and hands-on training. For example, DeepLearning has a course called [Claude Code: A Highly Agentic Coding Assistant](https://www.deeplearning.ai/short-courses/claude-code-a-highly-agentic-coding-assistant/?ref=devopscube.com) and another course named [AI Python for Beginners](https://www.deeplearning.ai/short-courses/ai-python-for-beginners/?ref=devopscube.com). These are the best examples of how coding practices are changing right now and in the future how it will be. DeepLearning is offering courses for the Globe. So, upskill with AI, if you don't want to field out. ### 38\. [Hyperskill](https://hyperskill.org/?ref=devopscube.com) Hyperskill is an online coding platform created by JetBrains, the makers of popular IDEs like IntelliJ IDEA, PyCharm, and others. Basically, it focuses on project-based programming learning, which means you not only study theory but also apply it instantly by building real-world coding projects. On this platform, you get access to a knowledge map, a personalized study plan, a strong support system, a free tier, and more. Currently, Hyperskill offers [**60 courses**](https://hyperskill.org/courses?ref=devopscube.com) with over **250 hands-on projects** to practice and strengthen your coding skills. You can learn programming languages such as Python, Java, AI & AI coding tools, Go, C++, and more. ### 39\. [Roadmap.sh](https://roadmap.sh/?ref=devopscube.com) Roadmap.sh is a learning platform that helps you learn specific topics in a structured way. It contains a collection of roadmaps to learn coding and career paths. Now, it provides not just learning paths but also lesson packs and project ideas for different domains. ### 40\. [Codewars](https://www.codewars.com/kata?ref=devopscube.com) Codewars provides practice coding platforms like HackerRank to improve your programming skills. In Codewars, the coding scenarios are called kata, and they rank the difficulties using a term called kyu. Starts from kyu 8, which is the easiest difficulty level, and it goes all the way to kyu 1, which is the hardest. ## How to Pick a Website to Learn Coding? Choosing a coding website to learn coding comes down to individual preference. For example, some users prefer text-based content. The average speaking rate for tutorials is **150 words per minute**, but many people can read at a faster rate of 250 words per minute. Platforms like[ educative.io](https://devopscube.com/recommends/educativeio/) are ideal for learners who prefer text-based content. If you prefer video content with interactive learning tools, you should choose a platform that offers both. For example, platforms like [Datacamp](https://devopscube.com/recommends/datacamp-free-trial/) offer coding courses for data science with videos and interactive tools." Also, the following are some of the factors you need to consider when choosing a coding website. 1. **Skill level:-** Check if the website offers content for the skill level you are looking for. 2. **Programming languages:** Check if the platform offers all the programming languages you want to learn. For example, if you are interested in full-stack development, you will need access to both front-end and back-end programming languages. 3. **Community and feedback:** If you would like to discuss and learn with the community, you should check for community support in the platform. 4. **Budget:** If you are looking for a free coding platform, you could choose platforms like HackerRank or Coursera, as they offer a wide range of free coding courses. If you are looking for well-guided courses, then platforms like Udemy are great for learning. ## Conclusion I have listed down the 40 best **websites to learn coding online** in this blog. Choosing a website is entirely based on your choice. Whichever website you choose, you need to stick to a learning plan and practice coding to get better at it. There were days when you had to enroll in expensive programming classes to learn a single programming language. But now, you have a plethora of websites with great online instructors to teach you how to code in multiple programming languages. While some of these courses cost money, many are available for free; furthermore, if you're a student, you may be able to get your fees waived or have them covered by scholarship programs. Online learning combined with hands-on coding practice will take your coding abilities to the next level. Also, if you are starting your career in programming, check out the [best programming languages to learn](https://devopscube.com/best-programming-languages-list/) to take your programming career to the next level. ### PyTorch Conference Coupon (North America 2026) URL: https://devopscube.com/pytorch-conference-coupon/ Last updated: 2026-09-23T11:35:47.000Z A great opportunity is coming your way. After KubeCon + CloudNativeCon North America and AGNTCon, the [Linux Foundation](https://www.linuxfoundation.org/?ref=devopscube.com) is bringing you **PyTorch Conference North America 2026**. At this event, you can connect with leading AI pioneers, researchers, and developers. ****Note:** If you are attending KubeCon, you can purchase the ticket using the exclusive [Kubecon coupon.](https://devopscube.com/kubecon-discount-code/) You can explore the future of open-source AI and learn about the impact of PyTorch Foundation projects, including [PyTorch](https://devopscube.com/pytorch-certified-associate-exam-guide/), [vLLM](https://vllm.ai/?ref=devopscube.com), [DeepSpeed](https://github.com/deepspeedai/DeepSpeed?ref=devopscube.com), [Ray](https://www.ray.io/?ref=devopscube.com), Helion, and Safetensors. In this blog, we have shared a PyTorch Conference Coupon that gives you **40% OFF tickets**. We have also covered the event dates, venue, what is included with your tickets, and more. ## Get 40% Off PyTorch Conference Tickets You can get up to **40% discount** PyTorch conference tickets. Use the code below to get the discount [Get 40% Discount Now](https://events.linuxfoundation.org/pytorch-conference-north-america/register/?ref=devopscube.com) **Coupon:** Use code **COMTECHIES** at checkout > **Note:** The discount does not apply to **academic pricing**. ✒️ ****Event Date:** The conference will take place from ****October 20 to 21** in [****San Jose**](https://maps.app.goo.gl/fRWCFmW6FwbmPmWE7?ref=devopscube.com)****, CA.** ## Steps to Claim Your Ticket with Discount Follow each step carefully so you don't miss anything during the ticket-booking process. **Step 1:** Go to the [PyTorch Conference](https://pytorch.org/event/pytorch-conference-2026/?ref=devopscube.com) page. Scroll down until you see the '**Register Now'** link, then click it. ![This is the PyTorch conference site with ticket register link](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-76.png) ⚠️ ****Note:** Super Early Bird, Early Bird, and Standard tickets are no longer available. Late registration tickets are currently available ann can be booked until October 21, 2026. ![This shows the expired tickets, and availabe ticket of PyTorch Conference](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-77.png) **Step 2:** Click the **REGISTER NOW** button, shown in the image below. ![Registrator need to click the register now button to book the PyTorch Conference ticket](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-78.png) **Step 3:** Log in with your LFID (Linux Foundation ID). If you don't have an LFID, create a new user account. You can also continue using your Gmail, GitHub, or LinkedIn ID. ![user need to login with linux foundation ID or create a new user account](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-79.png) You will now see two options: register for yourself, or register someone else. ![Registration options for yourself or someone else](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-80.png) **Step 4:** Enter your name, company email ID, then choose a registration type: Attendee, Sponsor, Academic, or Media. After entering the required information, click **Next**. ![PyTorch Conference registration form with registration type options](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-81.png) **Step 5:** Enter the attendee's details, including job role, company name, address, industry, areas of interest, shirt size, and more. You can also provide links to your social media accounts if you wish. ![attendee details form for PyTorch Conference](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/ScreenRecording2026-09-16at11.59.55AM-ezgif.com-video-to-gif-converter.gif) After entering all the details, scroll down and select the three checkboxes. Then click **Next**. ![Attendees must select all three checkboxes and click Next](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-82.png) You will find other add-on events, such as Jupyter Day, the LF AI & Data Summit, and AGNTCon + MCPCon. If you want to attend any of these events, click **Select**. The event fee will be added to your current order total. ![optional add-on events available for selection on October 19, 2026](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-83.png) ![Optional AGNTCon + MCPCon North America add-on event for $380](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-84.png) **Step 6:** Enter the promo code. The current active promo code is **'COMTECHIES'.** As shown in the image below, you can see that applying this promo code instantly reduces the price from $999 to $599.40. ![COMTECHIES discount code reduces the order total from $999 to $599.40](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-85.png) **Step 7:** Select your payment method. Currently, a credit card is the only available payment option. Enter your card details to continue. ![This image shows the payment method. It has only credit card payment option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-86.png) After entering your details, agree to the terms and conditions. Then click **Submit** to complete the ticket registration process. ![This shows that user need to agree to the terms and conditions, and then click submit](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-87.png) To confirm the payment, you will receive a one-time password (OTP) on the phone number registered to your credit card. That's it. Your registration is now complete, and your PyTorch conference ticket will be sent to your registered email address. ## PyTorch Conference Pass Includes Here are the things you will get along with your conference registration. - You will receive all conference content, including keynotes, sessions, panels, and more. - You will get lunches, morning and afternoon coffee & snacks. - You will get access to social events & networking activities: Flare Party. - Also, an AI community bash featuring DE LA SOUL, and event swag. **Session highlights include:** - Observability Tooling for Cudagraph Workloads, by Natalia Gimelshein and Driss Guessous, Meta - Unlocking the Full Potential of TorchDynamo: Accelerating, Comparing, and Debugging ML Systems, by Yi Pan, UC Berkeley, and Megan Frisella and Stephanie Wang, University of Washington - Scaling Foundation Models: From Broken to Near-Linear Multi-Node Training, by Sheng Huang, Pinterest ## Keynote Speakers In the image below, we have shown the Keynote Speakers of the PyTorch conference. ![The person on the image are the keynote speakers who are going to be in PyTorch conference](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-88.png) ## Refund Policy If you want a refund, you must cancel your ticket at least two weeks before the event begins. To cancel your ticket, click the [Register/Modify](https://register.linuxfoundation.org/pytorch-conference-na-26?ref=devopscube.com) button and select **Unregister**. Once the cancellation is done, you will receive your refund within 7-10 business days. Also, please note that a transaction fee of **approximately 6%** will be deducted from your refund. ## Co-Located Events Here is the list of co-located events that may be worth attending. - Open Source AI Week - LF AI & DATA Summit 2026 - ARM Create - Jupyter Day - AGNTCon + MCPCon If you want to know more about these events, [check them out here](https://events.linuxfoundation.org/pytorch-conference-north-america/features-add-ons/co-located-events/?ref=devopscube.com). ## Conclusion We have provided all the information you need to know about the PyTorch conference. More importantly, we have shared a promo code that gives you 40% off your conference pass. We believe this event will be a great opportunity to learn from industry professionals and build valuable connections. If you are preparing for any Linux Foundation certifications, check out our exclusive [Linux Foundation coupon](https://devopscube.com/linux-foundation-coupon/) page to get up to a 48% discount. If you have questions about the event, leave them in the comments below. We will be happy to help. ### How To Setup Kubernetes Cluster Using Kubeadm URL: https://devopscube.com/setup-kubernetes-cluster-kubeadm/ Last updated: 2026-10-09T16:03:52.000Z In this blog post, I have covered the **step-by-step guide to setting up a kubernetes cluster** using Kubeadm with one control plane node and two worker nodes. [Kubeadm](https://github.com/kubernetes/kubeadm?ref=devopscube.com) is an excellent tool to set up a working kubernetes cluster in less time. It does all the heavy lifting in terms of setting up all kubernetes cluster components. Also, it follows all the configuration best practices for a kubernetes cluster. 💡 ****Note**: This guide is updated for latest Kubernetes 1.37 version ## What is Kubeadm? Kubeadm is a tool to set up a minimum viable Kubernetes cluster without much complex configuration. Also, Kubeadm makes the whole process easy by running a series of prechecks to ensure that the server has all the essential components and configs to run Kubernetes. It is developed and maintained by the official Kubernetes community. There are other options like [minikube](https://devopscube.com/kubernetes-minikube-tutorial/), [kind](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps/), etc., that are pretty easy to set up. Those are good options with minimum hardware requirements if you are deploying and testing applications on Kubernetes. But if you want to play around with the cluster components or test utilities that are part of cluster administration, Kubeadm is the best option. Also, you can create a production-like cluster locally on a workstation for development and testing purposes. ## Kubeadm Setup Prerequisites Following are the prerequisites for **Kubeadm Kubernetes cluster setup**. 1. Minimum two **Ubuntu nodes** \[One control plane node and one worker node\]. You can have more worker nodes as per your requirement. 2. The control plane node should have a minimum of **2 vCPU and 2GB RAM**. 3. For the worker nodes, a minimum of 1vCPU and 2 GB RAM is recommended. 4. **10.X.X.X/X** network range with static IPs for control plane node and worker nodes. We will be using the **192.x.x.x** series as the pod network range that will be used by the Calico network plugin. Make sure the Node IP range and pod IP range don't overlap. 💡 ****Note**: If you are setting up the cluster in the corporate network behind a proxy, ensure set the proxy variables and have access to the container registry and docker hub. Or talk to your network administrator to whitelist **`registry.k8s.io`** to pull the required images. ## Kubeadm Port Requirements Please refer to the following image and make sure all the ports are allowed for the control plane node and the worker nodes. If you are setting up the kubeadm cluster cloud servers, ensure you allow the ports in the firewall configuration. ![Kubeadm kubernetes cluster port requirements](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kuberetes-port-requirements-min-1.png) Additionally, Calico, requires specific UDP ports for inter-node and pod communication. So enable all UDP traffic between the cluster nodes. If UDP traffic is blocked, DNS queries from pods will fail, leading to errors like `connection timed out`, and Calico-based networking may also break, causing pod communication issues. If you are using vagrant-based Ubuntu VMs, the firewall will be disabled by default. So you don't have to do any firewall configurations. ## Kubeadm for Kubernetes Certification Exams If you are preparing for Kubernetes certifications like **CKA, CKAD, or CKS**, you can use the local kubeadm clusters to practice for the certification exam. In fact, kubeadm itself is part of the CKA and [CKS exam](https://devopscube.com/cks-exam-guide-tips/). For CKA you might be asked to bootstrap a cluster using Kubeadm. For CKS, you have to upgrade the cluster using kubeadm. 💡 ****Important Note**: If you are planning for Kubernetes certification, make use of the [CKA/CKAD/CKS coupon Codes](https://devopscube.ghost.io/kubernetes-certification-coupon/?ref=devopscube.com) before the price increases. If you use Vagrant-based VMs on your workstation, you can start and stop the cluster whenever you need. By having the local Kubeadm clusters, you can play around with all the cluster configurations and learn to troubleshoot different components in the cluster. 📌 ****Recommendation:** Looking for an organized way to learn Kubernetes and prepare for the CKA exam ? Check out our [CKA course and practice test bundle](https://techiescamp.com/p/cka-complete-prep-course-practice-tests?ref=devopscube.com) (use code DCUBE30 to get 30% OFF). We explain concepts using illustrations, hands-on exercises, real-world examples, and provide dedicated discord based user support. ## Vagrantfile, Kubeadm Scripts & Manifests Also, all the commands used in this guide for control plane and worker nodes config are hosted in [GitHub](https://github.com/techiescamp/kubeadm-scripts?ref=devopscube.com). You can clone the repository for reference. ```bash git clone https://github.com/techiescamp/kubeadm-scripts ``` This guide intends to make you understand each config required for the Kubeadm setup. If you don't want to run the commands one by one, **you can run the script file directl**y. If you are using Vagrant to set up the Kubernetes cluster, you can make use of my Vagrantfile. It launches 3 VMs. A self-explanatory basic Vagrantfile. If you are new to Vagrant, check the [Vagrant tutorial](https://devopscube.com/vagrant-tutorial-beginners/). If you are a Terraform and AWS user, you can make use of the Terraform script present under the Terraform folder to spin up [ec2 instances](https://devopscube.com/use-aws-cli-create-ec2-instance/). Also, I have created a **video demo of the whole kubeadm setup. You can refer to** it during the setup. ## Kubernetes Cluster Setup Using Kubeadm The following are the high-level steps involved in setting up a kubeadm-based Kubernetes cluster. 1. Install container runtime on all nodes. We will be using [CRI-O](https://cri-o.io/?ref=devopscube.com) 2. Install Kubeadm, Kubelet, and [kubectl](https://devopscube.com/kubectl-aliases/) on all the nodes. 3. Initiate Kubeadm control plane configuration on the control plane node. 4. Save the node join command with the token. 5. Install the [Calico network plugin](https://docs.tigera.io/calico/latest/about/?ref=devopscube.com) (operator). 6. Join the worker node to the control plane node using the join command. 7. Validate all cluster components and nodes. 8. Install Kubernetes Metrics Server 9. Deploy a sample app and validate the app All the steps given in this guide are referenced from the official Kubernetes documentation and related GitHub project pages. If you want to understand every cluster component in detail, refer to the comprehensive [Kubernetes Architecture](https://devopscube.com/kubernetes-architecture-explained/). Now let's get started with the setup. ## Step 1: Enable iptables Bridged Traffic on all the Nodes Execute the following commands on **all the nodes** for IPtables to see bridged traffic. Here we are tweaking some kernel parameters and setting them using **`sysctl`**. ```bash # Keeps the swap off during reboot (crontab -l 2>/dev/null; echo "@reboot /sbin/swapoff -a") | crontab - || true sudo apt-get update -y # Create the .conf file to load the modules at bootup cat </dev/null; echo "@reboot /sbin/swapoff -a") | crontab - || true ``` The `fstab` entry will make sure the swap is off on system reboots. You can also, control swap errors using the kubeadm parameter `--ignore-preflight-errors Swap` we will look at it in the latter part. ****Note**: From 1.28 kubeadm has beta support for using swap with kubeadm clusters. Read [kubernetes swap](https://devopscube.com/kubernetes-swap/) blog to understand more. ## Step 3: Install CRI-O Runtime On All The Nodes The basic requirement for a Kubernetes cluster is a [container runtime](https://devopscube.com/what-is-docker/). You can have any one of the following container runtimes. 1. CRI-O 2. containerd 3. Docker Engine (using cri-dockerd) We will be using CRI-O instead of containerd for this setup. Execute the following commands **on all the nodes** to install required dependencies and the latest version of CRI-O and **`crictl`**. ```bash CRIO_VERSION="v1.37" KUBERNETES_VERSION="v1.37" # Install CRI-O Runtime sudo apt-get update -y sudo apt-get install -y software-properties-common curl apt-transport-https ca-certificates sudo install -m 0755 -d /etc/apt/keyrings # Add CRI-O apt repository curl -fsSL https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://download.opensuse.org/repositories/isv:/cri-o:/stable:/$CRIO_VERSION/deb/ /" | tee /etc/apt/sources.list.d/cri-o.list sudo apt-get update -y sudo apt-get install -y cri-o sudo systemctl daemon-reload sudo systemctl enable crio --now sudo systemctl start crio.service ``` ## Step 4: Install & Configure Crictl to use CRI-O Download and install Crictl on all nodes and configure it to use the CRI-O runtime. ```bash CRICTL_VERSION="v1.36.0" # Install crictl curl -LO "https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-${CRICTL_ARCH}.tar.gz" sudo tar zxvf "crictl-${CRICTL_VERSION}-linux-${CRICTL_ARCH}.tar.gz" -C /usr/local/bin rm -f "crictl-${CRICTL_VERSION}-linux-${CRICTL_ARCH}.tar.gz" # Configure crictl to use CRI-O socket cat < /etc/default/kubelet << EOF KUBELET_EXTRA_ARGS=--node-ip=$local_ip EOF ``` ## Step 6: Create the Kubeadm Config Now that we have the nodes ready with all the utilities for kubernetes, we will initialize the control plane using a kubeadm config file. We will be using the Kubernetes version `v1.37` Here, you need to consider two options. 1. **ControlPlane Node with Private IP:** If you have nodes with only private IP addresses, the API server would be accessed over the private IP of the ControlPlane node. 2. **ControlPlane With Public IP:** If you are setting upKubeadm cluster on Cloud platforms and you need ControlPlane API server access over the Public IP of the master node server. 💡 ****Important Note:** If you are using cloud VMs with ****public IP addresses**, it is important to assign a ****static public IP** to the control plane node if you plan to access the cluster remotely from your workstation. Without a static IP, the public IP may change if the VM is restarted or shut down, which can cause connectivity issues and prevent the cluster from functioning as expected. Lets create the Kubeadm Config. ```bash vi kubeadm.config ``` In the following YAML, replace **`192.168.201.10`** with your control plane node's **private IP** in **advertiseAddress.** 1. For cloud VMs with a public IP we discussed earlier, update the **`controlPlaneEndpoint`** with the Public IP 2. If you don't need public access, use the private IP in **`controlPlaneEndpoint`** instead. ```yaml apiVersion: kubeadm.k8s.io/v1beta4 kind: InitConfiguration localAPIEndpoint: advertiseAddress: "192.168.249.201" bindPort: 6443 nodeRegistration: name: "controlplane" --- apiVersion: kubeadm.k8s.io/v1beta4 kind: ClusterConfiguration kubernetesVersion: "v1.37.0" controlPlaneEndpoint: "192.168.249.201:6443" apiServer: extraArgs: - name: "enable-admission-plugins" value: "NodeRestriction" - name: "audit-log-path" value: "/var/log/kubernetes/audit.log" controllerManager: extraArgs: - name: "node-cidr-mask-size" value: "24" scheduler: extraArgs: - name: "leader-elect" value: "true" networking: podSubnet: "10.244.0.0/16" serviceSubnet: "10.96.0.0/12" dnsDomain: "cluster.local" --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration cgroupDriver: "systemd" syncFrequency: "1m" --- apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration mode: "ipvs" conntrack: maxPerCore: 32768 min: 131072 tcpCloseWaitTimeout: "1h" tcpEstablishedTimeout: "24h" ``` ## Step 7: Initialize Kubeadm On Controlplane Node Now, lets initialize the cluster. ```bash sudo kubeadm init --config=kubeadm.config ``` On a successful kubeadm initialization, you should get an output with [kubeconfig file](https://devopscube.com/kubernetes-kubeconfig-file/) location and the **join command with the token** as shown below. Copy that and save it to the file. we will need it for **joining the worker node to the master**. ![Kubeadm init command output](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kubeadm-3.png) Use the following **commands from the output** to create the `kubeconfig` in the control plane so that you can use `kubectl` to interact with the cluster API. ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` Now, verify the kubeconfig by executing the following kubectl command to list all the pods in the `kube-system` namespace. ```bash $ kubectl get po -n kube-system ``` You should see the following output. You will see the two **Coredns pods in a pending state.** It is the expected behavior. Once we **install the network plugin**, it will be in a running state. ```bash $ kubectl get po -n kube-system NAME READY STATUS RESTARTS AGE coredns-668d6bf9bc-6tpcr 0/1 Pending 0 15m coredns-668d6bf9bc-gwzql 0/1 Pending 0 15m etcd-controlplane 1/1 Running 0 15m kube-apiserver-controlplane 1/1 Running 0 15m kube-controller-manager-controlplane 1/1 Running 0 15m kube-proxy-xpbjr 1/1 Running 0 15m kube-scheduler-controlplane 1/1 Running 0 15m ``` You can verify all the cluster component health statuses using the following command. ```bash kubectl get --raw='/readyz?verbose' ``` You can get the cluster info using the following command. ```bash kubectl cluster-info ``` By default, apps won't get scheduled on the control plane node. If you **want to use the control plane node for scheduling apps**, taint the master node. ```bash kubectl taint nodes --all node-role.kubernetes.io/control-plane- ``` ## Step 8: Join Worker Nodes To Kubernetes Control Plane We have set up **cri-o, kubelet, and kubeadm** utilities on the worker nodes as well. Now, let's join the worker node to the Control Plane node using the Kubeadm join c**ommand you have got in the output** while setting up the master node. If you missed copying the join command, execute the following command in the master node to recreate the token with the join command. ```bash kubeadm token create --print-join-command ``` Here is what the command looks like. Use `sudo` if you running as a normal user. This command performs the [TLS bootstrapping](https://kubernetes.io/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/?ref=devopscube.com) for the nodes. ```bash sudo kubeadm join 10.128.0.37:6443 --token j4eice.33vgvgyf5cxw4u8i \ --discovery-token-ca-cert-hash sha256:37f94469b58bcc8f26a4aa44441fb17196a585b37288f85e22475b00c36f1c61 ``` On successful execution, you will see the output saying, "This node has joined the cluster". ![kubeadm node join output.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-25-17.png) You can further **add more nodes** with the same join command. Now execute the **kubectl command from the control-plane node** to check if the node is added to the master. ```bash kubectl get nodes ``` Example output, ```bash root@controlplane:~# kubectl get nodes NAME STATUS ROLES AGE VERSION controlplane NotReady control-plane 28m v1.37.0 node01 NotReady 39s v1.37.0 node02 NotReady 33s v1.37.0 ``` You can see that the nodes are in a **NotReady** state because a Network Plugin (CNI) has not been installed in the cluster yet. Kubernetes requires the CNI for pod networking. Without it, the nodes cannot communicate properly, which is why they are in a **NotReady** state. The node status will change to **Ready** once we install and configure a Network Plugin in the cluster. Also, in the above output, the ROLE is `` for the worker nodes. You can add a label to the worker node using the following command. Replace **`node01`** with the hostname of the worker node you want to label. ``` kubectl label node node01 node-role.kubernetes.io/worker=worker ``` ## Step 9: Install Calico Network Plugin for Pod Networking Kubeadm does not configure any network plugin. You need to install a network plugin of your choice for [kubernetes pod](https://devopscube.com/kubernetes-pod/) networking and enable network policy. I am using the Calico network plugin for this setup. 💡 ****Note**: Make sure you execute the kubectl command from where you have configured the `kubeconfig` file. Either from the master of your workstation with the connectivity to the kubernetes API. Follow the steps to configure Calico Operator. #### Step 1: Install the Tigera Operator and Custom Resources Execute the following commands to install the [Calico network plugin](https://docs.tigera.io/calico/latest/about/?ref=devopscube.com) operator and CRD's on the cluster. ```bash kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.32.2/manifests/v1_crd_projectcalico_org.yaml kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.32.2/manifests/tigera-operator.yaml ``` The above command installs the Tigera operator and related [Custom Resource Definitions](https://devopscube.com/kubernetes-objects-resources/) (CRDs) in your Kubernetes cluster. The Tigera operator is responsible for managing the installation and lifecycle of Calico, which is a CNI (Container Network Interface) plugin used for pod networking and network policies. ### Step 2: Download the Calico Custom Resource Use the following command to download the Calico custom resource. ```bash curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.32.2/manifests/custom-resources.yaml ``` This will **download** the `custom-resources.yaml` file to your local machine, but it **won't apply** it to the cluster. So why do you need to download and edit the custom resource for pod networking? Because the custom resource defines how Calico should be configured in your cluster. In our case, we need to **adjust the IP pools** to match our Pod network settings that we used in the Kubeadm config. ### Step 3: Get the cluster CIDR range To get the **cluster CIDR range**, run the following command. ``` kubectl -n kube-system get pod -l component=kube-controller-manager -o yaml | grep -i cluster-cidr ``` You should get **10.244.0.0/16** as the output because that value was used in the **`kubeadm.config`** during cluster initialization. ### Step 4: Customize custom-resources.yaml Open the `custom-resources.yaml` file and change the default CIDR from `192.168.0.0/16` to `10.244.0.0/16`, which is the value specified in your kubeadm configuration. You should also see this same value in the previous output. Verifying the CIDR ensures that the pod network is correctly configured for your cluster. Open the `custom-resources.yaml` ```bash vi custom-resources.yaml ``` Find the section with `cidr: 192.168.0.0/16` and replace it with `cidr: 10.244.0.0/16` Here’s how the updated section should look after replacing `cidr: 192.168.0.0/16` with `cidr: 10.244.0.0/16` ```yaml apiVersion: operator.tigera.io/v1 kind: Installation metadata: name: default spec: # Configures Calico networking. calicoNetwork: ipPools: - name: default-ipv4-ippool blockSize: 26 cidr: 10.244.0.0/16 encapsulation: VXLANCrossSubnet natOutgoing: Enabled nodeSelector: all() ``` ### Step 5: Deploy the custom resource After updating the `custom-resources.yaml` file with the correct pod CIDR, apply it to the cluster to complete the Calico setup. Run the following command: ```bash kubectl apply -f custom-resources.yaml ``` Now, when you check the pod status, you should see all the pods, including **Calico** and **CoreDNS**, in a **Running** state. ```bash kubectl get po -A ``` It may take a **few minutes** for all the pods to reach the running state. Also, if you check the **node status**, you will see that all the nodes are now in a **Ready** state. Before installing the **CNI**, the nodes were in a **NotReady** state. Run the following command to verify: ```bash kubectl get no ``` ## Step 10: Setup Kubernetes Metrics Server Kubeadm doesn't install [metrics server](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) component during its initialization. We have to install it separately. To verify this, if you run the top command, you will see the `Metrics API not available` error. ``` root@controlplane:~# kubectl top nodes error: Metrics API not available ``` To install the metrics server, execute the following metric server manifest file. ``` kubectl apply -f https://raw.githubusercontent.com/techiescamp/cka-certification-guide/refs/heads/main/lab-setup/manifests/metrics-server/metrics-server.yaml ``` This manifest is taken from the official [metrics serve](https://github.com/kubernetes-sigs/metrics-server?ref=devopscube.com)r repo. I have added the `--kubelet-insecure-tls` flag to the container to make it work in the local setup and hosted it separately. Or else, you will get the following error. ``` because it doesn't contain any IP SANs" node ``` Once the metrics server objects are deployed, **it takes a minute** for you to see the node and pod metrics using the top command. ``` kubectl top nodes ``` You should be able to view the node metrics as shown below. ```bash root@controlplane:~# kubectl top nodes NAME CPU(cores) CPU(%) MEMORY(bytes) MEMORY(%) controlplane 107m 5% 1083Mi 58% node01 76m 3% 639Mi 34% node02 28m 1% 732Mi 39% ``` You can also view the pod CPU and memory metrics using the following command. ``` kubectl top pod -n kube-system ``` ## Step 11: Deploy A Sample Nginx Application Now that we have all the components to make the cluster and applications work, let's deploy a sample Nginx application and see if we can access it over a NodePort Create an Nginx [deployment](https://devopscube.com/kubernetes-deployment-tutorial/). Execute the following directly on the command line. It deploys the pod in the default namespace. ``` cat < ~/.kube/merged_config.yaml ``` **Step 5:** Replace the old config with the new config ``` mv ~/.kube/merged_config.yaml ~/.kube/config ``` **Step 6:** List all the contexts ``` kubectl config get-contexts -o name ``` **Step 7:** Set the current context to the kubeadm cluster. ``` kubectl config use-context ``` Now, you should be able to connect to the Kubeadm cluster from your local workstation kubectl utility. ## Step 13: Validate the Cluster Lets do a final validation of the cluster. Run the following command to verify access to the API server. ``` $ kubectl cluster-info Kubernetes control plane is running at https://192.168.249.201:6443 CoreDNS is running at https://192.168.249.201:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ``` Next, we will test the CoreDNS DNS resolution. To check if CoreDNS can resolve internal Kubernetes services, lets deploy a dnsutils pod. ```bash $ kubectl apply -f https://raw.githubusercontent.com/techiescamp/cka-certification-guide/refs/heads/main/lab-setup/manifests/utilities/dnsutils.yaml $ kubectl get pods dnsutils ``` Execute the following nslookup command. Expected output: Resolves to the cluster IP (`10.96.0.1`). ```bash kubectl exec -i -t dnsutils -- nslookup kubernetes.default Server: 10.96.0.10 Address: 10.96.0.10#53 Name: kubernetes.default.svc.cluster.local Address: 10.96.0.1 ``` To check if the cluster can resolve external domains, execute: ```bash $ kubectl exec -i -t dnsutils -- nslookup google.com Server: 10.96.0.10 Address: 10.96.0.10#53 Name: google.com.localdomain Address: 142.250.195.238 Name: google.com.localdomain Address: 142.250.195.238 ``` Cleanup dnutils pod. ```bash kubectl delete -f https://raw.githubusercontent.com/techiescamp/cka-certification-guide/refs/heads/main/lab-setup/manifests/utilities/dnsutils.yaml ``` ## Possible Kubeadm Issues The following are the possible issues you might encounter in the kubeadm setup. 1. **Pod Out of memory and CPU:** The master node should have a minimum of 2vCPU and 2 GB memory. 2. **Nodes cannot connect to Master:** Check the firewall between nodes and make sure all the nodes can talk to each other on the required kubernetes ports. 3. **Calico Pod Restarts:** Sometimes, if you use the same IP range for the node and pod network, Calico pods may not work as expected. So make sure the node and pod IP ranges don't overlap. Overlapping [IP addresses](https://devopscube.com/ip-address-tutorial/) could result in issues for other applications running on the cluster as well. For other pod errors, check out the [kubernetes pod troubleshooting](https://devopscube.com/troubleshoot-kubernetes-pods/) guide. If your server doesn't have a minimum of 2 vCPU, you will get the following error. ``` [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2 ``` If you use a public IP with` --apiserver-advertise-address` parameter, you will have failed master node components with the following error. To rectify this error, use `--control-plane-endpoint` parameter with the public IP address. ``` kubelet-check] Initial timeout of 40s passed. Unfortunately, an error has occurred: timed out waiting for the condition This error is likely caused by: - The kubelet is not running - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled) If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands: - 'systemctl status kubelet' - 'journalctl -xeu kubelet' ``` You will get the following error in worker nodes when you try to join a worker node with a new token after the master node reset. To rectify this error, reset the worker node using the command `kubeadm reset`. ``` [ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists [ERROR Port-10250]: Port 10250 is in use [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists ``` ## Kubernetes Cluster Important Configurations Following are the important [Kubernetes cluster configurations](https://devopscube.com/kubernetes-cluster-configurations/) you should know. | Configuration | Location | | -------------------------------------------------------------------------------- | ---------------------------- | | Static Pods Location (etcd, api-server, controller manager and scheduler) | /etc/kubernetes/manifests | | TLS Certificates location (kubernetes-ca, etcd-ca and kubernetes-front-proxy-ca) | /etc/kubernetes/pki | | Admin Kubeconfig File | /etc/kubernetes/admin.conf | | Kubelet configuration | /var/lib/kubelet/config.yaml | There are configurations that are part of Kubernetes feature gates. If you want to use the features that are part of feature gates, you need to enable them during the Kubeadm initialization using a kubeadm configuration file. You can refer to [enabling feature gates in Kubeadm](https://devopscube.com/enable-feature-gates-kubeadm/) blog to understand more. ## Upgrading Kubeadm Cluster Using Kubeadm, you can upgrade the kubernetes cluster to the same version patch or a new version. Kubeadm upgrade doesn't introduce any downtime if you upgrade one node at a time. To do hands-on, please refer to my step-by-step guide on [Kubeadm cluster upgrade](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/) ## Backing Up ETCD Data etcd backup is one the key task in real world projects and for CKA certification. You can follow the[ etcd backup guide](https://devopscube.com/backup-etcd-restore-kubernetes/) to learn how to perform etcd backup and restore. ## Setup Prometheus Monitoring As a next step, you can try setting up the Prometheus monitoring stack on the Kubeadm cluster. I have published a detailed guide for the setup. Refer to [prometheus on Kubernetes](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) guide for step-by-step guides. The stack contains, prometheus, alert manager, kube state metrics and Grafana. ## How Does Kubeadm Work? Here is how the Kubeadm setup works. When you initialize a Kubernetes cluster using Kubeadm, it does the following. 1. When you initialize kubeadm, first it runs all the preflight checks to validate the system state and it downloads all the required cluster container images from the **registry.k8s.io** container registry. 2. It then generates required TLS certificates and stores them in the **/etc/kubernetes/pki** folder. 3. Next, it generates all the kubeconfig files for the cluster components in the **/etc/kubernetes** folder. 4. Then it starts the kubelet service generates the static pod manifests for all the cluster components and saves it in the **/etc/kubernetes/manifests** folder. 5. Next, it starts all the control plane components from the static pod manifests. 6. Then it installs core DNS and Kubeproxy components 7. Finally, it generates the node bootstrap token. 8. Worker nodes use this token to join the control plane. ![Kubeadm Workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-7-36.png) As you can see all the key cluster configurations will be present under the /etc/kubernetes folder. ## Kubeadm FAQs ### How to use Custom CA Certificates With Kubeadm? By default, kubeadm creates its own CA certificates. However, if you wish to use custom CA certificates, they should be placed in the **`/etc/kubernetes/pki`** folder. When kubeadm is run, it will make use of existing certificates if they are found, and will not overwrite them. ### How to generate the Kubeadm Join command? You can use `kubeadm token create --print-join-command` command to generate the join command. ## Conclusion In this post, we learned to install Kubernetes step by step using kubeadm. As a [DevOps engineer](https://devopscube.com/become-devops-engineer/), it is good to have an understanding of the Kubernetes cluster components. With companies using [managed Kubernetes services](https://devopscube.com/docker-container-clustering-tools/), we miss learning the basic building blocks of kubernetes. This Kubeadm setup is good for learning and playing around with kubernetes. Also, there are many other Kubeadm configs that I did not cover in this guide as it is out of the scope of this guide. Please refer to the official [Kubeadm documentation](https://kubernetes.io/docs/reference/setup-tools/kubeadm/?ref=devopscube.com). By having the whole cluster setup in VMs, you can learn all the cluster components configs and troubleshoot the cluster on component failures. Also, with Vagrant, you can create simple automation to bring up and tear down Kubernetes clusters on-demand in your local workstation. Check out my guide on [automated kubernetes vagrant setup using kubeadm.](https://devopscube.com/kubernetes-cluster-vagrant/) If you are learning kubernetes, check out the comprehensive [Kubernetes tutorial for beginners](https://devopscube.com/kubernetes-tutorials-beginners/). ### [20% OFF] KubeCon Discount 2026: Limited-Time Offer URL: https://devopscube.com/kubecon-discount-code/ Last updated: 2026-09-28T07:16:08.000Z Are you looking for a KubeCon discount for 2026? You are in the right place. For the **November 2026** KubeCon conference, you can get 2**0% off** tickets, as detailed in this blog post. ## \[Save 20%\] KubeCon + CloudNativeCon North America 2026 KubeCon + CloudNativeCon North America is coming to Salt Lake City, November 9-12. Get a flat 20% discount on registration. [Register for Kubecon](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/?ref=devopscube.com) **KubeCon Voucher**: Use Code **COMTECHIES20** at checkout **Validity:** This code expires on November 12, 2026. This event has expert-led talks, the latest innovations from leading vendors, 11 CNCF-hosted co-located events, unforgettable parties, swag, and unmatched networking opportunities with **TeamCloudNative**. 🗞️ ***All-Access Pass:** This pass type includes entry to all 11 CNCF-hosted co-located events and KubeCon + CloudNativeCon. Discount available on Corporate and Individual Passes ## KubeCon Location and Dates 2026 Here are the dates and location for KubeCon this year. | **Region** | **Dates (2026)** | **City & Country** | | ----------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Europe | 23–26 March 2026 | Amsterdam, Netherlands ([CNCF](https://www.cncf.io/announcements/2025/12/10/cncf-unveils-schedule-for-kubecon-cloudnativecon-europe-2026?ref=devopscube.com "CNCF Unveils Schedule for KubeCon + CloudNativeCon ...")) | | India (Asia) | 18–19 June 2026 | Mumbai, India ([LF Events](https://events.linuxfoundation.org/about/calendar/?ref=devopscube.com "Upcoming Events \| LF Events")) | | Japan (APAC) | 29–30 July 2026 | Yokohama, Japan ([LF Events](https://events.linuxfoundation.org/about/calendar?ref=devopscube.com "Upcoming Events \| LF Events")) | | China (APAC / Regional) | 8–9 September 2026 | Shanghai, China ([LF Events](https://events.linuxfoundation.org/about/calendar/?utm%5Fsource=chatgpt.com "Upcoming Events \| LF Events")) | | North America | 9–12 November 2026 | Salt Lake City, Utah, USA ([LF Events](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america-2026/?ref=devopscube.com "KubeCon + CloudNativeCon North America 2026")) | ## \[Save 20%\] KubeCon Amsterdam Discount 2026 (Expired) ⚠️ ****Note:** Europe KubeCon is over, but you can look forward to it again next year. KubeCon + CloudNativeCon 2026 will take place in Europe, Amsterdam. The event runs for four days: March 23, 24, 25, and 26, 2026. [Get 30% Discount on KubeCon + CloudNativeCon](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/?ref=devopscube.com) **KubeCon Voucher:**: Use Code **COMTECHIES20** at checkout **Validity:** This offer expires soon. Here is the schedule at a Glance: - **23rd March** \- Pre-event Programming (including Co-Located Events) - **24th March** \- Keynotes, Breakouts, Solutions Showcase, KubeCrawl + CloudNativeFest - **25th March** \- Keynotes, Breakouts, Solutions Showcase - **26th March** \- Keynotes, Breakouts, Solutions Showcase ### KubeCon Ticket Pricing (Europe) KubeCon tickets are available under three categories: **Corporate, Individual, and Academic**. Ticket pricing is further divided into early bird, standard, and late phases. Early-bird tickets are no longer available. The early-bird phase ran from October 15 to November 19, 2025\. Standard and late pricing are still available. **Standard Pricing:** - **Corporate -** $1798 - **Individual -** $978 - **Academic -** $275 These pricings will expire on February 4, 2026. **Late Pricings:** - **Corporate -** $2298 - **Individual -** $1278 - **Academic -** $275 This will start from February 15th and end on March 26, 2026. ## What is KubeCon + CloudNativeCon? KubeCon + CloudNativeCon is a major conference organized by the **Cloud Native Computing Foundation (CNCF)**. It brings together Kubernetes and cloud-native experts from around the world. The event is organized by CNCF, which is part of the [Linux Foundation](https://devopscube.com/linux-foundation-certification/). This conference is for DevOps engineers, developers, SREs, and IT professionals. At KubeCon, you can learn the latest best practices, tools, and trends in cloud-native computing through real-world talks and case studies. ## Is KubeCon Worth the Cost? For many professionals, yes, KubeCon is worth the cost. If you want to learn directly from the real-world [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) professionals and build strong industry connections. Basically, this conference delivers value that most online courses cannot. The talks, case studies, and networking opportunities offer insights that are hard to get elsewhere. That said, KubeCon is more expensive than online courses. If your goal is only learning at a lower cost, online certifications may be a better option. KubeCon is worth it if you are looking for practical insights, community access, networking, and career exposure. ## FAQs Here are the frequently asked questions about KubeCon. ### 1\. Is KubeCon free for students? No, KubeCon is not free for students. But, students can often access discounted pricing through academic passes. ### 2\. Are refunds allowed? Yes, refunds are allowed if you cancel at least **two weeks before the event**. Cancellations made after that period are not eligible for a refund. ## Conclusion We have listed the KubeCon + CloudNativeCon discounts and available dates for 2026. You usually won’t find this discount on other websites. You can access it here because we are partnering with the organizers to offer the maximum possible discount. The best way to save is by taking advantage of early-bird pricing. Registering early and planning ahead helps secure the lowest ticket price. If you have any doubts, please send them in the comments. Also, if you are looking for Kubernetes certification discounts, use the [Linux Foundation Coupon](https://devopscube.com/linux-foundation-coupon/) to get the maximum discount. ### MLflow Tutorial: Complete Step-by-Step Guide (with Hands-on) URL: https://devopscube.com/mlflow-tutorial/ Last updated: 2026-10-07T09:33:44.000Z In a previous [MLOps](https://devopscube.com/devops-to-mlops/) blog, we learned how [Kubeflow Trainer](https://devopscube.com/kubeflow-trainer/) helps run distributed training workloads on Kubernetes. But once model training is completed, we have a new problem. How do we know: - Where do we store the trained model? - Which dataset created this model? - How to compare models from different training runs? - Which model version should go to production? and more.. This is where [MLflow](https://mlflow.org/docs/latest/self-hosting/?ref=devopscube.com) helps you. In this blog, we will explore MLflow and its components in detail and provide a clear guide to using it effectively. By the end of this guide, you will learn the following: - What is Experiment Tracking? - Understanding the MLflow Architecture - How Kubeflow Pipelines Talk to MLflow - Deploying MLflow on Kubernetes (Hands-on) - Training an Employee Attrition Model Locally and Tracking Runs with MLflow (Hands-on) - Registering and Managing Models in the MLflow Model Registry Before we dive deep into MLflow, you need to understand what experiment tracking is. This way, you will be able to relate to MLflow better. ## What is Experiment Tracking? In [machine learning](https://developers.google.com/machine-learning/intro-to-ml/what-is-ml?ref=devopscube.com), each time you train a model, a new training run is created. An **experiment is a collection of those training runs.** For training, we pick an algorithm, set the hyperparameters, point it to a dataset version, and train. If something changes, we train again. We have explained this in the [Training the Model](https://newsletter.devopscube.com/p/mlops-training-the-model?ref=devopscube.com) newsletter. **Experiment tracking** means automatically logging important information about a training run. For example, during every training run, the following four things get captured. - **Parameters:** Algorithm, hyperparameters, dataset version. - **Metrics:** Accuracy, F1 score, training time. - **Artifacts:** The model file, environment files, etc - **Metadata:** Info on artifact location, model signature, input example, custom metadata, etc. ![Diagram illustrating how experiment tracking records a machine learning training run, including parameters, metrics, artifacts, and metadata.](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/b42275ec-5860-4665-8d44-ca58c88155fa/image.png?t=1784608393) It is **similar to how we track commit SHA, build number, logs, etc in the CI system**. So a training run without tracking is like a CI build without build history. The most widely used tool for experiment tracking is MLflow. ## What is MLflow? MLflow is the Git for machine learning experiments. It is an open-source platform for tracking and managing the complete lifecycle of a model. Meaning, who trained it, with what parameters, on what data, what the results were, and which version is approved for production. By tracking every training run, MLflow makes it **easy for data scientists to compare experiments** and identify which combination of data, parameters, and code produced the best-performing model. Since all the metadata is stored, **you can also reproduce a training run** using the same code, parameters, and dataset. 💡 ****Important Note:** MLflow has a lot of LLM and agent-related features (tracing, prompt registry, evaluation). In this blog, I have only covered the classic ML part. The following diagram illustrates the components of MLflow. ![MLflow tracking architecture – ML code and training pipelines log metadata and artifacts through the MLflow SDK to the Tracking Server, backend store, artifact store, and model registry](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/b741bcb4-754c-49eb-8148-894fd4cf76e9/image.png?t=1784608438) MLflow operates as a client-server system, with four core components: 1. **MLflow SDK (Client):** A [Python](https://devopscube.com/python-for-devops/) package used to connect to the MLflow tracking server. You can install it on your local system or call it in ML training workflows to push the details to MLflow. 2. **Tracking server:** A lightweight FastAPI-based web server with a UI and a REST API. Your training code sends data to it over HTTP. 3. **Backend store:** A relational database that stores the metadata of experiments, runs, traces, etc. MLflow supports PostgreSQL, MySQL, SQLite, and MSSQL as backends. 4. **Artifact store:** This component stores artifacts such as model weights, images, and data files. For our attrition model project, this is where `model.skops` ends up after training. The artifact store is implemented using object storage services such as AWS S3, MinIO, GCS, Azure Blob Storage, etc. ## MLFow Functional components MLflow has the following three key functional components. 1. **MLflow Experiments:** An experiment is a logical container for your ML work. For example, everything related to the attrition model is part of a single experiment. 2. **MLflow Run:** A run is a single execution of your training code inside an experiment. Every run records the parameters, metrics, artifacts, and code version used for that training. If you train the model 50 times with different hyperparameters, you get 50 runs in a single experiment. 3. **Model Registry:** A centralized repository for managing versioned machine learning models. Once you identify the best-performing model from your experiment runs, you can register it in the Model Registry. You will understand all these better in the hands-on covered in the upcoming sections. ## How Kubeflow Pipelines Talks to MLflow? Here is the common question everyone has. We already have [Airflow](https://devopscube.com/apache-airflow-on-kubernetes/), [DVC](https://devopscube.com/dvc-tutorial-for-beginners/), [Feast](https://devopscube.com/setup-feature-store-feast-on-kubernetes/), and Kubeflow in our stack. Where exactly does MLflow fit in the MLOps stack? The integration happens **inside the training script** that runs as part of a [Kubeflow Pipelines](https://devopscube.com/kubeflow-pipelines/). When the training component executes, the script connects to the **MLflow Tracking Server** using the configured tracking URI. ![How Kubeflow Pipeline sends data to MLflow](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/33651cb4-7fd8-4225-8e49-79e62caa9844/image.png?t=1784205494) During training, **it logs all model-related information to MLflow**, including hyperparameters, evaluation metrics, model artifacts, and metadata. Model artifacts are then pushed to the configured artifact store (such as Amazon S3). ## Setup Prerequisites Below are the prerequisites for the hands-on section we will do. - [Kubernetes Cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) - [Kubectl](https://devopscube.com/kubectl-set-context/) - [Helm](https://devopscube.com/create-helm-chart/) - [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/) configured with permissions for IAM roles, S3, and [EKS](https://devopscube.com/create-aws-eks-cluster-eksctl/). 💡 ****Important Note:** This setup guide is based on EKS cluster with S3 pod identity integration. If you are trying this out on different setup, you need to modify the S3 integration accordingly. ## Clone Repository We have pushed all the code files we will use in the hands-on part to our [GitHub repository](https://github.com/techiescamp/mlops-for-devops/?ref=devopscube.com). Fork or sync your forked MLOps repo to get the latest code changes. Check out [this guide](https://newsletter.devopscube.com/p/how-to-keep-your-fork-in-sync-with-upstream?ref=devopscube.com) to learn how to keep your fork up to date. You can find the files we will use in the following directories. ```bash . ├── phase-2-enterprise-setup │ └── mlflow │ ├── register_model.py │ ├── requirements.txt │ └── train_and_log_model.py └── platform-tools └── mlflow ├── helm/ ├── eks-s3.sh └── test-pod.yaml ``` Here, you can see the Helm chart to set up MLflow and scripts to train, log, and register a model in MLflow. ## MLflow on Kubernetes (EKS Hands-on) Now let’s put everything we learned into practice with a hands-on setup. Here is what we will do. - We will set up MLflow on Kubernetes. - Configure AWS S3 as an artifact store. - Run our employee attrition training locally to train and log employee attrition model details. - Explore the experiment, run details, artifacts, and registered model in the MLflow UI. ### How to Set Up MLflow on Kubernetes? Follow the steps to set up MLflow on an EKS cluster. #### Step 1: Create an S3 bucket We will use an AWS S3 bucket as the backend Artifact store. First, you need to create a bucket. Replace dcube-mlflow-artifact-store in the following command with a unique bucket name. ```bash aws s3api create-bucket \ --bucket dcube-mlflow-artifact-store \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --no-cli-pager ``` Verify the bucket exists. ```bash aws s3api head-bucket \ --bucket dcube-mlflow-artifact-store \ --no-cli-pager ``` #### Step 2: Deploy PostgreSQL Using Helm Chart Since we will be using PostgreSQL as the MLflow backend store, let's deploy it using [Helm](https://devopscube.com/helm-best-practices-essential-tips-to-know/). ```bash helm install mlflow-postgres oci://registry-1.docker.io/bitnamicharts/postgresql \ --namespace mlflow \ --create-namespace \ --set auth.username=mlflow \ --set auth.password=mlflow123 \ --set auth.database=mlflow \ --set primary.persistence.size=10Gi ``` ⚠️ Here, I have given the username and password directly. In production, store the secrets in external secret managers like AWS SecretsManager and call them during deployment. Ensure the Postgres pod is running. ```bash $ kubectl get po -n mlflow NAME READY STATUS RESTARTS AGE mlflow-postgres-postgresql-0 1/1 Running 0 35m ``` #### Step 3: Update the S3 bucket in the Helm Values File The next step is to customize the Helm values for the MLflow installation. Move into the **platform-tools/mlflow/helm** folder. ```bash cd platform-tools/mlflow/helm ``` You will find the **mlflow.yaml** values file inside it. In that file, replace with your S3 bucket name in artifactsDestination. ![mlflow helm values file for s3 bucket](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/1e60001f-8c4d-4426-9230-eb927d653441/image.png?t=1784089710) The **mlflow.yaml** also contains the predefined PostgreSQL service endpoint we set up in the previous step. We are enabling NodePort in the values to access the MLflow UI. Also, in the values file, you will see options like: ```yaml server: flag_options: - serve_artifacts value_options: host: "0.0.0.0" allowed_hosts: "*" cors_allowed_origins: "*" ``` In this, **serve\_artifacts** makes MLflow upload the artifact to the artifact store. Without it, the client uploads the artifact directly to S3, and you need to provide the client with S3 credentials. The **host** makes the MLflow pod listen on all interfaces. The **allowed\_hosts** and **cors\_allowed\_origins** are security options that control which hosts and origins are allowed to connect to MLflow. If the proper host address is not defined in **allowed\_hosts**, you will get the following error when you try to connect to MLflow. ```bash Invalid Host header - possible DNS rebinding attack detected ``` Here, we set both to \*, so that MLflow can be accessed without restrictions. 💡 Use wildcard(\*) only for testing, use proper host URL for production environment. We will see about the security options in the upcoming section. #### Step 4: Deploy MLflow Now, let's deploy MLflow on the Kubernetes cluster using the Helm Chart. Run the following helm install command inside the **platform-tools/mlflow/helm** folder. ```bash helm install mlflow . --namespace mlflow -f mlflow.yaml ``` Run the following command to check if the pods are up and running. ```bash $ kubectl get po -n mlflow NAME READY STATUS RESTARTS AGE mlflow-mlflow-68cddb7f64-r277z 1/1 Running 0 98s mlflow-postgres-postgresql-0 1/1 Running 0 58m ``` #### Step 5: Access the MLflow UI You can access the MLflow UI using the NodePort we exposed. You can get the NodePort using the following command. ```bash kubectl get svc mlflow-mlflow -n mlflow ``` Or you can use the following port-forward command. Keep this ```bash kubectl port-forward deployment/mlflow-mlflow 5000:5000 -n mlflow ``` You should be able to access the UI at **localhost:5000** in your browser, as shown below. ![image showing mlflow ui being accessed over localhost](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/b063ef51-a374-40e6-9c08-18dc0250a49a/image.png?t=1784093733) #### Step 6: Configure EKS Pod Identity for S3 Access Next, you need to set up AWS EKS Pod Identity so that your MLflow deployment can **securely access an S3 bucket** without storing AWS credentials in Kubernetes. All the steps required for the s3 role creation and eks pod identity association are part of the **eks-s3.sh** shell script in the **platform-tools/mlflow** folder. Open the shell script and update the following variables shown in the image with your EKS cluster and bucket names. ![shell script to give mlflow access to aws s3](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/9a9721f0-9fc3-445d-a992-5bb4bf8b3292/image.png?t=1784096352) Once updated, execute the shell script with the create input. ```bash $ chmod +x eks-s3.sh $ ./eks-s3.sh create ``` You should see all the roles and association details in the script output. Now the setup is complete; let’s move on to the MLflow components setup ### Run the Training Script ⚠️ ****Important:** The training script used in this blog is only meant to help you understand how MLflow works. Now, we are going to run a training script, it does the following. - Trains a scikit-learn Gradient Boosting model using the employee attrition dataset. - Logs the model, training parameters, and evaluation metrics (Accuracy, Precision, Recall, F1-score, and ROC-AUC) to the MLflow Tracking Server. You will find a **train\_and\_log\_model.py** script inside the **phase-2-enterprise-setup/mlflow** folder. Now, open the Python script and **replace the MLFLOW\_TRACKING\_URI** with the EKS node IP and NodePort address. Alternatively, if you're using kubectl port-forward, set it to **http://127.0.0.1:5000** instead. ![Python script where MLFLOW_TRACKING_URI is updated with MLFlow URL](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/390b134b-060f-4df5-9f15-ae9be178c477/image.png?t=1784188239) Now, create a Python environment and install the dependencies. ```bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` Once installed, run the **train\_and\_log\_model** Python script. ```bash python train_and_log_model.py ``` Once you execute the script, the `log_params()`, `log_metrics()`, and `set_tags()` send **metadata**, while `mlflow.sklearn.log_model()` sends the **actual trained model** (model.skops) to MLflow along with the files needed to reproduce and serve it. ### Explore the Run in the UI Now, if you visit the MLflow UI, you will find the **employee-attrition experiment** created as shown below. Each execution of the training script **creates a new run** under this experiment. ![Image showing mlflow experiment details on MLFlow UI](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/113782df-f854-4907-a133-d713c3ed4634/image.png?t=1784188335) If you click the **employee-attrition experiment,** it will show all the training runs. If you select a specific run, you can view everything logged during training, including Parameters, Metrics, Model artifacts, etc. The following animated GIF shows it better. ![GIF demo showing how to view the logged model in a mlflow run](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/811f5644-1c0e-4fb9-b0c9-f1d6aa9b1595/mlflow-log3.gif?t=1784199665) 💡 Every training run creates a model artifact, and you can view them under models. However, not all models become part of the Model Registry. Data scientists select the best model and register it so that it becomes part of the Model Registry. This process is covered in the section below. If you expand the **Artifacts** section of a specific run and select the **MLmodel metadata file**, you can view the s3 artifact location. ![viewing mlflow mlmodel metedata file in MLFlow UI](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/0eb1b455-e6cc-4c5c-b6a9-c933664f0ec7/image.png?t=1784114270) If you browse the configured S3 bucket, you will find the same model files that MLflow uploaded during training. ### Model Signature If you scroll down a little further in the MLmodel metadata file, you'll see the **model signature**, as shown below. ![mlflow model signature](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/41e1f44b-b62a-4ec2-9822-3315362bbf15/image.png?t=1784189003) Every model **expects inputs in a certain schema** and format. If you pass inputs that don't match what the model expects, it may give the wrong predictions *So how do you know what inputs the model expects?* That's what a model signature solves A model signature is the schema of a machine learning model. It **defines the expected input features**, their data types, the prediction output format, and optional inference parameters For any consumer of the model, **it acts as a contract**. Meaning anyone pulling the model from the registry knows exactly what the model expects as input and what the expected output format is. For teams deploying the model, the signature is like an API spec for the model. As a [DevOps engineer](https://devopscube.com/become-devops-engineer/), after deployment, you verify that the APIs work as expected using the API spec. Using the model signature, you can do the same for model deployments. From the tooling perspective, [CI/CD tools](https://devopscube.com/learning-ci-cd-tools/) can use the signature to compare the schema changes against the production model before deployment. ![image showing how mlflow model signature is used by different teams](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/51f8c503-bd83-45fa-beff-455ddbb875f3/image.png?t=1784777856) 💡 The signature solves the feature order problem. It gives you the exact order of features that need to be passed to the model during inference. ### Comparing Training Runs Training is usually not a one-time activity. Data scientists **train the model multiple times** using different algorithms, hyperparameters, and datasets. Then they can **select the runs in the UI** and **use the compare feature** to determine which training run produced the best model, as shown below. ![GIF demo shosing how to compare training runs on mlflow](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/3d3d3664-0b48-482e-a0e6-72a3c42931ed/mlflow-compare.gif?t=1784197559) This makes it easy for data scientists to determine which run to deploy. ### Register & Promote the Best Model in Model Registry After comparing multiple runs, the data scientist team selects the **best-performing model** and registers it in the **Model Registry**. This creates a new version of the registered model that stores its artifacts, metadata, metrics, lineage, and version history. We will use the Python script **register\_model.py** inside the **phase-2-enterprise-setup/mlflow** folder to register and promote the model. Open the script and update the tracking uri and run id. ![updating mlflow tracking uri and run id in the model register and promoting script](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-65.png) To get the Run ID, open the model run you want to register and promote, you will get the Run ID as shown below. ![finding run id in mlflow ui](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-64.png) Once the details are updated, run the script **register\_model**. ```bash python register_model.py ``` This script registers the model and assigns the **production alias champion** tag to the model. The **@champion** alias acts like a **:stable** container image tag. It always points to the model version approved for production deployment. This allows deployment systems to reference **models:/my-model@champion** without hardcoding version numbers. ![MLFLow UI showing registered ml models with @champion alias](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/ad26eae3-d836-4d07-8401-2f59f04e49c2/mlflow-registry.gif?t=1784197648) 💡 In production MLOps setups, this entire workflow is automated through CI/CD pipelines. After a model passes predefined quality gates such as ****accuracy ≥ 95%**, ****F1 score ≥ 94%**, and ****data quality validation**, the pipeline automatically registers the model, promotes it with an alias like ****Champion**, and deploys it to the inference platform. ## Cleanup Once you have tested the setup, run the following commands to clean it up. ```bash $ helm uninstall mlflow -n mlflow $ helm uninstall mlflow-postgres -n mlflow $ ./eks-s3.sh cleanup $ aws s3 rb s3://dcube-mlflow-artifact-store --force ``` ## What's the Difference Between Model Registry and Artifact Store? Many people who use MLflow confuse the Model Registry and the Artifact Store. To put it simply, the Model Registry is a feature of the MLflow tracking server that versions models. And the artifact store is an external object storage configured in MLflow to store the model files. ## MLflow Security Features After MLflow version 3.5.0, new security features have been added to MLflow. The first two features we saw in Step 3. - **DNS Rebinding Protection** (allowed\_hosts) - This only accepts traffic from hosts in the allowed list. - **CORS Protection (cors\_allowed\_origins)** \- Only allow specific domains or browsers to call the MLflow tracking API. Even if you open the MLflow UI, if the origin does not match, you will get a 403 status code. - **Clickjacking Prevention** \- Stop others from embedding the MLflow UI into their own page. - **Security Headers** \- Stop the browser from accepting unsupported or not-recommended file types or files with hidden scripts to prevent attacks from the browser. ## Conclusion In this blog, we have learned about MLflow and what it's for. And we have registered our best model as **employee-attrition@champion**. Now, how do we actually serve it to real users at scale? In the next blog, we will look at what [KServe](https://devopscube.com/deploy-ml-model-kubernetes-kserve/) is, and how it pulls the registered **@champion** model from MLflow and deploys it on Kubernetes as a scalable inference service. ### Steampipe Tutorial: Query AWS and Kubernetes Infrastructure With SQL URL: https://devopscube.com/steampipe-tutorial/ Last updated: 2026-09-15T10:20:14.000Z How many times have you opened the AWS console and other tools just to answer a simple question like: - *Which resources don't have the required labels?* - *Are there any storage buckets that can be accessed publicly?* - *Which Kubernetes namespaces don't have NetworkPolicies?* - Which Terraform resources are missing encryption settings? The answers are there, but finding them often means jumping between services, checking multiple accounts, or writing scripts. What if you could answer these questions using a simple SQL query? That is exactly what [**Steampipe**](https://github.com/turbot/steampipe?ref=devopscube.com) helps you do. I have used **Steampipe** for a security project, and it worked very well for my use case. In this blog, I have covered how to use **Steampipe** and its key use cases/ Let's get started. ## What is Steampipe? [Steampipe](https://steampipe.io/?utm%5Fcampaign=query-your-cloud-kubernetes-like-a-database&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com) is an open-source tool that lets you **query your cloud infrastructure using SQL** as shown in the image below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/68747470733a2f2f737465616d706970652e696f2f696d616765732f737465616d706970652d73716c2d64656d6f2e676966--1-.gif) Instead of navigating through multiple pages in a cloud console, you can ask questions about your infrastructure using simple SQL queries. For example, you can quickly find **publicly accessible S3 buckets** across your AWS accounts. ## Who is Steampipe for? Steampipe is mainly useful for people who need to answer questions about cloud infrastructure rather than constantly monitor it. - **Cloud security engineers** can use it for quick security audits, compliance checks, and evidence gathering without manually navigating the AWS console. - **DevOps and platform engineers** can use it to get a quick inventory of infrastructure across regions and accounts, or build simple checks into their workflows. - **FinOps teams** can use it to identify resources that cost money without providing much value and to combine cost data with information about the resources themselves. It is also useful for consultants, auditors, or anyone who has just inherited a cloud account and needs to understand what is actually running in it. ## **How Does Steampipe Work?** The following diagram illustrates how Steampipe enables querying cloud resources using SQL. ![Steampipe architecture showing how SQL queries use PostgreSQL and FDW plugins to retrieve cloud and Kubernetes data as virtual table rows and columns.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-75.png) Steampipe runs a lightweight PostgreSQL database locally and connects to your cloud using your **existing credentials**. When you run a SQL query, 1. Steampipe receives the SQL query. 2. The relevant plugin translates it into cloud API calls. 3. The cloud provider returns the requested resource data. 4. Steampipe maps the data into rows and columns. 5. PostgreSQL returns the result to your terminal. Under the hood, Steampipe plugins use PostgreSQL [**Foreign Data Wrappers (FDWs)**](https://www.percona.com/blog/foreign-data-wrappers-in-postgresql-databases-postgres%5Ffdw-dblink/?utm%5Fcampaign=query-your-cloud-kubernetes-like-a-database&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com). This allows external resources such as AWS, Azure, GCP, and [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/) to appear as regular database tables. For example, the AWS plugin translates your SQL query into calls to the relevant AWS APIs. ## Installation and setup ### macOS The recommended way on macOS is by using Homebrew. If you don’t have Homebrew installed, you can get it at [brew.sh](http://brew.sh/?ref=devopscube.com). ``` brew install turbot/tap/steampipe ``` Verify installation: ``` steampipe -v ``` ### Linux Run the one-step installer script: ``` sudo /bin/sh -c "$(curl -fsSL https://steampipe.io/install/steampipe.sh)" ``` This downloads the Steampipe binary, installs it to `/usr/local/bin`, and then creates a `.steampipe` directory in your home folder that contains all supporting libraries and configuration. ### Windows Steampipe on Windows requires WSL2 (Windows Subsystem for Linux). Once WSL2 is set up, you can either use the Linux installer above in your WSL terminal, or run the native Windows installer using PowerShell: ``` iwr -useb https://steampipe.io/install/steampipe.ps1 | iex ``` ### Installing Plugins Steampipe does not inherently know about AWS, GCP, or any cloud provider. You need to install a plugin for the service you want to query. Plugins are available for GCP, Azure, GitHub, [Kubernetes](https://devopscube.com/setup-kubernetes-cluster-kubeadm/), and many more. You can check them out at [hub.steampipe.io](http://hub.steampipe.io/?ref=devopscube.com). For example, I am using [AWS](https://devopscube.com/aws-vpc-design/) and Kubernetes. You can install the plugins using the following commands. ```bash steampipe plugin install aws teampipe plugin install kubernetes ``` ## Credentials and permissions One thing worth clarifying is how Steampipe actually connects to AWS. The AWS plugin uses the AWS SDK, not the [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/). But it uses the same standard AWS credential chain, so it can pick up credentials from environment variables, AWS profiles, SSO, and IAM roles depending on where it is running. In practice, the rule of thumb is simple: if aws `ec2 describe-vpcs` works in your terminal, you’re already most of the way there. Steampipe can use the same AWS credentials to query your account. You don’t need to create a separate set of credentials just for Steampipe. The AWS plugin also exposes hundreds of AWS tables, including [EC2](https://devopscube.com/use-aws-cli-create-ec2-instance/), S3, IAM, EBS, [CloudWatch](https://devopscube.com/how-to-setup-and-push-serverapplication-logs-to-aws-cloudwatch/), and Cost Explorer data. ## Querying Multiple Accounts at Once Most people don't have one AWS account; they have several. Steampipe lets you define a connection per profile and group them into an aggregator in `~/.steampipe/config/aws.spc`: ```hcl connection "aws_all" { plugin = "aws" type = "aggregator" connections = ["aws_prod", "aws_staging", "aws_dev"] } ``` Now you can query all of them together: ```sql select account_id, name, region from aws_all.aws_s3_bucket; ``` One query per account; no looping over profiles yourself. ## How to use Steampipe? 💡 ****Important Note:** You can find the query syntax in the Steampipe plugin documentation. For example, for AWS, refer to the AWS tables, and for Kubernetes, refer to the Kubernetes tables. **Running a Query Directly:** You can run a one-off query straight from your terminal: ```sql steampipe query "select name, region from aws_s3_bucket" ``` **Using the Interactive Shell:** For exploring your infrastructure, the interactive shell is more convenient. It supports tab-completion and query history: ```bash steampipe query ``` This drops you a prompt where you can type queries and press Enter to run them: ```sql > select instance_id, instance_type, region from aws_ec2_instance where instance_state = 'running'; ``` Press Ctrl+D or type .exit to leave. **Running a Query From a File:** For queries you want to save and reuse, put them in a .sql file and pass it to Steampipe. For example: ```bash steampipe query my_checks.sql ``` You can also save the output as JSON or CSV, making it easier to use the results in scripts or other tools. ``` steampipe query my_checks.sql --output json ``` ## **Practical Steampipe Examples** Now, let’s look at some practical use cases for Steampipe. ### **1\. Cloud Security Checks** In cloud security, questions like “is there anything exposed that shouldn’t be?” are very common. Steampipe is built to answer these kinds of questions. Finding all publicly accessible buckets across your account almost always means checking each one individually or setting up AWS Config. With Steampipe: ```sql > select name, region from aws_s3_bucket where bucket_policy_is_public = true; +-------------------------------------------+-----------+ | name | region | +-------------------------------------------+-----------+ | static-web-arun-637423664276-us-west-2-an | us-west-2 | +-------------------------------------------+-----------+ 1 row ``` Similarly, to **find users without multi-factor authentication,** you can run the following query. ```sql select name, mfa_enabled from aws_iam_user where mfa_enabled = false; ``` These kinds of checks are run regularly by security teams. ### 2\. Cross-Service Questions Without Custom Scripts Suppose you want to identify which running EC2 instances are associated with a security group that allows unrestricted inbound traffic. That question spans two services, EC2 and VPC security groups. Answering it normally means either writing a script that calls both APIs and combines the results, or doing it manually. With Steampipe, you can write one query that joins the two tables: ```sql select i.instance_id, i.instance_type, sg.group_name from aws_ec2_instance as i cross join lateral jsonb_array_elements(i.security_groups) as s join aws_vpc_security_group as sg on sg.group_id = s->>'GroupId' where i.instance_state = 'running'; ``` This is where Steampipe starts becoming really useful. You’re not just querying one AWS service anymore. You’re combining information from different parts of your infrastructure with normal SQL. ### 3\. Tagging Compliance Tags are labels you attach to cloud resources, things like Environment: Production or Team: Backend. They’re used for cost tracking, access control, and general organization. Sometimes people forget to tag resources, and you end up with infrastructure that nobody can clearly identify. Finding the untagged ones without a tool like Steampipe means going service by service. With Steampipe: ``` select instance_id, instance_type, region from aws_ec2_instance where tags is null or tags = '{}'; ``` You can run the same idea against other resource types and get a list of what is missing. AWS Tag Policy can help [enforce tagging rules](https://devopscube.com/aws-tag-policy/) natively, but Steampipe is useful for quickly inspecting what is actually in the account. ### 4\. FinOps and Cost Visibility Steampipe’s AWS plugin exposes Cost Explorer data as tables, including costs by account, service, region, and tag, as well as forecasts and usage. For example, you can find which services are driving the most cost: ```sql select service, period_start, unblended_cost_amount from aws_cost_by_service_monthly where period_start > now() - interval '3 months' order by unblended_cost_amount desc limit 10; ``` 💡 One thing worth knowing: Cost Explorer API calls cost $0.01 each, unlike the resource tables which are free. Don't put one of these in a loop. You can also look for obvious waste, such as EBS volumes that exist but aren’t attached to anything: ``` select volume_id, size, create_time from aws_ebs_volume where state = 'available'; ``` An available [EBS volume](https://devopscube.com/mount-ebs-volume-ec2-instance/) means it exists, you’re paying for it, and nothing is using it. The interesting part is when you combine cost and infrastructure data. For example, you can find running EC2 instances that have not been doing much: ```sql select i.instance_id, i.instance_type, i.tags ->> 'Team' as team, avg(m.average) as avg_cpu from aws_ec2_instance i inner join aws_ec2_instance_metric_cpu_utilization_daily m on i.instance_id = m.instance_id where i.instance_state = 'running' and m.timestamp > now() - interval '14 days' group by i.instance_id, i.instance_type, i.tags ->> 'Team' having avg(m.average) < 5; ``` Output shows, ```bash +---------------------+---------------+--------+--------------------+ | instance_id | instance_type | team | avg_cpu | +---------------------+---------------+--------+--------------------+ | i-0a8f3af65dc9f88a7 | t3.medium | | 3.9168023811790946 | | i-0be76f42014452666 | t3.medium | | 4.479497081730911 | +---------------------+---------------+--------+--------------------+ 2 rows ``` Now you’re looking at instances that have averaged less than 5% CPU for two weeks, grouped by the team that owns them. That’s not just an infrastructure query anymore. That’s something a [FinOps](https://devopscube.com/best-finops-certifications/) team can actually use to find resources that might be wasting money. The AWS plugin also exposes `aws_costoptimizationhub_recommendation`, so AWS’s own cost optimization recommendations can be queried alongside your infrastructure data. ### 5\. Kubernetes Configuration Auditing In a [Kubernetes cluster](https://devopscube.com/production-ready-kubernetes-cluster/), you may want to know **which containers are running without CPU or memory limits**. For example, to find [containers](https://devopscube.com/kubernetes-init-containers/) without memory limits: ```sql select name as pod_name, namespace, c ->> 'name' as container_name from kubernetes_pod, jsonb_array_elements(containers) as c where c -> 'resources' -> 'limits' ->> 'memory' is null; ``` ## Is Steampipe Worth Using? Based on our testing, Steampipe is most useful when you need a quick answer from live cloud data and do not want to write a custom script. Its strongest use cases that we found useful are cross-service investigation, multi-account inventory, one-time security checks, and [FinOps](https://devopscube.com/finops-certified-practitioner-study-guide/) exploration. We would not use it alone for continuous compliance, configuration history, alerting, or automated remediation. ## Conclusion The useful thing about Steampipe is that you can ask questions about your infrastructure without having to build a script every time you need an answer. Need to find public S3 buckets? Write a query. Need to check which instances are missing tags? Query it. Need to look across multiple AWS accounts or combine data from different services? It’s the same SQL interface. It’s not trying to replace [AWS Config](https://aws.amazon.com/config/?ref=devopscube.com), a CSPM platform, or your monitoring stack. It’s just a much easier way to investigate what’s actually in your cloud when you need an answer. ### Kubeflow Trainer Guide: Distributed ML Training on Kubernetes URL: https://devopscube.com/kubeflow-trainer/ Last updated: 2026-09-17T11:54:21.000Z Want to know how to run distributed ML Training with Kubeflow Trainer? Then this detailed guide is for you. In the previous blog, we explained how [Kubeflow Pipelines](https://devopscube.com/kubeflow-pipelines/) turns an ML workflow into a series of containerized steps. In this guide, we will look at one important step in the Kubeflow ML pipeline. **The training step**. In that step, the **pipeline delegates the training job** to Kubeflow Trainer, as shown in the image below. ![Kubeflow Pipeline workflow showing data preparation and model training stages, with Kubeflow Trainer creating TrainJob resources and launching worker pods.](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/ebb6f824-0c54-4a84-a035-dfb9d60b6760/image.png?t=1783490115) To understand the need for the Kubeflow Trainer, first you need to understand why we need Distributed Training. Let's get started. ## A Look Into Distributed Training When we train a machine learning model, it processes vast amounts of data, performs billions of mathematical operations, and updates its parameters repeatedly. **For small models, a CPU is enough**. For example, a [scikit-learn](https://devopscube.com/list-best-frameworks-data-scientists/) model trained on 500,000 rows of data does not need a [GPU](https://devopscube.com/setup-gpu-operator-kubernetes/), it can run on a CPU smoothly. But as models grow larger, training involves massive matrix operations that must run in parallel. **That's where GPUs come in**. Unlike CPUs, GPUs are designed to perform thousands of calculations in parallel. For many deep learning models, a single GPU is enough. Now, **when it comes to large language models**, things change. They contain billions of parameters. Too large to fit into a single GPU's memory. And even if the model somehow fits, training on one GPU would take months. So ML teams split the model and the data across multiple GPUs running on multiple servers. **This is called distributed training.** The following image illustrates it better. ![comparison of training resource needed to train small to large ml models](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/28b653f4-11b7-4087-a3ed-5005ff57d853/image.png?t=1783916885) Here is what happens at a high level. - The training job is split across multiple worker processes. - Each worker runs on a different GPU. - The workers process different parts of the data. - They calculate updates and sync with each other so every worker stays consistent with the same model. - Together, all workers behave like one large training system. And this is where things become interesting from an infrastructure point of view. Because distributed training is **not just about running ML code on multiple GPUs**. Behind the scenes, you need to handle scheduling, networking between workers, shared storage, GPU allocation, etc. This is the complexity Kubeflow Trainer helps solve. ## What is Kubeflow Trainer? When ML engineers train large models or fine-tune LLMs, the **training process often needs multiple GPUs** running across multiple Kubernetes nodes. For this, you need the following. - Creating multiple worker pods - Assigning GPU resources - Configuring communication between workers - Tracking training job status and more... Kubeflow Trainer helps in doing all these in Kubernetes-native way and abstracts away all the complexities. In simple terms, with Kubeflow Trainer, ML engineers define a **TrainJob custom resource**, and Kubeflow takes care of creating and managing the required infrastructure for distributed training. ## Kubeflow Trainer Custom Resources Kubeflow Trainer is basically a [Kubernetes Operator implementation](https://courses.devopscube.com/courses/certified-kubernetes-administrator-course/lectures/58698982?ref=devopscube.com). So it comes with specific custom resource definitions for ML engineers, Platform engineers, and MLOps Engineers to manage and deploy Training Jobs. **It has three key CRD’s**. Let's look at each custom resource in detail and who uses it. ### ClusterTrainingRuntime (cluster-scoped) It is managed by Platform engineers/AI infrastructure teams. It defines the following - Which container image? - Which ML framework? (PyTorch, XGBoost, etc.) - How many nodes? - CPU/GPU requirements, and more... In short, it defines a **cluster-scoped, reusable default training runtime** shared across teams with standard training environments and infrastructure policies. Here is an example CRD. ![kubeflow trainers ClusterTrainingRuntime crd manifest](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/38e4ac8e-1de8-4261-9eb3-2d620be0d769/image.png?t=1783422614) Think of it like a **golden template created by the platform team**. ML engineers focus on training code, while infrastructure standards remain consistent. ### TrainingRuntime (namespace-scoped) It is managed by MLOps engineers or individual teams. TrainingRuntime is the same concept as ClusterTrainingRuntime. The main difference is scope. It is a namespace-scoped runtime template, and you have to create it for each namespace if needed. In the CRD, the only change is the addition of the namespace parameter compared to ClusterTrainingRuntime. ### TrainJob It is used by ML engineers / AI engineers. It **defines the actual training workload**, including training code, dataset configuration, model parameters, and a reference to a TrainingRuntime or ClusterTrainingRuntime. Here is an example **TrainJob** CRD. ![kubeflow trainers TrainJob crd manifest](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-32.png) Using this CRD, ML engineers can **customize workload-specific configurations** such as container image, CPU, memory, and GPU requirements without modifying the default TrainingRuntime or ClusterTrainingRuntime managed by the platform team. ## How Kubeflow Trainer Works Internally The following image illustrates the high-level overview of how Kubeflow Trainer works. ![Kubeflow Trainer architecture showing TrainJob, trainer controller, JobSet, runtime templates, and distributed GPU training with leader and worker pods.](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/25a7f9cf-6458-459d-82dd-a362039f9dbe/image.png?t=1783512165) When a user creates a TrainJob, Kubeflow Trainer does not directly create training pods. Instead, it converts the TrainJob into a [**JobSet**](https://jobset.sigs.k8s.io/docs/overview/?ref=devopscube.com). A JobSet is a Kubernetes-native API designed for distributed workloads. It **manages a group of related** [**Kubernetes Jobs**](https://devopscube.com/create-kubernetes-jobs-cron-jobs/) that need to run together. For example, in distributed AI training, you may need, - 1 coordinator node - multiple worker nodes - GPU-based training pods JobSet ensures these components are created and managed as a single training workload. Now let's look at the three key components of Kubeflow Trainer. ### kubeflow-trainer-controller-manager This is the main controller of Kubeflow Trainer. It watches for TrainJob resources created by users. When a TrainJob is submitted, the controller combines TrainJob, TrainingRuntime & ClusterTrainingRuntime and generates a JobSet resource. ### jobset-controller The JobSet controller takes care of the actual distributed job orchestration. It watches JobSet resources and **creates the required Kubernetes Jobs and training pods.** It also manages the lifecycle of these workloads. ### lws-controller-manager LeaderWorkerSet (LWS) controller is an optional component used for Kubeflow Trainer’s Distributed Data Cache feature. It is not required for normal TrainJob execution. When Distributed Data Cache is enabled, the LWS controller manages the leader-worker cache workloads that help stream large datasets efficiently to GPU nodes during training. 💡 Kubeflow trainer worker pods can communicate with each other through ****NCCL** or ****Gloo** protocols for effective [gradient synchronization](https://huggingface.co/docs/accelerate/en/concept%5Fguides/gradient%5Fsynchronization?ref=devopscube.com) in distributed training, whether they are running on CPU or GPU nodes. ## Setup Prerequisites Below are the Prerequisites for this setup. Make sure you have the following before starting the hands-on part. - [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) with at least two nodes to test distributed training - [kubectl](https://devopscube.com/kubectl-set-context/) - [Helm](https://devopscube.com/create-helm-chart/) ## Kubeflow Trainer Project Files We have pushed the code files we will use in the hands-on section to our [GitHub repository](https://github.com/techiescamp/mlops-for-devops.git?ref=devopscube.com). Fork or sync our forked [MLOps](https://devopscube.com/devops-to-mlops/) repo to get the latest code changes. Check out [this guide](https://newsletter.devopscube.com/p/how-to-keep-your-fork-in-sync-with-upstream?ref=devopscube.com) to learn how to keep your fork up to date. Inside the repo, the **phase-2-enterprise-setup/kubeflow-trainer** folder contains the config file used to create the TrainJob custom resource. ```bash . └── phase-2-enterprise-setup └── kubeflow-trainer ├── trainjob.yaml └── train.py ``` Here you can see a YAML file and a Python file that we will use to create the TrainJob CRD, each for a different creation method. ## Hands-on: Run a Distributed PyTorch Training Job Now let’s put everything we learned into practice with a hands-on setup. Here is what we will do. - We will set up Kubeflow Trainer on Kubernetes. - We will run a distributed [PyTorch](https://devopscube.com/pytorch-certified-associate-exam-guide/) training job using the **torch-distributed ClusterTrainingRuntime** that works on CPU. - We will understand how Kubeflow Trainer creates and manages distributed training workloads. - We will validate the training job and verify the results. ### Set up Kubeflow Trainer on Kubernetes We will set up a **standalone Kubeflow Trainer** using the official Helm chart. Run the following command to deploy Kubeflow Trainer. ```bash helm install kubeflow-trainer oci://ghcr.io/kubeflow/charts/kubeflow-trainer \ --namespace kubeflow-system \ --create-namespace \ --version 2.2.1 \ --set runtimes.defaultEnabled=true ``` In the above command, I have added the **\--set runtimes.defaultEnabled=true** flag to enable all the default training runtimes. 💡 Default runtimes are preconfigured training templates provided by Kubeflow Trainer. It typically includes ready-to-use configurations for ML frameworks such as PyTorch, MPI, JAX etc.. For more configurations, use the following command to get the default values file. ```bash helm show values oci://ghcr.io/kubeflow/charts/kubeflow-trainer --version 2.2.0 > values.yaml ``` After the installation, ensure the trainer pod and jobset controller are in a running state. ```bash $ kubectl get po -n kubeflow-system NAME READY STATUS RESTARTS AGE jobset-controller-67f6757844-4gffm 1/1 Running 0 3m34s kubeflow-trainer-controller-manager-d68b55dd4-5fbkm 1/1 Running 0 3m34s ``` To verify the available default runtimes, run the following command. ```bash $ kubectl get clustertrainingruntimes NAME AGE deepspeed-distributed 6m30s jax-distributed 6m30s mlx-distributed 6m30s torch-distributed 6m30s torchtune-llama3.2-1b 6m30s torchtune-llama3.2-3b 6m30s torchtune-qwen2.5-1.5b 6m30s xgboost-distributed 6m30s ``` In the list above, we cannot use all runtimes across all cluster types. In that, `torch-distributed`, `jax-distributed`, `xgboost-distributed` can run training on CPU nodes. And, `deepspeed-distributed`, `torchtune-*` runtimes are for GPU nodes, and `mlx-distributed` is for Apple Silicon. ### Create A TrainJob For testing, we will use the torch-distributed runtime, which runs the training workload on CPUs. In this example, we will **perform distributed training** with two worker pods. Each pod processes a portion of the training data and synchronizes with the other worker to train the model, as shown below. ![kubeflow trainers jobset controller splitting workloads on two different kubernetes nodes](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,quality=80,format=auto,onerror=redirect/uploads/asset/file/dbb87f19-407d-4bbe-83cd-b4a9b3ff84dc/image.png?t=1783441944) You can find the **trainjob.yaml** manifest under **phase-2-enterprise-setup/kubeflow-trainer** folder 💡 The trainjob.yaml manifest has the Python training script defined inside the args section. The script creates sample data and a simple neural network model, runs distributed training across workers, and saves the final trained model inside the worker pod (specifically the rank 0 worker pod). Let's deploy the TrainJob. ```bash $ kubectl apply -f trainjob.yaml trainjob.trainer.kubeflow.org/distributed-training created ``` Once it is applied, use the following command to list the training pods. You will see two pods created by TrainJobs on two different nodes for distributed training. ```bash $ kubectl get po -n kubeflow-system -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES distributed-training-node-0-0-p57fq 0/1 ContainerCreating 0 36s ip-172-31-45-62.us-west-2.compute.internal distributed-training-node-0-1-7lh46 0/1 ContainerCreating 0 36s ip-172-31-5-41.us-west-2.compute.internal ``` Since the deployed pods are created as Kubernetes Jobs, they will move to the completed state once the training script executes successfully. Since there is no PersistentVolume (PV/PVC) or external storage configured, the saved model in the pod will be lost when the pod gets deleted after the training job completes. For this hands-on example, /tmp/model.pt is mainly used to validate that the distributed training completed successfully. 💡 ****Key Production** ****Insight** In production environments, the trained model and training artifacts are typically stored in model registry like MLflow or similar model registry tools. These tools help track experiments, manage model versions, and maintain the lifecycle of trained models. ### Triggering Training From SDK When ML engineers work on training workflows, they can use the Kubeflow SDK to trigger training jobs directly from their workstation. You can try this using the **`train.py`** script available in the kubeflow-trainer folder. 💡 ****Note:** When running the script, the SDK uses the `~/.kube/config` file to connect to the Kubernetes cluster and create the TrainJob. Let’s set up the Python environment and install the Kubeflow SDK. ```bash python3 -m venv venv source venv/bin/activate pip install kubeflow ``` Then, run the `train.py` script to create the TrainJob. ```bash $ python3 train.py ``` Once the Python script is run, it submits the training job to [Kubernetes](https://devopscube.com/kubernetes-ingress-tutorial/) and prints the training details to the terminal. ![kubeflow trainers training output](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-63.png) ## Clean Up If you no longer need Kubeflow Trainer, run the following command to uninstall it. ```bash helm uninstall kubeflow-trainer -n kubeflow-system ``` This will remove the resource created by the trainer Helm chart. ## Running ML Training Jobs on GPU Nodes You might be wondering how we can run training jobs on GPU nodes, since we used a simple CPU-based training example. To run training workloads on GPUs, the **Kubernetes cluster should have GPU-enabled nodes** with the required GPU drivers and device plugins configured. Also, default runtimes may not work because GPU nodes usually have taints, and the default runtimes do not include the required tolerations. To solve this, you need to create a **custom runtime with GPU tolerations and node selectors**, then use it in your TrainJob to schedule workloads on GPU nodes. For example, the following **ClusterTrainingRuntime** spec configures GPU scheduling by adding the required tolerations, node selector, and GPU-enabled training image. ```yaml spec: tolerations: - key: "nvidia.com/gpu" operator: "Exists" effect: "NoSchedule" nodeSelector: doks.digitalocean.com/gpu-model: h200 containers: - name: node image: pytorch/pytorch:2.5.1-cuda12.1-cudnn9-runtime ``` Now, any TrainJob that references this runtime will be scheduled on GPU nodes and can access GPUs according to the configured resource requests. ## How to Create Namespace-Scoped Kubeflow Trainer Runtimes? The default training runtimes are cluster-scoped. If you want namespace scoped, create a `TrainingRuntime` as follows. ```yaml apiVersion: trainer.kubeflow.org/v1alpha1 kind: TrainingRuntime metadata: name: torch-distributed-gpu namespace: kubeflow-system labels: trainer.kubeflow.org/framework: torch spec: mlPolicy: numNodes: 1 template: spec: replicatedJobs: . . . . . . ``` Basically, the structures of `ClusterTrainingRuntime` and `TrainingRuntime` are the same; you just need to change the Kind. And when using it in a TrainJob, don't forget to set the **`spec.runtimeRef.kind`** to **`TrainingRuntime`** as shown below. ![manifest example to use namespace scoped Kubeflow TrainerRuntime](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-62.png) ## Conclusion Now you have a good idea of how models are trained using Kubeflow Trainer in the Kubeflow Pipelines. After training, the next step is to track every training run, log parameters and metrics, and properly version trained models. That is done using **MLflow.** The TrainJobs you learned in this blog create the training outputs, and MLflow helps track, version, and manage them. We will cover [MLflow](https://devopscube.com/mlflow-tutorial/) in the next blog. ### How to Self-Host Ghost Platform (A Complete Guide) URL: https://devopscube.com/self-host-ghost-platform/ Last updated: 2026-09-07T06:21:11.000Z Looking for an end-to-end guide to self-host the Ghost platform? Then this guide is for you. We have been using Ghost for many years now. In fact, DevOpscube is running on the Ghost platform. Although we use managed Ghost hosting, we do development and testing in our self-hosted setup with a proper CI/CD setup. In this guide, we have covered the following. - Ghost self-hosted setup architecture - How all self-hosted Ghost components work - Setting up the whole stack using Docker Compose - SMTP setup and configuration for transactional emails - Mailgun configuration for newsletter setup and more.. Overall, we have covered all the essential setup you need to **implement a production-level, self-hosted Ghost setup.** Before we get started with the setup, let's first understand the high-level architecture of a self-hosted Ghost platform. ## Self-hosted Ghost Setup Architecture The following diagram illustrates the high-level architecture of a self-hosted Ghost setup. ![Self-hosted Ghost setup Architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-81.png) Now, let's take a look at the key components of the self-hosted Ghost Platform. ### Caddy [Caddy](https://caddyserver.com/docs/?ref=devopscube.com) is an open-source web server written in [Go](https://devopscube.com/golang-for-devops/). Unlike other servers such as NGINX, it automatically manages HTTPS routing and TLS certificates. In our architecture, Caddy is the only [Docker container](https://devopscube.com/what-is-a-container-and-how-does-it-work/) that is exposed to the Internet on ports 80 and 443\. Everything else (MySQL, ActivityPub, and Ghost) is not directly exposed to the Internet. In this setup, Caddy does two things. - **Automates HTTPS routing and manages TLS certificates:** If you have a valid domain, Caddy automatically obtains [TLS certificates](https://devopscube.com/configure-ingress-tls-kubernetes/) from a public Certificate Authority such as [Let’sEncrypt](https://letsencrypt.org/?ref=devopscube.com) using the ACME protocol, renews them before they expire, and handles HTTPS connections. - **Path-based routing and reverse proxying:** Caddy checks the incoming request path and forwards it to the appropriate backend service. ### Ghost CMS [Ghost CMS](https://github.com/tryghost/ghost?ref=devopscube.com) is a Node.js based application. It is the core component that serves your public website and provides features such as the Ghost Admin dashboard for writing, editing, and publishing content. Same like Caddy, Ghost is also deployed as a container using an Alpine image. Caddy receives the public traffic and forwards the requests to Ghost on this port. Another important Ghost config is the content directory. All the content files of the Ghost platform live in the **`data/ghost`** host directory. For example, uploaded images, themes, and its local configs. Docker mounts **`data/ghost`** host directory to **`/var/lib/ghost/content`** directory on the Ghost container. So, even if the container is recreated, you won't lose any data. ### MySQL Here, [MySQL](https://devopscube.com/install-mysql-operator-on-kubernetes/) is the shared database server that is used in this stack. The **`data/mysql`** host directory is where all the data, such as Ghost's posts, pages, [tags](https://devopscube.com/hide-posts-by-tag-in-ghost/), member records, and settings, is stored. It is mounted to **`/var/lib/mysql`** directory on the container. Both containers (Ghost and ActivityPub) connect to the same MySQL instance, each using the credentials you set in **`.env`** file (*you'll learn more about it in the configuration section*). 💡 In our implementation, we will be using [MySQL 8.](https://dev.mysql.com/downloads/mysql/8.0.html?ref=devopscube.com) Because Ghost [supports only MySQL 8](https://docs.ghost.org/faq/supported-databases?ref=devopscube.com) in production. ### ActivityPub [ActivityPub](https://www.w3.org/TR/activitypub/?ref=devopscube.com) gives Ghost an additional way to distribute your content on platforms like [WordPress](https://devopscube.com/migrate-wordpress-to-ghost/), [Mastodon](https://joinmastodon.org/?ref=devopscube.com), and others. When you publish a new post, it can also appear in the feeds of people following your publication on those platforms. ActivityPub runs as a dedicated container that listens on port 8080 internally and stores its state in the **`activitypub`** database. 💡 ActivityPub is optional. If you don't want ActivityPub, you can disable it during the setup. ### SMTP Server (For Transactional Emails) Transactional Emails are one-to-one emails. For example, when a visitor subscribes, a new member requests a sign-in link, or you invite a new staff user, Ghost needs to send a verification code to their email address. The SMTP server is the core component in the setup for sending transactional emails. We will use [Amazon SES ](https://devopscube.com/setup-aws-ses/)as the SMTP provider for transactional emails because Ghost sends them using its standard mail configuration. 💡 All SMTP server details are configured in the **`.env`** config file. ### Mailgun (For Sending Newsletters) Newsletters work differently from transactional emails. Publishing one newsletter can generate thousands of individual emails. So newsletters are sent via bulk email, using [Mailgun](https://www.mailgun.com/?ref=devopscube.com). This is the **only native option supported by the Ghost platform** for sending bulk email. Once Mailgun is verified and connected to Ghost using Mailgun's API key, transactional emails and newsletters can use their separate delivery systems. ## Why Docker Compose? We strongly recommend you use Docker Compose for the setup. Here is why. If you install all the Ghost components directly on the Ubuntu server, you need to manage all the dependencies on the server itself. The problem is that system updates and dependency changes can affect the Ghost installation. But when you use Docker Compose, the problem gets solved. You can start the entire stack using a single **`docker compose up -d`** command. Also, if a new [Docker image](https://devopscube.com/build-docker-image/) is available, updating the entire stack with Docker Compose is easier. At the same time, if an image update causes problems, it is much easier to roll back to the previous image version. And it is easier to recreate the whole stack on a different server if required. Now let's get started with the setup. ## Setup Prerequisites These are some prerequisites you need before starting this implementation. - A valid [Domain](https://devopscube.com/map-cloudways-server-to-a-domain/) name. - SMTP server details. 💡 We have used [Amazon SES](https://devopscube.com/setup-aws-ses/) as the SMTP Service provider. You can use any SMTP provider. Now, let's start our implementation. ## Setting Up Ghost with Docker Follow the steps below to set up a complete, working Ghost environment using Docker. ### Step1: Provision an Ubuntu Server We need Ubuntu Server 24.04 (LTS) with 2 vCPUs, 4 GB of RAM, and 40 GB of disk space. You can use cheaper hosting platforms like [DigitalOcean](https://devopscube.com/get-free-digital-ocean-credits/) or [Cloudways](https://devopscube.com/cloudways-promo-codes/) to host your Ubuntu Server. 📌 Make sure you configure your Ubuntu Server with a static public IP address. It should be mapped as an A record in your website's DNS settings. ### Step2: Install Docker on Ubuntu Server We need to install Docker for this implementation. Use the following one-line command to install it on your Ubuntu server. ```Bash curl -sSL https://get.docker.com/ | sudo sh ``` ### Step 3: Create a New User Then we need to create a new user by executing the following commands. Make sure you run the commands as the **`root`** user. ```Bash adduser deploy usermod -aG sudo deploy ``` Here, we have created the user named **`deploy`** and modified the user's attributes with configuration settings. Now we need to switch to the **`deploy`** user using the following command. ```Bash su deploy ``` ### Step 4: Create a Directory and Change Ownership First, we need to create a directory inside the path **`/opt/ghost`** and change the ownership of the directory, which sets both the user and group to **`deploy`** using the following command. ```Bash sudo mkdir -p /opt/ghost && sudo chown deploy:deploy /opt/ghost ``` ### Step 5: Clone the repository and rename the env and Caddyfile Now we need to clone the repo into the new directory we have created. ```Bash git clone https://github.com/TryGhost/ghost-docker.git /opt/ghost ``` Now get into the directory using the **`cd`** command. ```Bash cd /opt/ghost ``` There will be an **`.env.example`** file. Rename it to the **`.env`** file using the following command. ```Bash cp .env.example .env ``` Do the same for the **`Caddyfile.example`** file, which is present inside the **`/caddy`** directory. ```Bash cp caddy/Caddyfile.example caddy/Caddyfile ``` 💡 The [Caddyfile](https://caddyserver.com/docs/caddyfile?ref=devopscube.com) is a configuration file that defines how the [Caddy web server](https://caddyserver.com/?ref=devopscube.com) handles websites, reverse proxies, and security. ### Step 6: Generate Database Credentials Run the following commands to generate two random passwords for the database. ```Bash echo "ROOT: $(openssl rand -hex 32)" echo "USER: $(openssl rand -hex 32)" ``` This command generates two random 32-byte security keys, each as a 64-character hex string, for MySQL authentication. Copy both keys. We need to use them in the **`.env`** file for the **`DATABASE_ROOT_PASSWORD`** and **`DATABASE_PASSWORD`**. ### Step 7: Change .env File Permissions Using the following command, change permissions for the `.env` file. ```Bash chmod 600 .env ``` This command gives read and write permission for the **`.env`** file. It also ensures that only the file owner can read or modify it. ### Step 8: Configure Domain, SMTP and MySQL Credentials in the .env file The **`.env`** file contains the key configurations of the following. - Domain name - Activitypub endpoint - Database credentials - SMTP Configurations (For Transactional emails) Open the **`.env`** file using the [VIM editor](https://devopscube.com/linux-vi-editor-shortcuts-beginners/) and change the values accordingly. 💡 If you want to disable ActivityPub, you can comment the **`COMPOSE_PROFILES`** variable in the below **`.env`** file. ```Bash COMPOSE_PROFILES=activitypub DOMAIN= ACTIVITYPUB_TARGET=activitypub:8080 DATABASE_ROOT_PASSWORD= DATABASE_PASSWORD= mail__transport=SMTP mail__options__host=email-smtp..amazonaws.com mail__options__port=2587 mail__options__secure=false mail__options__auth__user= mail__options__auth__pass= mail__from='DevOps Project ' UPLOAD_LOCATION=./data/ghost MYSQL_DATA_LOCATION=./data/mysql ``` Enter your specific domain name. Make sure you replace the **`DATABASE_ROOT_PASSWORD`** and **`DATABASE_PASSWORD`** with your actual values you got from Step 6. Also, you need to add your specified AWS region in the **`mail__options__host`** variable. 💡 If you are using [DigitalOcean](https://docs.digitalocean.com/support/why-is-smtp-blocked/?ref=devopscube.com) Droplets, SMTP ports 25, 465, and 587 are blocked by default. In such cases, you can use alternate ports provided by the SMTP server. For example, AWS SES provides 2465 and 2587 as alternatives to 465 and 25. ### Step 9: Start your Ghost Platform Using Docker Below are the two commands to start your Ghost stack using Docker [containers](https://devopscube.com/what-is-a-container-and-how-does-it-work/). ```Bash sudo docker compose pull ``` This pull command downloads the [Docker](https://devopscube.com/run-docker-in-docker/) images specified in **`docker-compose.yml`** file. You can verify using the output that the images are pulled. ```Bash [+] pull 48/48 ✔ Image caddy:2.10.2-alpine@sha256:953131cfea8e12bfe1c631a36308e9660e4389f0c3dfb3be957044d3ac92d446 Pulled 19.8s ✔ Image ghcr.io/tryghost/activitypub:1.2.9@sha256:f950017169c778f90bc1d4097c0c83735dd88ee26a7dfac... Pulled 38.0s ✔ Image ghcr.io/tryghost/activitypub-migrations:1.2.9@sha256:f8a376e83187cc927fd6286a9e825b71056b... Pulled 7.5s ✔ Image mysql:8.0.44@sha256:f37951fc3753a6a22d6c7bf6978c5e5fefcf6f31814d98c582524f98eae52b21 Pulled 38.0s ✔ Image ghost:6-alpine Pulled 71.7s ``` Now let's start the containers. ```Bash sudo docker compose up -d ``` The above command starts all the containers defined in your Docker Compose configuration. You can verify with the following output, ``` [+] up 8/8 ✔ Network ghost_ghost_network Created 0.1s ✔ Volume ghost_caddy_config Created 0.0s ✔ Volume ghost_caddy_data Created 0.0s ✔ Container ghost-db-1 Healthy 29.3s ✔ Container ghost-activitypub-migrate-1 Exited 28.4s ✔ Container ghost-activitypub-1 Started 28.6s ✔ Container ghost-ghost-1 Started 29.4s ✔ Container ghost-caddy-1 Started 29.9s ``` You can use the following command to verify, ```Bash sudo docker compose ps ``` It shows the following output. ```Bash NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS ghost-activitypub-1 ghcr.io/tryghost/activitypub:1.2.9@sha256:f677e8af8df41418c3bfd63b4ec76b9bf2bbd85bde7da0aa9ecd86e41a230835 "docker-entrypoint.s…" activitypub About an hour ago Up About an hour 8080/tcp ghost-caddy-1 caddy:2.10.2-alpine@sha256:953131cfea8e12bfe1c631a36308e9660e4389f0c3dfb3be957044d3ac92d446 "caddy run --config …" caddy About an hour ago Up About an hour 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 443/udp, 2019/tcp ghost-db-1 mysql:8.0.44@sha256:f37951fc3753a6a22d6c7bf6978c5e5fefcf6f31814d98c582524f98eae52b21 "docker-entrypoint.s…" db About an hour ago Up About an hour (healthy) 3306/tcp, 33060/tcp ghost-ghost-1 ghost:6-alpine "docker-entrypoint.s…" ghost 33 minutes ago Up 33 minutes 2368/tcp ``` You can watch the live logs of the containers running in your Ghost setup using the following command. ```Bash sudo docker compose logs -f ghost caddy ``` You can verify the logs as follows: ```Bash ghost-1 | [2026-08-28 13:24:39] INFO Ghost is running in production... ghost-1 | [2026-08-28 13:24:39] INFO Your site is now available on https://ghost.devopsproject.dev/ ghost-1 | [2026-08-28 13:24:39] INFO Ctrl+C to shut down ghost-1 | [2026-08-28 13:24:39] INFO Ghost server started in 3.347s ghost-1 | [2026-08-28 13:24:39] WARN Database state requires initialisation. ghost-1 | [2026-08-28 13:24:39] INFO Creating table: newsletters ghost-1 | [2026-08-28 13:24:39] INFO Creating table: posts ghost-1 | [2026-08-28 13:24:40] INFO Creating table: posts_meta ghost-1 | [2026-08-28 13:24:40] INFO Creating table: gift_links ghost-1 | [2026-08-28 13:24:40] INFO Creating table: post_gift_links ghost-1 | [2026-08-28 13:24:40] INFO Creating table: users ghost-1 | [2026-08-28 13:24:40] INFO Creating table: posts_authors ghost-1 | [2026-08-28 13:24:40] INFO Creating table: roles ghost-1 | [2026-08-28 13:24:40] INFO Creating table: roles_users ghost-1 | [2026-08-28 13:24:40] INFO Creating table: permissions ghost-1 | [2026-08-28 13:24:40] INFO Creating table: permissions_users ghost-1 | [2026-08-28 13:24:40] INFO Creating table: permissions_roles ``` You can check the output for any errors. If there are no errors, press `CTRL + C` to stop the output. ### Step 10: Ghost Admin Setup Now we need to create an admin user for our Ghost platform. Open your browser, enter your domain name, and add **`/ghost`** at the end. And hit Enter. For example, **`https://.com/ghost`** You will see a page like the one below. This is the Ghost Admin page, where you need to enter the following. - Site title - Your full name - Email Address - Password ![Ghost admin page showing the account setup page with details to fill up and Create account & start publishing button.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-66.png) Enter the valid details. Then click on the Create Account button. You will be redirected to your Ghost admin page. That's it, you have now successfully set up a self-hosted Ghost platform using Docker Compose. ## Configuring Mailgun for Newsletter (Optional) If you want to send newsletters to your subscribers, you need to set up Mailgun. Let's have a look at how we can set it up. ### Signup for Mailgun Open [Mailgun](https://www.mailgun.com/?ref=devopscube.com) in your browser. And click on the Get started for free option. ![Sinch Mailgun signup page showing the free account registration form with details need to be filled up and an option to add a credit card.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-74.png) Uncheck the "Add a credit card" option to get the free tier. Then fill in the required details. You will get an email from the Mailgun support team to verify your account. Click on it and complete your verification. ### Set up a domain on Mailgun After completing the verification, we need to add our domain by selecting the Domains option under the Send section. In the top-right corner, you will see the Add new domain option, as shown below. ![Mailgun Domains page showing the Send section and Domains tab, with the Add new domain button.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-78.png) Add your domain name and specify the region in which your server is located. For testing purposes, a 1024-character DKIM key is enough. **For production, choose 2048 characters**, as 1024 is deprecated and may be blocked by providers like Gmail. ![Mailgun Add new domain page showing a domain name field, region and advanced settings, and the Add Domain button.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-79.png) 💡 Here, [DKIM](https://www.cloudflare.com/learning/dns/dns-records/dns-dkim-record/?ref=devopscube.com) refers to a security method of encrypting and adding a digital signature to outgoing emails. ### Configure MX Records in your DNS Provider The next step is to configure the mail-related DNS records (MX, CNAME, SPF, DKIM from Mailgun with your DNS provider. Go to Domain Settings. Under the DNS Records page, you will find four records named [TXT (SPF)](https://www.cloudflare.com/learning/dns/dns-records/dns-txt-record/?ref=devopscube.com) and [TXT (DKIM](https://www.cloudflare.com/learning/dns/dns-records/dns-dkim-record/?ref=devopscube.com)), MX, and CNAME, as shown in the image below. ![Mailgun domain settings dashboard showing DNS Records tab with TXT SPF and DKIM sending records used to verify email sending domain.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-86.png) Scroll down; you will find two [MX](https://www.cloudflare.com/learning/dns/dns-records/dns-mx-record/?ref=devopscube.com) records and also a [CNAME](https://www.cloudflare.com/learning/dns/dns-records/dns-cname-record/?ref=devopscube.com) record. ![domain settings dashboard showing DNS Records tab with the other 2 records such as MX records and CNAME for our DNS Provider](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-84.png) Now, here is the important step. Go to your **DNS provider** where you manage the website's domain name and add all four records, pointing to the correct values as listed on the Mailgun DNS page. ****Note:** The DNS configuration varies by DNS provider. However, the records remain the same. ### Configure the Mailgun API Key in Ghost Now that we have configured our domain with Mailgun, we need to do one final step: connect Mailgun to the Ghost platform using the Mailgun API key. Go to Mailgun, Domain settings under the section of Sending keys, and click on Add sending keys. Add a short description. Then click on Create sending key as shown below. ![Mailgun Domain Settings page shows the Sending Keys tab, with the Create sending key button.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-94.png) It will generate an API key. Copy it. Now, open your self-hosted Ghost platform. On the settings page, search for Newsletter to find the Mailgun section. Add your Mailgun region (there are only two regions: US and EU). Add your Mailgun domain, then paste the private API key generated in the previous step as shown below. ![Ghost Admin page shows adding the Mailgun API key in the Newsletter section with our domain name.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-93.png) Now all the Mailgun configurations for newsletter setup are done. ## Test and Validate the Ghost Setup Now we need to conduct a comprehensive health check to validate the entire setup. These checks confirm TLS certificate validity and HTTP-to-HTTPS redirection. Let's execute the testing commands one by one. ⚠️ ****Important Note:** In the following validation commands, we have used our domain name **`ghost.devopsproject.dev`** **.** When you execute each command, replace it with your configured domain name. ### Check TLS Certificate Validity First, we need to verify if the Let's Encrypt TLS Certificate is configured properly. Use the following command to validate the certificate. ```Bash curl -sI https://ghost.devopsproject.dev/ | head -1 echo | openssl s_client -connect ghost.devopsproject.dev:443 \ -servername ghost.devopsproject.dev 2>/dev/null \ | openssl x509 -noout -dates ``` The output should look like the following. ```Bash HTTP/2 200 notBefore=Aug 24 05:31:04 2026 GMT notAfter=Nov 22 05:31:03 2026 GMT ``` ### Validate HTTP to HTTPS redirection Now we need to confirm that the HTTP traffic is automatically redirected to HTTPS, so that no request gets a response over an unencrypted connection. Use the following curl command to verify the redirection from HTTP to HTTPS ```Bash curl -sI http://ghost.devopsproject.dev | grep -i location ``` You should see the redirected output as given below. ```Bash Location: https://ghost.devopsproject.dev/ ``` ## Test and Validate Email Deliverability When you set up Ghost for production testing, transactional and email newsletter deliverability is very important. Let's test both. ### Test the Transactional Email by Sending a Staff Invite First of all, we need to run an email test to verify whether we can invite a staff member using their Email ID. For this, we are using [Amazon Simple Email Service ](https://aws.amazon.com/ses/?ref=devopscube.com)(SES). To test this. Open your Ghost admin page. After that, you will get to an analytics page. In the bottom-left corner, you will see a settings button. Click on that. ![Ghost CMS admin dashboard shows the Settings menu option in the sidebar, with Analytics view showing member growth and latest post performance.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-67.png) Now click on the Staff button as shown below. ![Ghost Admin General Settings page shows the Staff option, along with site title, description, and timezone settings.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-68.png) Then click on the Invite People button. ![Ghost admin settings showing Staff section with 'Invite people' option highlighted, plus Meta data settings for search engine and social account optimization.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-69.png) Enter an email address (must be different from your admin email). Also, select the staff member's role according to your preferences. Then click the Send Invitation button below. ![Ghost Admin Invite a new staff user shows an email address, contributor role selected with the Send invitation button.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-59.png) You can verify that the Invitation Sent notification is shown on the bottom-left side. ![Ghost Admin Staff settings showing an invited contributor and a confirmation message that the staff invitation was successfully sent.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-60.png) And now, check your email. You will receive an invitation to activate your account, as shown below. ![Gmail screenshot showing a Ghost account invitation email from DevOps Project, with a button to activate the account.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-61.png) Click the **Click here to activate account** button. That's it. You have now successfully verified transactional email deliverability. ### Testing the Newsletter Email Deliverability We have already configured the newsletter bulk email sending setup for our self-hosted Ghost platform using Mailgun. Now, we just need to test the setup by creating a new post, publishing it, and sending it to your email subscribers. For example, I created a sample post, added the email addresses of five members, and then hit publish using the "Publish and email" option. ![Ghost publishing screenshot shows the Publish and email option, with all 5 subscribers and the Continue, final review button.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-95.png) The newsletter email is successfully delivered, as shown below. ![Gmail screenshot showing a newsletter email titled Testing Newsletter Email sent from a self-hosted Ghost platform.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-96.png) You can also verify whether the emails are delivered and opened by the members in the Mailgun application UI. Under the Reporting section, there will be an option called Logs, as shown in the image below. ![Mailgun Reporting Logs dashboard showing newsletter email delivery and open events from Self-hosted Ghost.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-97.png) We have now successfully tested the newsletter email deliverability. You now have a production ready self-hosted ghost setup. ## Ghost Self-Hosting FAQs Now let's clarify some of the frequently asked Questions about the topic. ### 1\. How safe is Ghost self-hosting? It's only safe if you maintain it properly with best security practices, such as two-factor authentication, Backups, and monitoring. ### 2\. What are the different deployment options for self-hosting Ghost? There are many other ways we can self-host the Ghost platform. We can self-host on a plain vanilla server or use [Docker](https://devopscube.com/what-is-docker/) or [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/). Also, many hosting providers offer one-click deployment options for a fully configured Ghost setup. ## Conclusion We have successfully set up a self-hosted Ghost platform from scratch and validated it by sending newsletters. Self-hosting gives you [SSH](https://devopscube.com/generate-ssh-key-pair/) and database access, full control over the configuration, and the freedom to modify it. However, you need to handle operational tasks, such as server updates, backups, security patching, and email delivery. If you cannot handle the administrative overhead, Ghost(Pro) is the better choice. Hosting infrastructure, backups, updates, and support are handled for you, and you only need to write and publish. We follow the hybrid approach. We use a self-hosted setup for development, with robust CI/CD practices, and managed hosting for our production website. Over to you! Are you planning to self-host Ghost, or are you already running it on your own server? If you followed this guide, let us know how the setup went. And if you ran into any issues along the way, please leave a comment below. We will try our best to help. ### FinOps Certified Practitioner (FOCP) Study Guide URL: https://devopscube.com/finops-certified-practitioner-study-guide/ Last updated: 2026-09-15T10:32:28.000Z [FinOps](https://www.finops.org/?ref=devopscube.com) Certified Practitioner certification is for a person who is trying to optimize their cloud spending, take accountability for the spending, and collaborate with the FinOps team. If you are an infra person, preparing for this examination closes the gap between you and the finance team, especially in terms of terminology. This guide prepares you for the FinOps Certified Practitioner (FOCP) certification exam. ## What is the FinOps Certified Practitioner Certification? The FinOps Certified Practitioner certification exam is a multiple choice exam that tests your understanding of FinOps. This does not check your hands-on knowledge, its a proof that you are strong in FinOps fundamentals and frameworks and can apply them. FinOps is not just about reducing cloud bills, its also about observing where spending goes and how much, how much return you get from spending, and managing the practices. ## FinOps Certified Practitioner Exam Details Below are the key details of the FinOps Certified Practitioner examination. | Registration Link | [ FinOps Exam Register Link](https://learn.finops.org/finops-certified-practitioner-certification-exam?ref=devopscube.com) | | ----------------- | -------------------------------------------------------------------------------------------------------------------------- | | Exam Type | Multiple Choice Exam | | No. of Questions | 50 | | Exam Duration | 1 Hour | | Pass Percentage | 75% | | Validity | 2 Years | | Exam Cost | $325 USD | | Exam Mode | Online (not proctored) | | No. of Attempts | 3 attempts | Once you purchase the certification, you have 12 months to take the exam. ****Important Note:** The exam-only package is $325, and there is also a $500 package that includes the [exam and course](https://learn.finops.org/path/finops-certified-practitioner-self-paced?ref=devopscube.com). For certification renewal, FinOps offers the [recertification exam](https://learn.finops.org/finops-certified-practitioner-recertification-exam?ref=devopscube.com) at a lower price. Also, check out the [FinOps Foundation Coupon](https://devopscube.com/finops-foundation-discount-code/) page to get the latest discount coupons for Finops Certifications. Once you buy the certification, you can take the exam anytime directly from the FinOps Foundation portal in your browser. ## Who can take the FOCP Exam? To take the FinOps Certified Practitioner Exam, there are no prerequisites. Anyone who needs to understand FinOps fundamentals and identify their FinOps capabilities can take the exam. This certification is more suitable for, - FinOps Practitioner - [DevOps Engineers](https://devopscube.com/python-for-devops/) - System Admins - Data Analyst - Solution Architect This certification helps not only people who implement cost management but also those who deploy resources. For example, if you are a [DevOps Engineer](https://devopscube.com/become-devops-engineer/) with FinOps knowledge, you can manage infra resources more efficiently to reduce costs. ## FinOps Certified Practitioner Roadmap To prepare for the exam, spend at least 1 hour every day, and you can complete the exam in 4 to 6 weeks. The time may vary depending on your FinOps experience and learning speed. ⚠️ Unlike certification exams like [CKA](https://devopscube.com/cka-exam-study-guide/), FinOps Certified Practitioner does not have a fixed syllabus, but we have covered the concepts you need to understand to prepare for the FOCP certification exam We will learn in the following order: > Principles -> Personas -> Domains -> Capabilities -> Maturity Here is the complete roadmap for preparing for the certification. ⚠️ Understand each concept, dont memorize them ### Learn the FinOps Fundamentals First, learn the FinOps terms and what they are for. #### The Six Principles of FinOps The FinOps principles are the foundation that determines how decisions should be made. - **Teams need to collaborate** \- To make the right decision on FinOps, teams like Finance, engineering, and product collaborate with each other. - **Business value drives technology decisions** \- Not just to reduce cost, the decision should be based on the spending and profit from it. - **Everyone takes ownership of their technology usage** \- Usage management is not only managed by the cost management team, but the team that creates the resource should also take accountability for their usage. - **FinOps data should be accessible, timely, and accurate** \- Every cost detail should be in a proper report which will be used for analyzing the cost, forecasting, improvement, etc. - **FinOps should be enabled centrally** \- A centralized team to provide tools and guidelines for cost management for separate teams, but the cost of each team will be managed by the team itself. - **Take advantage of the variable cost model of the cloud** \- Instead of running the resources continuously, spin them up only when needed. Official documentation - [FinOps Principles](https://www.finops.org/framework/principles/?ref=devopscube.com) #### Core Personas in FinOps In FinOps, Personas are different teams or roles that work together with the FinOps team to manage costs. You may get questions on the exam about the teams' responsibilities. Below are the core Personas in FinOps. - **FinOps Practitioner** \- Acts as a centralized manager who collaborates with multiple teams to create a proper framework. - **Engineering** \- Has knowledge of infrastructure resource costs and plays a role in optimizing costs by managing the infrastructure. - **Finance** \- Manages spending, also provides budgets, costs, forecasts based on previous data, and records all spending. - **Product** \- This team connects spending with the value gets from spending. - **Procurement** \- Responsible for managing relationships with vendors, negotiating discounts, and making decisions to have proper returns on spending. - **Leadership** \- Sets goals, makes decisions, and is accountable for making cost-related decisions in the organization. Official Documentation - [FinOps Personas](https://www.finops.org/framework/personas/?ref=devopscube.com) ### Domains and their **Capabilities** Here we will see the domains you need to cover for FinOps and how each domain helps in organizations. Here, a Domain is what your organization needs to achieve, and Capabilities are actions you need to take to achieve it. | Domain | Capabilities inside it | | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Understand Usage & Cost | Data Ingestion, Allocation, Reporting & Analytics, Anomaly Management | | Quantify Business Value | Planning & Estimating, Forecasting, Budgeting, KPIs & Benchmarking, Unit Economics | | Optimize Usage & Cost | Architecting & Workload Placement, Usage Optimization, Rate Optimization, Licensing & SaaS, Sustainability | | Manage the FinOps Practice | Executive Strategy Alignment, FinOps Practice Operations, Governance, Policy & Risk, FinOps Education & Enablement, Invoicing & Chargeback, FinOps Assessment, Automation, Tools & Services, Intersecting Disciplines | Let's see what you need to learn in each Domain. #### Understand Usage & Cost This domain is about collecting and understanding the information on usage and cost. Here, you need to focus on how each resource's usage and cost data are collected, how costs are allocated, how each piece of information is recorded, and on checking for extra spending based on previous data. Official Documentation - [Understand Usage & Cost](https://www.finops.org/framework/domains/understand-usage-cost/?ref=devopscube.com) #### Quantify Business Value Once you understand the cost, the next step is to analyze the business value added for each expenditure. This is the stage where the spending planning happens. The planning will be based on key cost KPIs that inform estimation, forecasting, and budgeting. With this, you can determine whether the organization is spending within the planned range, producing enough business value, and has a better investment plan. Learn the difference between an estimate, a forecast, and a budget. Official Documentation - [Quantify Business Value](https://www.finops.org/framework/domains/quantify-business-value/?ref=devopscube.com) #### Optimize Usage & Cost Next is optimizing usage and reducing unwanted costs. Usage optimization is optimizing how many resources you use. For example, rightsizing a VM. And cost optimization is optimizing how much you spend on the resources. For the optimization process, multiple teams must collaborate to optimize usage and costs. Official Documentation - [Optimize Usage & Cost](https://www.finops.org/framework/domains/optimize-usage-cost/?ref=devopscube.com) 💡 Using tools like Steampipe, you can [query cloud costs using SQL](https://devopscube.com/steampipe-tutorial/) #### Manage the FinOps Practice Once all information is ready, the final step is implementing the FinOps practices. Here, focus on the FinOps implementation strategies, how the policies are set, how the automations are done, how the right tools are chosen, and how everything is managed Official Documentation - [Manage the FinOps Practice](https://www.finops.org/framework/domains/manage-finops-practice/?ref=devopscube.com) These Domains go in a loop as: Inform -> Optimize -> Operate, and repeat this process. ### FinOps Maturity Level Let's look at the maturity level of the FinOps Practice. There are a total of three maturity levels: - **Crawl** \- Everything is implemented and managed manually by basic tools. - **Walk** \- Next, automation is introduced by setting alerts for the relevant teams. - **Run** \- Finally, almost everything is automated. Official Documentation - [FinOps Maturity Level](https://www.finops.org/framework/maturity-model/?ref=devopscube.com) ## Conclusion This FOCP certification preparation not only gives you a clear view of cost management but also simplifies FinOps terms for you. As I explained before, understanding every FinOps practice and studying with a real cloud environment gives you a better understanding Hope this FOCP study guide helps you prepare for the exam. ### How to Implement Native Admission Policies in Kubernetes URL: https://devopscube.com/kubernetes-admission-policies/ Last updated: 2026-09-04T10:51:16.000Z Policy as code is a key best practice in production [Kubernetes clusters](https://devopscube.com/setup-kubernetes-cluster-kubeadm/). For example, you can enforce policies such as requiring every pod to have resource limits or ensuring images are pulled only from a specific private registry. To enforce such policies in a Kubernetes cluster, teams usually use tools such as [Kyverno](https://kyverno.io/?ref=devopscube.com) or [OPA Gatekeeper.](https://open-policy-agent.github.io/gatekeeper/website/docs/?ref=devopscube.com) These tools typically run as **custom** **dynamic admission controllers** and integrate with the [Kubernetes API server](https://devopscube.com/kubernetes-architecture-explained/) using **custom** **admission webhooks**. Kubernetes also provides native admission policies that can validate and modify API requests without a separate webhook service. In this guide, you will learn: - How Kubernetes admission control works - What native admission policies are - How to create a `ValidatingAdmissionPolicy` using CEL - How to create a `MutatingAdmissionPolicy` - When to use native policies instead of Kyverno or Gatekeeper. We will create two practical policies: 1. A validation policy that blocks [Deployments](https://devopscube.com/kubernetes-deployment-tutorial/) with more than five replicas. 2. A mutation policy that adds a default label to every new Namespace. Let's get started. ## How Does Kubernetes Admission Control Work? An admission controller is a small piece of code that validates or modifies Kubernetes objects before they are persisted. The following diagram illustrates how a dynamic admission controller, such as Kyverno, enforces policies via Kubernetes admission webhooks. ![How Kubernetes admission webhooks work with admission controllers to validate, modify, allow, or reject API requests](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-23.png) Here is how it works. When a user sends a request, such as creating a Pod using `kubectl`, the request first reaches the Kubernetes API server. The API server first **authenticates** the request to verify the identity of the user or service account. Next, the request goes through **authorization** to check whether that user has permission to perform the requested action. For example, whether the user is allowed to create Pods in a particular namespace. If the request is authorized, it moves to the **admission control** stage. Admission control mainly applies to requests that create, modify, delete, or connect (proxy requests) resources. Read-only requests such as **GET, LIST, and WATCH bypass admission control.** During the admission process, the API server checks whether the request matches any configured admission webhooks. For example, a Pod creation event. If it matches, the API server sends the request to the webhook as an AdmissionReview object. There are two types of admission webhooks. - **Validating webhooks** can allow or reject the request. For example, if a Deployment doesn’t have a specific label, the creation request gets rejected. - **Mutating webhooks** can modify the resource before it is created or updated. A classic example of this is Istio, which uses a mutating webhook to automatically inject the sidecar container into the pod spec. The dynamic admission controller then evaluates the request against the defined policies. For example, a Kyverno policy that requires the image URL to come from a specific private registry. Once the policy check is complete, the admission controller sends the response back to the API server. If the request is allowed, Kubernetes proceeds with the requested operation. 💡 ****Important Note:** This means tools such as Kyverno and OPA Gatekeeper require a custom external admission controller and webhook setup to enforce these policies. However, you can implement many of these policy use cases using Kubernetes native functionality without running an external admission webhook. This is where ****native Kubernetes Admission Policies** come into the picture. First, let's understand what an admission policy is. ## What is an AdmissionPolicy**?** Unlike custom admission controllers, Kubernetes Admission Policies provide a native way to validate or modify API requests during admission, without running a separate admission webhook server. This means you **don’t need to deploy and manage custom admission controllers and webhooks** to validate or modify API objects based on your requirements. There are two Native Admission Policy types: - **ValidatingAdmissionPolicy** \- This checks the incoming API request and decides whether it should be allowed. - **MutatingAdmissionPolicy** \- This changes the incoming resource before it is created. 💡 ****Note:** ValidatingAdmissionPolicy became GA in version 1.30, and MutatingAdmissionPolicy became stable in 1.36. ### Common Expression Language (CEL). The admission policies are written in [Common Expression Language (CEL).](https://cel.dev/?ref=devopscube.com) It is a lightweight expression language used by Kubernetes. It's the same language used for CRD validation rules. A CEL expression evaluates `true` or `false`. If it returns `false`, the request is denied. For example, `object.spec.replicas <= 5`. This expression will deny the request if the replica count exceeds 5\. We will look at the same example in the hands-on part. Let's look at ValidatingAdmissionPolicy first. ## What is ValidatingAdmissionPolicy? ValidatingAdmissionPolicy is the native alternative to validating admission webhooks built directly into the API server. Instead of running a separate HTTP server that the API server calls on every request, the validation logic lives directly inside the API server as a native object. If a request violates a rule, the API server will reject it as shown in the image below. ![Kubernetes MutatingAdmissionPolicy example showing a policy adding a managed-by label to a Namespace](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/09/image-24.png) Next, we will look at how to create a native ValidatingAdmissionPolicy. ## Creating ValidatingAdmissionPolicy To understand the policy, we will **create a simple policy that blocks Deployments with more than 5 replicas.** Here is the ValidatingAdmissionPolicy manifest with a CEL validation expression. ```yaml kubectl apply -f - < Object{ metadata: Object.metadata{ labels: {"managed-by": "devops-team"} } } EOF ``` Here you can see that under the **mutations** block, we tell Kubernetes to modify the incoming object using an ApplyConfiguration. Now, let’s create a binding for the policy, as we did before. ```yaml kubectl apply -f - < EKS Cluster Autoscaler uses these to automatically find the ASGs. 💡 The above tags are applied as default to the ASG when you create the node group using [eksctl](https://devopscube.com/create-aws-eks-cluster-eksctl/). These tags might not apply when you create a node group using Terraform or a CLI command, make sure the node groups ASG has these tags. To check whether the node group's ASGs have the mentioned tag, run the following command to list all ASGs in your AWS account. ```bash aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[*].AutoScalingGroupName" --output table ``` Then, run the following command to check the tags assigned to the specific ASG. ```bash aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names --query "AutoScalingGroups[*].Tags" --output table ``` Update the ASG name in the above command to the node group ASG you want to check the tags for; the node group ASG will have the node group name. For example, if your node group name is `ng-spo`t, then your ASG name will be `eks-ng-spot-62ca5663-d8f9-a974-10c3-e0ca52223c7c`. Now, follow the steps below, one by one, to set up the Cluster Autoscaler on the EKS cluster. ### Step 1: Create an IAM Policy Let's start by creating an IAM policy for the Cluster Autoscaler that grants permissions to scale nodes and other required permissions. First, run the following command to create a JSON file with the required permissions. ```bash cat < ca-policy.json { "Version": "2012-10-17", "Statement": [ { "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeTags", "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:DescribeLaunchTemplateVersions" ], "Resource": "*", "Effect": "Allow" } ] } EoF ``` Then, run the following command to create the IAM policy with the permissions listed on `ca-policy.json`. ```bash aws iam create-policy \ --policy-name ca-policy \ --policy-document file://ca-policy.json ``` Now, run the following command to save the `ARN` of the policy as a `variable`, which will be helpful in the next step. ```bash export POLICY_ARN=$(aws iam list-policies --query "Policies[?PolicyName=='ca-policy'].Arn" --output text) ``` Run the following command to check if the [ARN](https://devopscube.com/aws-arn-guide/) is saved as a variable. ```bash echo $POLICY_ARN ``` If it shows the ARN, move on to the next step. ### Step 2: Create an IAM Role Once the policy is created, create an IAM role and attach the policy to the role. Start by creating a JSON file that contains the trust policy for the role. ```bash cat < trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EoF ``` Then, run the following command to create the IAM role with the role trust policy on `trust-policy.json`. ```bash aws iam create-role \ --role-name ca-role \ --assume-role-policy-document file://trust-policy.json ``` Now, run the following command to attach the policy to the role. ```bash aws iam attach-role-policy \ --role-name ca-role \ --policy-arn $POLICY_ARN ``` Once role creation and policy attachment are complete, run the following command to save the role's ARN as a variable. ```bash export ROLE_ARN=$(aws iam get-role --role-name ca-role --query "Role.Arn" --output text) ``` Run the following command to check if the ARN is saved as a variable. ```bash echo $ROLE_ARN ``` If it shows the ARN, move on to the next step. ### Step 3: Assign the IAM Role to the Service Account The next step is to assign the IAM role to the Cluster Autoscaler service account using `Pod Identity` to provide scaling permission. Since we already know the Cluster Autoscaler service account, lets create a pod identity mapping for it. Before assigning the role, check if Pod Identity is enabled on your cluster by running the following command. ```bash aws eks list-addons --cluster-name ``` Specify your cluster name in the above command. If Pod Identity is enabled on your cluster, you can see it in the output as shown below. ![verifying if pod identity is enabled on the cluster](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-31-7.png) If it's not listed, Pod Identity is not enabled on your cluster. Run the following command to enable Pod Identity on your cluster. ```bash aws eks create-addon --cluster-name --addon-name eks-pod-identity-agent ``` Once enabled, run the following command to assign the IAM role to the Cluster Autoscaler's service account using Pod Identity. ```bash eksctl create podidentityassociation \ --cluster \ --namespace kube-system \ --service-account-name cluster-autoscaler \ --role-arn $ROLE_ARN ``` `cluster-autoscaler` Is the Cluster Autoscaler's service account. This role will be used by the Cluster Autoscaler controller to communicate with the EC2 Auto Scaling Group. ### Step 4: Download and Modify Cluster Autoscaler YAML Now, download the Cluster Autoscaler deployment [YAML](https://devopscube.com/create-kubernetes-yaml/) and modify it. Run the following command to download the YAML file. ```bash wget https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml ``` Modify the following in the manifest file: 1. In the deployment section, change the [container image version](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler?ref=devopscube.com#releases:~:text=Vultr-,Releases,-We%20recommend%20using) to match your EKS cluster version. For example, if your cluster version is 1.30.x, specify the container version as v1.30.0. 2. Specify your cluster name in the command section `--node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/****`. The modified deployment part will look like this: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: cluster-autoscaler namespace: kube-system labels: app: cluster-autoscaler spec: replicas: 1 selector: matchLabels: app: cluster-autoscaler template: metadata: labels: app: cluster-autoscaler annotations: prometheus.io/scrape: 'true' prometheus.io/port: '8085' spec: priorityClassName: system-cluster-critical securityContext: runAsNonRoot: true runAsUser: 65534 fsGroup: 65534 seccompProfile: type: RuntimeDefault serviceAccountName: cluster-autoscaler containers: - image: registry.k8s.io/autoscaling/cluster-autoscaler:v1.30.0 name: cluster-autoscaler resources: limits: cpu: 100m memory: 600Mi requests: cpu: 100m memory: 600Mi command: - ./cluster-autoscaler - --v=4 - --stderrthreshold=info - --cloud-provider=aws - --skip-nodes-with-local-storage=false - --expander=least-waste - --node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/eks-spot-cluster volumeMounts: - name: ssl-certs mountPath: /etc/ssl/certs/ca-certificates.crt # /etc/ssl/certs/ca-bundle.crt for Amazon Linux Worker Nodes readOnly: true imagePullPolicy: "Always" securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true volumes: - name: ssl-certs hostPath: path: "/etc/ssl/certs/ca-bundle.crt" ``` You can see I have changed the container version based on my cluster version and specified my cluster name in the command section. You can also change the `expander` command to `random`, `most-pods`, `least-waste`, `priority` as per your requirements. > If you want to run the Cluster Autoscaler in manual mode, remove the command: > > **\--node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/eks-spot-cluster** from the above manifest file and use the: > > **\--nodes=1:4:eks-ng-spot-16ca48b9-1524-ecf0-3c0d-572a204ffa86** to specify the nodes groups ASG manually. > > The above command structure is **\--nodes=::**, in the command you have to specify the node groups ASG's min capacity, maximum capacity and it's name. Below are some of the additional commands that you can use to modify the default configurations. - **\--scale-down-delay-after-add** \- Once the node is added, the scale down should not start until the specified time. By default, it is 10 minutes. - **\--scale-down-unneeded-time** \- How long a node must stay underutilized before it is removed. Default time is 10 minutes. - **\--scale-down-delay-after-failure** \- If a scale-down fails, wait until a specific time to retry again. Default is 3 minutes. Once the mentioned changes are made, then run the following command to deploy the Cluster Autoscaler and other required resources. ```bash kubectl apply -f cluster-autoscaler-autodiscover.yaml ``` You can see a Cluster Autoscaler controller pod created in the kube-system namespace. ```bash $ kubectl get po -n kube-system | grep cluster-autoscaler cluster-autoscaler-6d8cc87985-z8bgb 1/1 Running 1 16s ``` Once the deployment is up, run the following command to annotate the deployment. ```bash kubectl -n kube-system annotate deployment.apps/cluster-autoscaler cluster-autoscaler.kubernetes.io/safe-to-evict="false" ``` This annotation will prevent the Cluster Autoscaler pods from being evicted during scaling. ## Testing Cluster Autoscaler The Cluster Autoscaler setup is ready. Let's check if it's working properly. To check, create a `deploy.yaml` file and copy the below content: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-app spec: replicas: 4 selector: matchLabels: app: nginx-app template: metadata: labels: app: nginx-app spec: containers: - name: app image: nginx resources: requests: memory: "1Gi" cpu: "500m" ``` This manifest file will create a deployment with `4` replicas and set the resource request to `1Gi Memory and 500m CPU`. Currently, my cluster has 1 node of type t3.medium, which has `2 CPU and 4GB of Memory`. Set the resource request based on your node type, which makes the nodes scale. Apply the manifest file using the following command. ```bash kubectl apply -f deploy.yaml ``` List the pods using the below command. ```bash kubectl get po ``` You can see that two pods are running and two are pending because of insufficient resources. ```bash $ kubectl get po NAME READY STATUS RESTARTS AGE nginx-app-789bd55986-76jvs 1/1 Running 0 49s nginx-app-789bd55986-89x6k 1/1 Running 0 49s nginx-app-789bd55986-frbq9 0/1 Pending 0 49s nginx-app-789bd55986-hkmfp 0/1 Pending 0 49s ``` Now, the total resource limit has exceeded the node capacity, triggering the Cluster Autoscaler to add nodes as needed. ```bash $ kubectl get no NAME STATUS ROLES AGE VERSION ip-172-31-16-26.us-west-2.compute.internal NotReady 8s v1.30.8-eks-aeac579 ip-172-31-39-172.us-west-2.compute.internal Ready 43m v1.30.8-eks-aeac579 ``` You can see that the scale-up is triggered, and a new node is created. The trigger will happen within 10-30 seconds, and the node will be up and running within 1 minute. ```bash $ kubectl get po NAME READY STATUS RESTARTS AGE nginx-app-789bd55986-76jvs 1/1 Running 0 89s nginx-app-789bd55986-89x6k 1/1 Running 0 89s nginx-app-789bd55986-frbq9 1/1 Running 0 89s nginx-app-789bd55986-hkmfp 1/1 Running 0 89s $ kubectl get no NAME STATUS ROLES AGE VERSION ip-172-31-16-26.us-west-2.compute.internal Ready 8s v1.30.8-eks-aeac579 ip-172-31-39-172.us-west-2.compute.internal Ready 43m v1.30.8-eks-aeac579 ``` You can see that a new node has been created according to the resource requirements, and all the pods are up and running. Now, delete the deployment using the following command to see the scale-down process. ```bash kubectl delete -f deploy.yaml ``` The unused nodes will be terminated after 10 minutes; this is the default node scale-down time. ```bash $ kubectl get no NAME STATUS ROLES AGE VERSION ip-172-31-16-26.us-west-2.compute.internal Ready 12m v1.30.8-eks-aeac579 ip-172-31-39-172.us-west-2.compute.internal Ready,SchedulingDisabled 55m v1.30.8-eks-aeac579 ``` ## Common Issues and Troubleshooting Below are some common issues when using Cluster Autoscaler and their troubleshooting steps. ### Check Logs Always start troubleshooting by checking the Cluster Autoscaler logs. Most issues related to the Cluster Autoscaler are visible on its pod. Run the following command to get the logs. ```bash kubectl logs deployment/cluster-autoscaler -n kube-system ``` ### Cluster Autoscaler does not detect Node Group Nodes Let's say you have multiple node groups, and the Cluster Autoscaler is running, but it doesn't detect the nodes in the node group. The following things may be the issue: 1. The Cluster Autoscaler doesn't have the required permissions. 2. The ASGs of the node groups have incorrect tags. 3. Only in auto-discovery mode will the node groups be automatically detected by the Cluster Autoscaler. If you are using manual mode, you have to specify each node group using the `--nodes` flag. ### Pod Stuck in Pending State If your pod has been stuck in a pending state for more than 10 minutes, and the nodes are not scaling up even though the Cluster Autoscaler is running. This may be caused by various reasons: 1. The Cluster Autoscaler doesn't have the required permission to trigger scaling. 2. The node group size limit has been reached. 3. The pods may have taints to deploy on specific nodes. ### Nodes not Scaling Down If your nodes are underutilized and still not scaling down, this may be caused by: 1. The node group's minimum node limit has been reached. 2. A node might have pods that cannot be evicted. ### Cluster Autoscaler Pod gets evicted If your Cluster Autoscaler pod is getting evicted, you have to add the `cluster-autoscaler.kubernetes.io/safe-to-evict="false"` annotation to your Cluster Autoscaler deployment. Run the following command to add the annotation to the Cluster Autoscaler deployment. ```bash kubectl -n kube-system annotate deployment.apps/cluster-autoscaler cluster-autoscaler.kubernetes.io/safe-to-evict="false" ``` Then, restart the deployment to apply the changes. ```bash kubectl rollout restart deploy cluster-autoscaler -n kube-system ``` ## Best Practises Given below are some of the best practices for Cluster Autoscaler: 1. Always specify resource requests and limits for your pods so that the Cluster Autoscaler can scale based on the requirements. 2. You can use taints and tolerations to schedule some pods on specific nodes. 3. Use the scale-down commands to adjust the scale-down time based on your workload. (eg. --scale-down-unneeded-time=2m). 4. Use HPA with the Cluster Autoscaler, which ensures HPA has enough nodes to scale pods. ## Conclusion In this guide, you learned about Kubernetes Cluster Autoscaler, its functionality, and how to set it up on an Amazon EKS cluster. You also explored testing the setup, customization options, best practices, and troubleshooting common issues. For more advanced scaling strategies, especially for workloads requiring different EC2 instance types and smarter scaling decisions, consider exploring EKS Karpenter. ### Linux Foundation Certifications: Everything You Need to Know URL: https://devopscube.com/linux-foundation-certification/ Last updated: 2026-08-24T05:08:14.000Z Looking for Linux Foundation Certification? We will review the certifications in each category and the courses to prepare for them. Linux Foundation Certifications are the most sought-after [certifications for devops engineers](https://devopscube.com/devops-certifications/) and developers. According to the [Linux Foundation 2026 report](https://training.linuxfoundation.org/2026-state-of-tech-talent-report/?ref=devopscube.com), 76% of organizations consider relevant certifications when evaluating skills during hiring. Certifications from the Linux Foundation are organized into the following categories. 1. Cloud & Containers Certification 2. System Administration Certifications 3. Web & Application Certification 4. DevOps & Site Reliability Certification 5. AI/ML Certification 6. Open Source Best Practice Certification Let's look at certifications in each category and related courses that can help you ace the certification exam. We have organized the certification details in a table that contains the certification name, exam type, preparation courses, and exam FAQs. The exam FAQ link contains most of the answers you are looking for in the certification exam. Let's get started. ## Cloud & Containers Certification Cloud and container skills are in high demand in the current IT landscape. The following are the certifications under the cloud and containers category. | Certification Name | Cost | Exam Type | Recommended Courses | Exam FAQ's | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Kubernetes and Cloud Native Associate (KCNA)](https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud KCNA Course | [KCNA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-mc?ref=devopscube.com) | | [Certified Kubernetes Application Developer (CKAD)](https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/?ref=devopscube.com) | $445 | Performance-Based Exam | KodeKloud CKAD Course | [CKAD FAQ](https://docs.linuxfoundation.org/tc-docs/certification/faq-cka-ckad-cks?ref=devopscube.com#what-is-the-certified-kubernetes-application-developer-ckad-certification) | | [Certified Kubernetes Administrator (CKA)](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/?ref=devopscube.com) | $445 | Performance-Based Exam | [DevopsCube CKA Course](https://courses.devopscube.com/p/certified-kubernetes-administrator-course?ref=devopscube.com) | [CKA FAQ](https://docs.linuxfoundation.org/tc-docs/certification/faq-cka-ckad-cks?ref=devopscube.com#what-is-the-certified-kubernetes-administrator-cka-certification) | | [Certified Kubernetes Security Specialist (CKS)](https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/?ref=devopscube.com) | $445 | Performance-Based Exam | KodeKloud CKS Course | [CKS FAQ](https://docs.linuxfoundation.org/tc-docs/certification/faq-cka-ckad-cks?ref=devopscube.com#how-much-does-the-exam-cost) | | [Kubernetes and Cloud Security Associate (KCSA)](https://training.linuxfoundation.org/certification/kubernetes-and-cloud-native-security-associate-kcsa/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud KCSA Course | [KCSA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-mc?ref=devopscube.com) | | [Certified Cloud Native Platform Engineering Associate (CNPA)](https://training.linuxfoundation.org/certification/certified-cloud-native-platform-engineering-associate-cnpa/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud CNPA Course | [CNPA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-mc?ref=devopscube.com) | | [Certified Cloud Native Platform Engineer (CNPE)](https://training.linuxfoundation.org/certification/certified-cloud-native-platform-engineer-cnpe/?ref=devopscube.com) | $445 | Performance-Based Exam | KodeKloud CNPE Course | [CNPE FAQs](https://docs.linuxfoundation.org/tc-docs/certification/frequently-asked-questions-cnpe?ref=devopscube.com) | | [Certified Backstage Associate (CBA)](https://training.linuxfoundation.org/certification/certified-backstage-associate-cba/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud CBA Course | [CNPA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-mc?ref=devopscube.com) | ## System Administration Certifications Under the system administration category, we have certifications in Linux, Prometheus, Istio Service Mesh, and OpenTelemetry. | Certification Name | Cost | Exam Type | Recommended Courses | Exam FAQ's | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ---------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------- | | [Linux Foundation Certified IT Associate (LFCA)](https://training.linuxfoundation.org/certification/certified-it-associate/?ref=devopscube.com) | $250 | Multiple Choice Exam | Kodekloud LFCA course | [LFCA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-lfca?ref=devopscube.com) | | [Linux Foundation Certified System Administrator (LFCS)](https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/?ref=devopscube.com) | $445 | Performance-Based Exam | Kodekloud LFCS Course | [LFCS FAQs](https://docs.linuxfoundation.org/tc-docs/certification/instructions-lfcs-and-lfce?ref=devopscube.com) | | [Prometheus Certified Associate (PCA)](https://training.linuxfoundation.org/certification/prometheus-certified-associate/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud PCA Course | [PCA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/frequently-asked-questions-pca?ref=devopscube.com) | | [Istio Certified Associate (ICA)](https://training.linuxfoundation.org/certification/istio-certified-associate-ica/?ref=devopscube.com) | $250 | Performance-based | KodeKloud ICA Course | [ICA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/frequently-asked-questions-ica?ref=devopscube.com) | | [OpenTelemetry Certified Associate (OTCA)](https://training.linuxfoundation.org/certification/opentelemetry-certified-associate-otca/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud OTCA Course | [OTCA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-mc?ref=devopscube.com) | | [Kyverno Certified Associate (KCA)](https://training.linuxfoundation.org/certification/kyverno-certified-associate-kca/?ref=devopscube.com) | $250 | Multiple Choice Exam | KodeKloud KCA Course | [KCA FAQs](https://docs.linuxfoundation.org/tc-docs/certification/faq-mc?ref=devopscube.com) | ## Web & Application Certification Under web application certification, we have FINOS. | Certification Name | Cost | Exam Type | Recommended Courses | | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -------------------- | ------------------- | | [FINOS Certified FDC3 Practitioner (FCFP)](https://training.linuxfoundation.org/certification/finos-certified-fdc3-practitioner/?ref=devopscube.com) | $250 | Multiple Choice Exam | LFEL1000 course | ## DevOps, GitOps & Site Reliability Certification Under the DevOps, GitOps, and SRE domains, the Linux Foundation has announced the following three certifications. | Certification Name | Cost | Exam Type | Recommended Courses | | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -------------------- | --------------------- | | [Cilium Certified Associate (CCA)](https://training.linuxfoundation.org/certification/cilium-certified-associate-cca/?ref=devopscube.com) | $250 | Multiple-choice Exam | Kodekloud CCA course | | [Certified Argo Project Associate (CAPA)](https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/?ref=devopscube.com) | $299 | Multiple-choice Exam | Kodekloud CAPA course | | [Certified GitOps Associate (CGOA)](https://training.linuxfoundation.org/certification/certified-gitops-associate-cgoa/?ref=devopscube.com) | $250 | Multiple-choice Exam | Kodekloud CGOA course | ## AI/ML Certification Below are the [AI/ML certifications](https://devopscube.com/best-ai-ml-certifications/) provided by the Linux Foundation. | Certification Name | Cost | Exam Type | Recommended Courses | | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -------------------- | ------------------- | | [PyTorch Certified Associate (PTCA) ](https://training.linuxfoundation.org/certification/pytorch-certified-associate-ptca/?ref=devopscube.com) | $250 | Multiple-choice Exam | LFS116 course | | [Model Context Protocol Associate (MCPA)](https://training.linuxfoundation.org/certification/model-context-protocol-associate-mcpa/?ref=devopscube.com) | Not yet announced | Multiple-choice Exam | NA | Linux Foundation also announced another AI/ML certification called [OpenSearch Certified Associate (OSCA)](https://training.linuxfoundation.org/certification/opensearch-certified-associate/?ref=devopscube.com), which is not yet available. ## Open Source Best Practice Certification In line with open-source best practices, the Linux Foundation has added CODE and FSOSD certifications. | Certification Name | Cost | Exam Type | Recommended Courses | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -------------------- | ------------------- | | [FINOS Financial Services Certified Open Source Developer (FSOSD)](https://training.linuxfoundation.org/certification/finos-open-source-developer-fsosd/?ref=devopscube.com) | $250 | Multiple-choice Exam | LFD137 course | | [Certified Open Source Developer for Enterprise (CODE)](https://training.linuxfoundation.org/certification/certified-open-source-developer-for-enterprise-code/?ref=devopscube.com) | $250 | Multiple-choice Exam | LFD221 course | This certification is designed for software engineers, open-source developers, DevOps engineers, and FinOps practitioners working for financial institutions internationally. ## Certification Learning Paths If you plan to prepare for the certifications using Linux Foundation materials, you can make use of the official learning paths. Check out the [Official Learning path](https://training.linuxfoundation.org/learning-paths/?ref=devopscube.com) Also, check out the exam guides we have created based on our individual certification experiences. 1. [CKA Certification Guide](https://devopscube.com/cka-exam-study-guide/) 2. [CKAD ](https://devopscube.com/ckad-exam-study-guide/)[Certification](https://devopscube.com/cka-exam-study-guide/) [Guide](https://devopscube.com/ckad-exam-study-guide/) 3. [CKS Certification Guide](https://devopscube.com/cka-exam-study-guide/) 4. [KCNA Certification Guide](https://devopscube.com/kcna-study-guide/) 5. [KCSA Certification Guide](https://devopscube.com/kcsa-exam-study-guide/) 6. [Prometheus Certified Associate Guide](https://devopscube.com/prometheus-certified-associate/) 7. [Certified Argo Project Associate Guide](https://devopscube.com/certified-argo-project-associate/) 8. [Istio Certification Guide](https://devopscube.com/istio-certified-associate-study-guide/) ## Are Linux Foundation certifications worth it? The short answer is yes. I have been in the DevOps domain for more than a decade and have worked on open-source tools for a long time. Currently, in the IT market, specifically in the [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) category, Linux Foundation certifications are considered the best to have. Also, organizations working on Kubernetes-specific workloads look for engineers with [Kubernetes certifications](https://devopscube.com/best-kubernetes-certifications/). If you prepare for the certification the right way, you will also learn a lot about the respective technology. Specifically, performance-based certifications will improve your domain knowledge. 💡 ****Note:** FinOps is the key part of IT infrastructure today. The FinOps Foundation offers FinOps certifications through the FinOps Foundation. If you are interested in FinOps, check out the [best FinOps certifications ](https://devopscube.com/best-finops-certifications/)that are relevant to your profile. ## Conclusion I have created this guide to give a high-level overview of certification and the best courses to prepare for the exam. My first Linux Foundation certification was CKA. I really enjoyed the certification preparation as it was a performance-based exam. I scored 99% on the exam. I had to prepare well and practice well. ![99% in CKA exam](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-55-5.png) If you have any doubts regarding the certifications, drop a comment below. I will be happy to help. Also, you can save money on Linux Foundation certification registration using our exclusive voucher codes. Check the [Linux Foundation Coupon](https://devopscube.com/linux-foundation-coupon/) page for the latest voucher codes. ### PyTorch Certified Associate (PTCA) Exam Guide URL: https://devopscube.com/pytorch-certified-associate-exam-guide/ Last updated: 2026-08-17T12:35:55.000Z In this comprehensive PyTorch Certified Associate exam guide, we have covered the following. - What is PyTorch? - What is PTCA, and is it worth it? - Exam Prerequisites and Candidates - Exam Syllabus - PTCA Exam Study Guide and more. So if you are looking to get certified in PTCA, this study guide is for you. Let's get started. ## What is PyTorch? [PyTorch](https://pytorch.org/?ref=devopscube.com) is an open-source Python library and [framework](https://devopscube.com/list-best-frameworks-data-scientists/) developed by Meta's AI Research Labs and now managed by the [Linux Foundation](https://www.linuxfoundation.org/?ref=devopscube.com). It is primarily used for building, training, and deploying neural networks. Originally developed as the successor to Torch, PyTorch has become one of the world's **most popular deep learning frameworks** alongside [TensorFlow](https://www.tensorflow.org/?ref=devopscube.com) and is widely used in both research and production AI applications. The following image shows a 20% growth in PyTorch searches over the last year. ![Google Trends graph showing PyTorch interest over the past year, with interest increasing by 20% compared with the previous year](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-29.png) ## What is PyTorch Certified Associate (PTCA)? The [PyTorch Certified Associate (PTCA) Certification](https://training.linuxfoundation.org/certification/pytorch-certified-associate-ptca/?ref=devopscube.com) is a beginner-level certification that validates your understanding of how machine learning engineers and researchers design, train, and experiment with deep learning models using PyTorch. It is designed for beginners and early-career professionals who want to build a strong foundation in PyTorch and demonstrate their skills for AI and machine learning roles. ## Is PyTorch Certification Worth It? PyTorch is a high-paying skill. The average salary for PyTorch skills is [$200k in the US](https://6figr.com/us/salary/pytorch--s?ref=devopscube.com) ![statistics showing an average PyTorch salary of $201.1K based on 48 verified profiles](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-28.png) As companies continue to adopt AI, they need professionals who understand the core concepts, workflows, and tools used to design, train, and [deploy machine learning models.](https://devopscube.com/deploy-ml-model-kubernetes-kserve/) This certification helps you stand out by validating your foundational PyTorch skills. It ensures you understand the **core concepts of deep learning** and work with essential PyTorch features. It also shows that you are familiar with the open, vendor-neutral PyTorch ecosystem, giving employers confidence that you have the practical foundation needed to begin building real-world AI and machine learning applications. In short, it provides a solid foundation for anyone starting a career in AI or machine learning. It provides a **good learning path for PyTorch.** ## Exam Prerequisites There are no formal prerequisites for the PTCA exam. However, having the following will make prep significantly easier: - Basic [Python programming](https://devopscube.com/python-for-devops/) proficiency - A general understanding of [machine learning concepts](https://learn.microsoft.com/en-us/training/modules/fundamentals-machine-learning/?ref=devopscube.com) (what a model, training loop, and dataset are) - Some hands-on knowledge of PyTorch tensors or a beginner [PyTorch tutorial](https://docs.pytorch.org/tutorials/index.html?ref=devopscube.com) ## Who Should Take This Exam? According to the official PyTorch Foundation and Linux Foundation documentation, the PyTorch Certified Associate (PTCA) is designed for **early-stage practitioners with some Python and machine learning experience** who want to demonstrate foundational PyTorch skills. It is not intended for experienced deep learning researchers or advanced ML engineers. Below are some of the candidates who can attend the PyTorch certification. - Software Engineers and Python Developers - [Machine Learning Engineers](https://devopscube.com/embeddings-in-machine-learning/) - [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) and Platform Engineers involved in [MLOps](https://devopscube.com/devops-to-mlops/) - Cloud Engineers - Anyone with basic Python and Machine Learning knowledge. ## Exam Overview Now let's have a look at the exam overview. | Attribute | Details | | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | Exam link | [PTCA Exam Registration Link](https://training.linuxfoundation.org/certification/pytorch-certified-associate-ptca/?ref=devopscube.com) | | Exam format | Online, proctored, multiple-choice exam | | Exam Cost | $250 | | Duration | 120 minutes | | Certification validity | 2 years | | Exam eligibility | 12 months from purchase | | Retake policy | One free retake included | ## Register for the PTCA Certification Exam \[Save 30% Today\] The first step is to register for the PTCA Certification in the Linux Foundation portal. > **Note:*Save 30% Today on*** PTCA Certification *using the Voucher code given below. This code expires soon.* [Redeem PTCA Discount ](https://devopscube.com/recommends/cka-exam/) **CKA Exam Voucher:**: Use Code **DCUBE30** at checkout ****Note:** You can always check the [Linux Foundation Coupon](https://devopscube.com/linux-foundation-coupon/) page get the latest exam coupon. ## PTCA Exam Syllabus These are the topics you will learn when you prepare for the PTCA examination. | Domain | Weight | Covers | | ------------------------------ | ------ | ------------------------------------------------------------------------------------------- | | **PyTorch Fundamentals** | 38% | Core concepts, tensors, training/testing/using models, device basics (CPU, CUDA, MPS, etc.) | | **Performance & Optimization** | 26% | Precision and execution optimization, performance measurement, distributed training | | **Model Development** | 20% | PyTorch neural network (NN) building blocks | | **Data Handling** | 16% | Datasets, DataLoaders, transforms, training data | ## PTCA Certification Preparation Guide This section will go over resources that can help you prepare for the PTCA exam and pass the certification with very good score. ### PyTorch Fundamentals - \[38%\] This is the largest domain and the foundation for everything else. It covers tensors, core operations, training/testing workflows, and device basics. | Topic | Resource | | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | Tensor basics | [PyTorch Tensors](https://docs.pytorch.org/tutorials/beginner/basics/tensorqs%5Ftutorial.html?ref=devopscube.com) | | Autograd | [Autograd Mechanics](https://docs.pytorch.org/docs/stable/notes/autograd.html?ref=devopscube.com) | | Device management | [CUDA Semantics](https://docs.pytorch.org/docs/stable/notes/cuda.html?ref=devopscube.com) | | Training/testing workflow | [Optimizing Model Parameters](https://docs.pytorch.org/tutorials/beginner/basics/optimization%5Ftutorial.html?ref=devopscube.com) | ### Performance & Optimization - \[26%\] Covers precision, execution optimization, performance measurement, and distributed training basics. | Topic | Resource | | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | Mixed precision training | [AMP Documentation](https://docs.pytorch.org/docs/stable/amp.html?ref=devopscube.com) | | Profiling & performance measurement | [PyTorch Profiler](https://docs.pytorch.org/tutorials/recipes/recipes/profiler%5Frecipe.html?ref=devopscube.com) | | Distributed training | [Distributed Overview](https://docs.pytorch.org/tutorials/beginner/dist%5Foverview.html?ref=devopscube.com) | ### Model Development - \[20%\] Focuses on the neural network building blocks `torch.nn`. | Topic | Resource | | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | nn.Module basics | [Building Neural Networks](https://docs.pytorch.org/tutorials/beginner/basics/buildmodel%5Ftutorial.html?ref=devopscube.com) | | Layers, losses, optimizers | [Torch.nn](https://docs.pytorch.org/docs/stable/nn.html?ref=devopscube.com) | ### Data Handling - \[16%\] Covers datasets, DataLoaders, transforms, and preparing training data. | Topic | Resource | | ---------------------- | ------------------------------------------------------------------------------------------------------------------- | | Datasets & DataLoaders | [Dataset & DataLoaders](https://docs.pytorch.org/tutorials/beginner/basics/data%5Ftutorial.html?ref=devopscube.com) | | Transforms | [Torchvision transformers](https://docs.pytorch.org/vision/stable/transforms.html?ref=devopscube.com) | ## What to Expect on PTCA Exam Day PTCA is administered like other [Linux Foundation certification](https://devopscube.com/linux-foundation-certification/) exams, through PSI's online proctoring platform. Here's what to prepare: ### [System Check](https://docs.linuxfoundation.org/tc-docs/certification/important-instructions-mc?ref=devopscube.com) Before exam day, make sure your computer is ready for the online proctored exam. - Run the PSI system check in advance to verify that your computer meets the exam requirements. - Close all unnecessary applications and browser windows before launching the exam, as the proctoring software checks for running programs. - Temporarily disable any firewall or antivirus software that could interfere with the secure browser. - Use a single monitor, a stable internet connection, a working microphone, and a webcam that can be moved to scan your room during check-in. ### [ID Checks](https://docs.linuxfoundation.org/tc-docs/certification/lf-handbook2/candidate-identification-and-authentication?ref=devopscube.com) - Bring a valid, government-issued photo ID with your signature. - Make sure the name on your ID exactly matches the name you used when registering for the exam. - Take the exam in a quiet, private, and well-lit room with a clean testing environment. - Remain within the webcam's view throughout the exam. ## FAQ's ### Is there a Voucher or coupon code available for PTCA certification? Yes. You can use code **DCUBE30** to get flat 30% on the PTCA certification registration. ## Conclusion I have covered the key information and resoruces you need to refer to ace the PTCA certification. Earning the PTCA certification can help you stand out by demonstrating your readiness to contribute to real-world AI and machine learning projects. So if you are looking to break in to AI/ML, this is one of the best certifications you can have. On top of that, if you [learn MLOps](https://github.com/techiescamp/mlops-for-devops?ref=devopscube.com) and CUDA, it becomes an added advantage. ### NVIDIA Certified AI Infra and Operations (NCA-AIIO) Exam Guide URL: https://devopscube.com/nvidia-certified-ai-infra-and-operations/ Last updated: 2026-08-14T09:21:05.000Z NVIDIA offers several certifications for tech industry professionals. One of them is the **NVIDIA Certified Associate AI Infrastructure and Operations**. This is a foundational certification for professionals working on the infrastructure side of AI. In this comprehensive guide, we will look at the NVIDIA AI Infrastructure and Operations certification. So, if you are a DevOps, SRE, or a Platform engineer looking for AI certification, this study guide is for you. Let's get started. ## What is NVIDIA AI Infrastructure and Operations Certification? The NVIDIA Certified Associate AI Infrastructure and Operations is an entry-level certification that validates your understanding of the foundational concepts behind AI infrastructure and operations. AI Infrastructure and Operations focuses on the hardware, networking, and operational practices required to run AI workloads at scale, and NVIDIA provides much of that stack today. This includes [GPU](https://devopscube.com/setup-gpu-operator-kubernetes/) clusters, [DPUs](https://blogs.nvidia.com/blog/whats-a-dpu-data-processing-unit/?ref=devopscube.com) (Data Processing Units), high-speed networking hardware, power and cooling systems, cluster orchestration, and monitoring, etc. It also covers how GPU workloads actually get packaged and scheduled using [containers](https://devopscube.com/getting-started-with-docker-contianers/), [Kubernetes](https://devopscube.com/kubernetes-ingress-tutorial/), and GPU sharing, since that is how most AI workloads run in production today. Overall, the certification is designed for IT and infrastructure professionals who want to learn how to **plan, deploy, manage, and operate AI-ready infrastructure** powered by NVIDIA technologies. There are no mandatory prerequisites for this exam. However, NVIDIA recommends having a basic understanding of data center infrastructure, as it will make the learning process much easier. Exposure to Docker and Kubernetes is not required, but it will make the AI operations part much easier. ## NCA-AIIO Exam Price, Format, Duration, and Validity The following table has the important details about the NVIDIA AI Infrastructure and Operations certification. | **Registration Link** | [NCA-AIIO — Official Page](https://www.nvidia.com/en-us/learn/certification/ai-infrastructure-operations-associate?ref=devopscube.com) | | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | **Exam Format** | Online, remotely proctored, multiple-choice | | **Number of Questions** | 50 | | **Duration** | 60 minutes | | **Price** | $125 USD | | **Certification Level** | Associate | | **Prerequisites** | Basic understanding of data center infrastructure | | **Passing Score** | 70% | | **Validity** | 2 years from issuance, renewable by retaking the exam | 💡 ****Note:** If you join NVIDIA promotional webinars, you can get a 50% discount on the certification registration. ## Is NCA-AIIO Certification Worth It? For DevOps and infrastructure engineers, it is one of the most relevant AI certifications available today. Unlike many AI and machine learning certifications, it **focuses on the infrastructure that powers AI** rather than on building or training machine learning models. By preparing for this certification, you will learn. - How GPU infrastructure differs from traditional CPU-based systems. - How to implement cooling and high-speed networking for AI clusters. - How to deploy, monitor, and manage AI infrastructure in production. - How to run GPU workloads inside containers and schedule them on Kubernetes. You will also understand when to use on-premises infrastructure versus cloud environments for different AI workloads. If your role involves **scaling or maintaining the infrastructure** that AI teams rely on, this certification is a good fit for you. Also, it is designed not only for [DevOps engineers](https://devopscube.com/become-devops-engineer/), but also for data center technicians, networking engineers, system administrators, solution architects, IT managers, and other infrastructure professionals who want to build a strong foundation in AI infrastructure and operations. ## NCA-AIIO Exam Syllabus The following table shows the exam domains and their weightage. | Domain | Weight | What to Focus On | | -------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- | | **AI Infrastructure** | 40% | GPU scaling, AI hardware, power & cooling, on-prem vs. cloud, networking, cluster components, and DPUs | | **Essential AI Knowledge** | 38% | AI fundamentals, NVIDIA AI stack, GPU architecture, training & inference, and AI deployment | | **AI Operations** | 22% | Infrastructure monitoring, cluster orchestration, GPU monitoring, virtualization, containerized GPU workloads and Kubernetes GPU scheduling. | ## NCA-AIIO Syllabus-Based Study Guide 💡 ****Important Note:** The NCA-AIIO exam cost is $125\. However, if you can add an extra $25, you can also buy the official course for the exam. But the official course for this certification won't be enough. We have listed some documentation below for you to use as study material. #### AI Infrastructure - \[40%\] This is the largest domain. It covers everything from GPU hardware sizing to data center networking for AI clusters. | Topic | Resource | | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | GPU/accelerated infrastructure overview | [NVIDIA Data Center Solutions](https://www.nvidia.com/en-us/data-center/solutions/accelerated-computing/?ref=devopscube.com) | | DPUs in the data center | [NVIDIA DPU Overview](https://www.nvidia.com/en-us/networking/products/data-processing-unit/?ref=devopscube.com) | | InfiniBand & high-speed DC networking | [NVIDIA InfiniBand](https://www.nvidia.com/en-us/networking/products/infiniband/?ref=devopscube.com) | #### Essential AI Knowledge - \[38%\] This domain covers the conceptual foundations, including what differentiates AI, ML, and DL, and how NVIDIA's software stack fits together. | Topic | Resource | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | AI vs. ML vs. DL fundamentals | [NVIDIA AI Infrastructure and Operations Fundamentals course](https://www.nvidia.com/en-us/training/academy/course-detail/?id=course%3A15139841&ref=devopscube.com) | | NVIDIA AI Enterprise software suite | [NVIDIA AI Enterprise](https://www.nvidia.com/en-us/data-center/products/ai-enterprise-suite/?ref=devopscube.com) | | GPU vs. CPU architecture | [NVIDIA CUDA-X](https://www.nvidia.com/en-us/technologies/cuda-x/?ref=devopscube.com) | #### AI Operations - \[22%\] Covers what happens after the infrastructure is live: monitoring, keeping it running, and sharing GPUs. Containers and Kubernetes also show up here, so DevOps engineers usually find it easy. | Topic | Resource | | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | | GPU monitoring | [NVIDIA DCGM](https://developer.nvidia.com/dcgm?ref=devopscube.com) | | Virtualized GPU infrastructure | [NVIDIA Virtual GPU Solutions](https://www.nvidia.com/en-us/data-center/virtual-solutions/?ref=devopscube.com) | | Cluster orchestration | [NVIDIA Run:ai](https://www.nvidia.com/en-us/software/run-ai/?ref=devopscube.com) | | GPUs in containers | [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html?ref=devopscube.com) | | GPUs on Kubernetes | [NVIDIA GPU Operator](https://devopscube.com/setup-gpu-operator-kubernetes/) | | GPU partitioning | [Multi-Instance GPU (MIG)](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/?ref=devopscube.com) | ## What to Expect on NCA-AIIO Exam Day? The NCA-AIIO exam is delivered through [Certiverse](https://www.certiverse.com/?ref=devopscube.com) and is conducted online with remote proctoring. Before exam day, make sure your computer, testing environment, and identification are ready to avoid any last-minute issues. Let's take a look at what you can expect on exam day. ### System Check Before your scheduled exam, verify that your computer meets the technical requirements. - Run the Certiverse System Compatibility Check well before exam day to ensure your device is supported. - Close all unnecessary applications and background processes. - Disable any VPNs or security tools. - Use a stable internet connection, a webcam, and a microphone. ### ID Verification Before the exam begins, you need to complete an identity verification process. - Present a valid, original government-issued photo ID. - Your first and last name must exactly match the name used when registering for the exam. - Keep your ID ready for verification before launching the exam. ### Test Environment Your testing environment must comply with Certiverse's remote proctoring requirements. - Take the exam in a quiet, private, and well-lit room. - Clear your desk of books, papers, notes, calculators, and any unauthorized materials. - You will be asked to perform a room and desk scan using your webcam before the exam starts. Once check-in is complete, the exam will start. ## Conclusion The NVIDIA AI Infrastructure and Operations certification provides a strong foundation in infrastructure concepts. It is needed to support modern [Kubernetes AI workloads](https://devopscube.com/kubernetes-ai-ml-features/), making it an excellent choice for DevOps engineers, platform engineers, system administrators, and other IT professionals moving into AI infrastructure roles. Also, if you are looking to transition from [DevOps to MLOps](https://devopscube.com/devops-to-mlops/), this certification will add significant value to your learning. If you are looking to build a career in AI infrastructure and operations, the NCA-AIIO certification is a great place to start. ### How to Migrate WordPress to Ghost Pro (Step-by-Step Guide) URL: https://devopscube.com/migrate-wordpress-to-ghost/ Last updated: 2026-09-07T06:24:42.000Z I migrated DevOpsCube from WordPress to Ghost Pro. In this guide, I have documented all the key steps in my migration from WordPress to Ghost. I will show you exactly how to migrate your [WordPress website](https://devopscube.com/setup-wordpress-on-cloudways/) to Ghost without losing any SEO traffic. I have covered the key migration steps you should take to avoid losing any website traffic. Let's get started. ## Before You Start: Scope of This Guide This guide covers Ghost(Pro), the managed hosting from the Ghost team. It is what I have used for migration, as I do not want the administrative overhead of managing the platform. If you are [self-hosting Ghost](https://devopscube.com/self-host-ghost-platform/), everything in this guide applies except the following two things - You need to handle DNS, SSL, and the reverse proxy yourself - The image fetch behavior during migration depends on your storage adapter ## Sign up for a Ghost Pro Plan The first thing you need to do is get a valid Ghost subscription. Go to the [Ghost pricing page](https://ghost.org/pricing/?via=bibin75&ref=devopscube.com) and choose a subscription that fits your requirements. In my case, I chose the publisher plan because I wanted features like custom themes, paid subscription options, and analytics. ⚠️ To use a custom ghost theme, you will need to have a minimum publisher plan. ![Ghost pricing page to choose a plan](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-35.png) To understand the Ghost Pro platform, you can make use of the trial account. Once you are ready to move, purchase a plan to perform the migration. ## Set up a Theme The next step is to set up a theme for your Ghost account. **Step 1:** Log in to your Ghost account.In the bottom-left admin menu, you will find the **Settings** option; click on it ![Ghost settings option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-117.png) ### **Step 2:** Click the **Theme** option. You will find this in the left-side menu bar once you enter Ghost settings. ![Ghost Theme option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-101.png) **Step 3:** Select **Change theme.** ![Ghost change theme option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-102.png) You will see a list of free default themes. ![list of free Ghost default themes](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/ScreenRecording2026-07-13at2.23.24PM-ezgif.com-video-to-gif-converter.gif) Ghost default themes If you want a premium theme, you can go to the [Ghost marketplace](https://ghost.org/marketplace/?ref=devopscube.com) and purchase one based on your website's category. 💡 ****Important Note:** If you are planning to use a premium theme, choose the Upload theme option, upload the theme files, and activate the theme. Now let's start with the migration activities. ## Pre-Migration Tasks Before you start the migration, you need to perform the following on your WordPress website. ### 1\. Take a Full WordPress Backup Ensure you have a full [backup of the WordPress website](https://devopscube.com/backup-wordpress-site-on-bluehost/). Based on your hosting provider, you can perform a full website backup. If something goes wrong, the backup will help. ### 2\. Export Your URL Inventory You need a complete list of every URL currently indexed by Google. You can get this from the current XML sitemap. You can also get it from the [Google Search Console](https://search.google.com/search-console/about?ref=devopscube.com). ### 3\. Export Affiliate Links Next, if you are using affiliate links on your website, you need to export them to a CSV file. Plugins like Pretty Links, ThirstyAffiliates, serve links from paths like `/recommends/` or `/go/`. They don't work when you migrate to Ghost. The affiliate plugins support exporting the links. With the exported file, we can easily create the redirects in Ghost without any URL changes. This way, the affiliate URLs remain the same in Ghost. ## Migrate WordPress to Ghost Now let's get started with migrating the WordPress content. First, we need to import the content into Ghost. For that, Ghost has built-in tools that will help with the migration. Follow the steps given below carefully. ### Step 1: Choose the WordPress Migration Tool On the Ghost settings page, search for **export** in the left menu bar. You will see migration tools listed with WordPress, [Beehiiv](https://devopscube.com/beehiiv-review/), etc. Choose the WordPress option as shown below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-17.png) Ghost migration tools ### Step 2: Enter your WordPress Domain Name Now a page will open to import everything from WordPress to Ghost. For that, you have to enter your website URL (eg, https://example.com/) and click **Continue**. 📌 Ensure you are logged in in your wordpress website. ![enter the site URL to import the content from WordPress](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-119.png) Ghost wordpress migration using DNS ### Step 3: Click Open WordPress Settings Option Now you will get the page with the **Open WordPress Settings** button; click on it. ![click the Open WordPress Settings button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-120.png) Ghost import from Wordpress option ### Step 4: Click Download Export File In WordPress, go to **Tools**, select **Export**, choose **All content**, and click **Download Export File**. It will download an XML file. ![Click the download export file to download all the data](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-116.png) ### Step 5: Upload XML Content Now head back to the Ghost page, upload the downloaded XML file, and click **Continue**. ![Ghost worpress XML content upload option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-121.png) ### Step 6: Click Import Content Next, you will see a summary of the total posts and pages being imported. Once verified, click the **Import Content** button. ![Ghost Import from wordpres option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-122.png) The migration will take some time to finish. It is usually just a few minutes for small websites. ![Ghost wordpress import queue message after XML import.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-123.png) Once it's completed, you will see a confirmation message as shown in the image below. ![Ghost worpdress import completed confirmation](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-124.png) ## Image Migration After migrating from WordPress, you may see broken images on your Ghost site, as shown below. ![Broken images in Ghost after migrating from Wordpress](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-37.png) This is normal. Even though the status shows all content as imported, **Ghost runs a background service** that fetches the images and stores them on Ghost's servers. So the images will be fixed once it's complete. It can take anywhere from a few minutes to a few hours, depending on how much content you migrated. ## Adding Tags to all posts at once When using certain themes, the theme expects specific tags on all the posts. For example, the theme I am using needs a **`#blog`**tag in all the posts. So I had to get them added to all 200+ blog posts. Here is the easy way to do it. You can email the Ghost Concierge Team (concierge@ghost.org) to add tags to all your posts. 💡 If you are a techie, check out [Ghost Tools](https://github.com/TryGhost/gctools?ref=devopscube.com). There are various tools available for performing ghost tasks in bulk. ## Map Permalink Structure The next important step is validating your post and page Permalinks (URL structure) In WordPress, if you have used simple `yourdomain.com/post-slug/`, you don't have to do anything. Ghost uses `/post-slug/` by default. Once you migrate the domain in Ghost, all the post URLs remain the same. You can confirm this by opening a published post and checking its URL. You will be able to see the URL structure with the default DNS given by Ghost. If you have a complex URL structure like **`/category/post-name`** or **`/2025/03/post-name/` ,** you have to make a change in the [ghost routes.yaml](https://docs.ghost.org/themes/routing?ref=devopscube.com). For example, the following route config replicates WordPress date-based permalinks in Ghost. ```yaml routes: collections: /: permalink: /{year}/{month}/{slug}/ template: index taxonomies: tag: /tag/{slug}/ author: /author/{slug}/ ``` Once you update the routes, verify the post URLs and see if they match your existing WordPress URLs. ## Migrate SEO metadata If you are using Yoast or Rank Math for SEO, the metadata won't migrate directly to Ghost. If you have a very small number of posts, you have to do this manually for every post by copying the SEO plugin metadata to the Ghost post metadata setting. However, if you have many posts, the best way to migrate the SEO plugin metadata to Ghost is via the Ghost APIs. You need to export or crawl the post's SEO metadata and update it in the Ghost-specific built-in metadata fields. Here is the process. 1. From Rank Math/Yoast, export SEO metadata 2. Create a script using Claude to map SEO title + description from the export file to Ghost fields ## Migrate Affiliate URLs For your affiliate URLs to work, you need to add all the redirection in the **`redirects.yaml`**file You can find the redirects file option under Labs, as shown below. ![Ghost redirect.yaml file for affialite redirection](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-19.png) Based on your affiliate URL structure, you can create the redirect file. Here is the content of a simple redirect file. ``` 301: /recommends/thrive-offer: https://ert.ly/3456 /recommends/ghost-pro: https://ret.io/4m8XIwI /recommends/bluehost: https://rt.ly/4d9RLvi ``` 💡 Use AI tools to convert the affiliate URL export file into a ghost redirect file. Once you upload the redirects file with all the affiliate URLs, validate the redirects using the affiliate links in your posts. ## DNS Migration Up until now, we have only migrated and validated the content. Your website is still serving traffic from the WordPress website. To finish the migration, you need to perform the DNS migration. Follow the steps given below for the DNS migration. **Step 1:** Go to the Ghost(Pro) option and select the Domain option. Then click Setup existing domain as shown below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-126.png) **Step 2:** Enter the domain name you need to migrate. You will see DNS records populated on the same page. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-127.png) **Step 3:** Now, go to your DNS provider and update those DNS records according to the Type and the given value. An example of a Cloudflare DNS configuration I set up for a website is shown below. ![Ghost DNS records for migration](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-128.png) **Step 4:** Now, go back to the Ghost DNS page and click Setup. It may take 5 to 10 minutes for the domain to activate. Once activated, you will see the green tick mark next to your domain, as shown below. ![Ghost custom domain activated sign](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-129.png) **Step 5:** Once the DNS is validated, verify if the content is being served from the Ghost platform and ensure all the posts, images, and affiliate URLs are working as expected. ## DNS Propagation and Downtime Will there be any DNS downtime during the migration? Possibly. Be prepared for 5-10 minutes of downtime during the DNS change. DNS propagation may take time. You can check the propagation status using [whatsmydns](https://www.whatsmydns.net/?ref=devopscube.com). If you enter your domain name, it will show the DNS propagation status as shown below. ![DNS propgatgion check during Wordpress to Ghost DNS migration](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-20.png) Here are a few things you need to do after the DNS change. 1. Clear the browser cache to flush the DNS cache. 2. Validate the website using a VPN. 3. Check from different regions or new devices (mobile, etc.). ## WWW to non-www The routing rules you set up via WordPress web server configuration won't work in Ghost. So you need to set those up at the DNS level. For example, if you use **Cloudflare**, you can set up a redirect rule as given below. - Go to **Page Rules** in Cloudflare. - Create a new rule: - **If URL matches**: `www.example.com/*` - **Forwarding URL**: `301 Redirect` to `https://example.com/$1` This will redirect all www URLs to the non-www version. ## Submit New Sitemap to Search Console When you migrate to Ghost, your website's sitemap gets changed. For example, from **`/sitemap_index.xml`** to **`/sitemap.xml`** Validate the new sitemap and submit it to the Google Search Console. You can also add the sitemap redirection to the routes config. For example, ``` 301: /sitemap_index.xml: /sitemap.xml /post-sitemap.xml: /sitemap-posts.xml ``` ## Validating RSS When Ghost is running in private mode, RSS feeds will return a **404 error**. RSS feeds do not appear in private posts. You can validate from the private URL followed by **/rss** Once the website is live, you can verify it with the primary domain. A key thing to understand is that the homepage RSS link sometimes returns a 404 error. **This is because of the routes config**. For example, your blogs are listed on **`https://domain.com/blog`**, then your RSS feed URL would be **`https://domain.com/blog/rss`** ## Post-Migration Activities Here is the important part. Your migration is successful only if there are no issues with website traffic. The following are the key things to do after migration, - Check Search Console coverage daily for the next two weeks. - Use tools like Semrush to run a full site audit to identify and fix broken backlinks. - Compare the organic traffic against the same period before migration. You can expect a dip in traffic for a few weeks after migration. However, if you have all the key steps in order, you will recover quickly. Personally, I haven't seen much of a dip in traffic. In fact, after moving to Ghost Pro, the site's loading speed has improved significantly, and the overall user experience has improved. ## Conclusion In this guide, I have walked you through the entire end-to-end process of how to migrate WordPress to Ghost. Not only that, but I have also covered image migration, DNS migration, DNS downtime, and validation. By following all these steps, you will be able to set up your Ghost account without any issues. If you have any doubts about the migration, drop them in the comments; we will help you out. Here are other useful guides related to the Ghost platform 1. [How to hide posts by tag in Ghost](https://devopscube.com/hide-posts-by-tag-in-ghost/) 2. [Setup website analytics on your Ghost](https://devopscube.com/website-analytics-in-ghost/) ### 8 Best Platforms to Create and Sell Online Courses in 2026 URL: https://devopscube.com/platforms-sell-online-courses/ Last updated: 2026-08-13T04:42:18.000Z Are you looking for the best platform to create and sell your courses? I have got you covered. In this blog, I have listed the top platforms for creating and selling online courses, along with their key features and pricing. Online learning is booming, and more people are creating and selling their own courses online. 💡 According to recent [reports](https://www.grandviewresearch.com/industry-analysis/e-learning-services-market?ref=devopscube.com), the e-learning service market is projected to reach ****$842.64 billion** by 2030. Let's take a closer look at the platform list. ## List of Platforms to Sell Tech Courses So, to sell a course, you need the right platform that supports high-definition video, text, PDF downloads, code highlighting, and more. Also, you need a good payment gateway integration, email marketing, good user experience, etc. This way, you can actually focus on actual content creation and not worry about managing the platform itself. Trust me on this. I have tried running my self-managed learning platform, and most of the time it ended up in the administrative aspects rather than in actual course creation. Considering all the above, I have listed the top managed platforms you can use to host and monetize your courses. Here is the list. 1. [Teachable](https://devopscube.com/platforms-sell-online-courses/#1-teachable) 2. [Thinkific](https://devopscube.com/platforms-to-host-online-courses/#2-thinkific) 3. [Podia](https://devopscube.com/platforms-to-host-online-courses/#3-podia) 4. [Kajabi](https://devopscube.com/platforms-to-host-online-courses/#4-kajabi) 5. [Learnworlds](https://devopscube.com/platforms-to-host-online-courses/#5-learnworlds) 6. [Udemy](https://devopscube.com/platforms-to-host-online-courses/#6-udemy) 7. [BuddyBoss](https://devopscube.com/platforms-to-host-online-courses/#7-buddyboss) 8. [LearnDash](https://devopscube.com/platforms-to-host-online-courses/#8-learndash) Nlet'sets look at each platform in a little detail so that you will know which platform suits you the best. ## 1\. Teachable Teachable is one of the top platforms for creating and selling online courses. In fact, I host all my DevOps courses ([DevOpsCube courses](https://courses.devopscube.com/?ref=devopscube.com) ) on the Teachable platform. The ease of use and every feature in this platform are very satisfactory for me. You can add video, text content, **code blocks with syntax highlighting**, images, and more. Overall, here is what you can sell through this platform. 1. **Online Courses** \- You can sell online courses in text and video format. Also, you can provide quizzes, and learners will get mobile access. 2. **Coaching** \- You can coach anyone on a one-on-one call or in group sessions. You can schedule the call and manage payments directly within the platform. 3. **Digital Downloads** \- You can sell templates, guides, and resource materials. 4. **Membership** \- Start your community with subscription models. ![Teachable](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-77.png) According to the Teachable report, this platform is used in over 180 countries, serving more than 100 million students, and with Teachable and Hotmart, overall **creators have earned over $ 10 billion.** ### Key Features of Teachable The following are the features you will get on Teachable. - You can publish 5-100 products based on the plan you choose. - You can create unlimited product drafts. - You will get support from Teachable AI to create your products a little faster. - Students or learners will get access to iOS & Android apps. - Available for global payments and taxes. - You can provide an affiliate program for your product. - Provide course certification for completion. - You will get live chat support. - Get [custom domain](https://devopscube.com/teachable-domain-in-pending-state/) permissions. - Get free subtitles and translations and unlimited integrations. ### Teachable Pricing Plans The table below contains the monthly and annual pricing of Teachable. | **Plan** | **Monthly Plan** | **Annual Plan** | | ------------ | ---------------- | --------------- | | **Builder** | $29 | $69/Month | | **Growth** | $63 | $139/Month | | **Advanced** | $133 | $309/Month | 🎁 If you want a discount, use the [Teachable coupon code](https://devopscube.com/teachable-coupon/) to save on your hosting price. ## 2\. Thinkific ![Thinkific](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-80.png) [Thinkific](https://www.thinkific.com/?ref=devopscube.com) is an online hosting platform offering a range of solutions to sell online. Unlike LearnDash, you can host and handle everything in it. This is also called an all-in-one platform. In this platform, you can create courses, host videos, accept payments, manage students, and maintain your entire learning academy in one place. This platform is best for non-tech people, coaches, educators, creators, and businesses. ### Thinkific Features Let's look into what features you will get on this platform. - You will get unlimited live events and coaching sessions with Zoom integration. - Get unlimited courses with video lessons, quizzes, and student discussions. - Includes five digital downloads, which may be e-books, templates, etc. - You can customize the site design using HTML and CSS. - Get advanced sales tools to improve the purchase of your course. - You will get a reporting and analytics dashboard. - You can create a custom domain for your brand, and more. ### Thinkific Pricing The table below contains the monthly and annual pricing plans offered by Thinkific. | **Plan** | **Monthly Plan** | **Annual Plan** | | ------------------ | ---------------- | --------------- | | **Basic** | $49/Month | $36/Month | | **Start** | $99/Month | $74/Month | | **Grow** | $199/Month | $149/Month | | **Thinkific Plus** | Custom | custom | ## 3\. Podia ![Podia](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-82.png) [Podia](https://www.podia.com/?ref=devopscube.com) is an all-in-one platform for creating and selling digital products, including courses, digital downloads, coaching, services, webinars, community, and an online store. On this platform, you can host, do email marketing, and use the site builder to make the process of selling your products easy. If you are a coach, creator, or educator who doesn't want to manage multiple tools, but only wants to focus on content, then this platform will suit you. ### Podia Pricing Here are the [pricing and plans](https://www.podia.com/pricing?ref=devopscube.com) of Podia. You will also get a 30-day free trial for both plans. | **Plan** | **Monthly Plan** | **Annual Plan** | | ---------- | ---------------- | --------------- | | **Mover** | $39/month | $33/Month | | **Shaker** | $89/month | $75/Month | ## 4\. Kajabi ![Kajabi](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-83.png) [Kajabi](https://kajabi.com/?ref=devopscube.com) is also an all-in-one platform where you can create and sell digital products such as, courses, coaching, podcasts, memberships, communities, newsletters, and digital downloads. On this platform, you will also get a website builder, course delivery system, email marketing, sales funnels, and payments. Also, get Kajabi AI features to reduce your creation time and get 24/7 customer support ### Kajabi Pricings Here are the monthly and annual pricing of Kajabi. I recommend you choose Kickstarter if you are new to online business. | **Plan** | **Monthly Plan** | **Annual Plan** | | --------------- | ---------------- | --------------- | | **Kickstarter** | $89/Month | $71/Month | | **Basic** | $179/Month | $143/Month | | **Growth** | $249/Month | $199/Month | | **Pro** | $499/Month | $399/Month | ## 5\. LearnWorlds 0:00 /0:12 1× Source: LearnWorlds [LearnWorlds](https://www.learnworlds.com/?ref=devopscube.com) is a cloud-based learning management system (LMS), and it is an online course platform to create, sell, build a website, and manage students. You can also provide videos, quizzes, and assignments, and you can brand your site rather than just hosting the course. It is built specifically for course creators with an AI-powered LMS. ### LearnWorlds Features Lets look into the best features of LearnWorlds. - You can create unlimited paid courses. - You will get to create an eBook page builder. - Get the option to conduct exams and quizzes for the learners. - You can schedule or conduct 1:1 and group sessions. - You can conduct live classes and webinars. - Get interactive videos with AI, and more ### LearnWorlds Pricing The following table contains the [pricing plans](https://www.learnworlds.com/pricing/?ref=devopscube.com) of the LearnWorlds platform. Note that, for High volume & Corporate plans, you need to contact their [sales team](https://www.learnworlds.com/book-a-demo/?ref=devopscube.com). | **Plan** | **Monthly Plan** | **Annual Plan** | | --------------------------- | ---------------- | --------------- | | **Starter** | $29/Month | $24/Month | | **Pro Trainer** | $79/Month | $143/Month | | **Learning Center** | $299/Month | $249/Month | | **High Volume & Corporate** | Custom | Custom | ## 6\. Udemy ![Udemy](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-92.png) [Udemy](https://www.udemy.com/?ref=devopscube.com) is free to create and host your course online. You don't need to pay any cost to publish your course. You can upload videos, quizzes, and other materials. So, Udemy will handle the hosting, and it also provides the built-in marketing and promotion tools. You just focus on managing and creating content. If you publish a paid course, then some percentage of the sales revenue will go to Udemy. (You can publish a free course as well) But in the free course, you can upload only 2 hours of video course, students won't get a completion certificate, and access to the Q&A function. If you want to know more about Udemy, here is the official document on [why to teach online with Udemy](https://teach.udemy.com/teaching-on-udemy/why-teach-online-on-udemy/?ref=devopscube.com). ## 7\. BuddyBoss ![BuddyBoss](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-93.png) [BuddyBoss](https://www.buddyboss.com/?ref=devopscube.com) is a WordPress platform which will helps you to build online communities, membership sites, and online courses. Also, it is a cloud-based platform. Many creators, coaches, course builders, and community brands use BuddyBoss because it lets you create a private social space without depending on platforms like Facebook Groups. BuddyBoss is known for four things: - **Community Features:** You will get activity feeds, profiles, private messaging, member connections, groups, and forums. - **Course & Membership Integration:** It will work with LearnDash, LifterLMS, TutorLMS, MemberPress, and WooCommerce. - **Customization:** You will get total control over themes, layouts, branding, and design. - **Mobile App:** BuddyBoss App lets you publish your own branded mobile app for iOS & Android. ### BuddyBoss Pricing BuddyBoss offers six plans in total, three for the web and three for the mobile app. Let’s break down the pricing and plans in a separate table. First, lets look into web plans. | **Plan** | **Pricing** | | --------------------- | ----------- | | **Pro** | $399/Year | | **Plus** | $599/Year | | **All-In-One Bundle** | $4,999/Year | Now, the following table contains the mobile app plans and pricing. | **Plan** | **Pricing** | | --------------------- | ----------- | | **App Monthly** | $219/Month | | **App Annual** | $179/Month | | **All-In-One Bundle** | $4,999/Year | If you want to know the features of each plan, here is the detailed [pricing and features](https://www.buddyboss.com/pricing/?ref=devopscube.com) of BuddyBoss ## 8\. LearnDash ![LearnDash](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-79.png) [LearnDash](https://www.learndash.com/?ref=devopscube.com) is a premium WordPress plugin that functions as a learning management system (LMS) for creating and selling online courses. You can create a course in it, only if you use WordPress, and it is a cloud-based hosting solution. ### Features of LearnDash LMS - You will get a drag-and-drop course builder. - Get the AI course builder outline and quiz builder. - You can easily manage the assignments - You will get team collaboration tools. - Get to sell course subscriptions, memberships, bundles, and one-time purchases. - You will get the integration of PayPal and Stripe. - Add-on marketplace and more. ### LearnDash LMS Pricing LearnDash LMS does not offer a monthly plan. So, lets look into the annual plan of it. - For 1 site - $199/year - For 10 Sites - $399/year - Unlimited - $799/year If you plan to use the LearnDash plugin on a single site, the $199 plan is sufficient. If you have multiple sites, consider opting for 10-site or unlimited plans. ## FAQs The following are the common questions people often ask about platforms for hosting online courses. ### 1\. Which platform is best for beginners to sell courses? Teachable and Thinkific are the best for beginners to create and sell online courses and digital products. ### 2\. Where can I host my own online courses? You can host an online course on Teachable, LearnDash, Thinkific, Podia, Kajabi, or LearnWorlds. These are the best platforms that I personally know for hosting online courses. ### 3\. What is the best platform for creating and selling online courses for creators? Teachable is the best platform for creators to create online courses. We created DevOpsCube courses on Teachable. We find this to be a definitely worthwhile platform for creating and selling courses. ## Conclusion The global creator-economy market is expected to grow around [**US$528.39 billion by 2030**](https://www.demandsage.com/creator-economy-statistics/?ref=devopscube.com) (CAGR \~22.5%) You can be a part of it by monetizing your skills through courses. The platforms listed in this guide will help you with that. You create the content, and let the platform handle hosting, payment, etc. If you are looking for content creation tools, here are some of the [best options for engineers](https://devopscube.com/content-creation-tools/). ### Linux Foundation Open Source Summit Discount Coupon URL: https://devopscube.com/open-source-summit-discount-coupon/ Last updated: 2026-08-05T16:24:53.000Z The Open Source Summit is an even organized by the [Linux Foundation.](https://events.linuxfoundation.org/?ref=devopscube.com) It brings open-source maintainers, developers, [devops engineers](https://devopscube.com/become-devops-engineer/), architects, community leaders, and companies that build or use open-source technologies. It a broader event than KubeCon + CloudNativeCon. KubeCon's focus is only on cloud-native technologies like [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). However, Open Source Summit covers Linux, [containers](https://devopscube.com/getting-started-with-docker-contianers/), AI, cloud infrastructure, security, embedded systems, networking, open-source governance, and more. In this page, we list event specific discount codes for Open Source Summit happening in different regions. ## Open Source Summit Korea Discount Coupon (August 11-12) We have exclusive discounts coupon for OSS event happening in India [Register Here ](https://events.linuxfoundation.org/open-source-summit-korea/register/?ref=devopscube.com) **Coupon**: Use Code **COMTECHIES** at checkout ⌛ The offer expires soon. So lock in the price before it expires. 📌 ****Huge News:** Linux Torvalds, Creator of Linux and Git, will be live on the keynote stage - you can’t miss it! The event pass includes the following. - All conference content – Main Stage & Technical Tracks - Social events & networking activities - Startup Showcase - Solutions Showcase Entry - Coffee, Snacks, & Lunch - Conference T-shirt Following are the key sessionHighlights - [**Linux in the Land of LLMs**](https://osskorea2026.sched.com/event/2Q8oF?ref=devopscube.com) \- Greg Kroah-Hartman, Linux Kernel Maintainer & Fellow, **The Linux Foundation** - [**Open Source for AI and AI for Open Source**](https://osskorea2026.sched.com/event/2PLyX?ref=devopscube.com) \- Priya Nagpurkar, Vice President, Hybrid Cloud and AI Platforms, **IBM Research** - [**To Nemotron and Beyond: Building the Open Source AI Ecosystem**](https://osskorea2026.sched.com/event/2Q8pZ?ref=devopscube.com) \- Chanran Kim, Senior Developer Relations Manager, **NVIDIA** - [**Building Trust in the Age of AI: From Data Openness to Responsible Innovation**](https://osskorea2026.sched.com/event/2PHjw?ref=devopscube.com) \- Dr. Hongrak Lee, President and Chief AI Officer, **LG AI Research** ## How to Apply the Discount Code You get the option to apply the discount code at the checkout page as shown below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-105.png) Open Source Summit Discount Code Option ## Conclusion If you are an open source enthusiast, this is a great even you can go. Also, you can check out the latest [discounts for Kubecon here.](https://devopscube.com/kubecon-discount-code/) For all other certifications and training discounts, checkout the [Linux Foundation Coupons](https://devopscube.com/linux-foundation-coupon/) page. ### Container Image Signing and Attestations in Kubernetes (Complete Guide) URL: https://devopscube.com/container-image-signing-kubernetes/ Last updated: 2026-09-04T10:56:26.000Z One of the key aspects of [container image management](https://devopscube.com/docker-image-build-promotion-piepeline/) is supply chain security, and container image signing plays a key role in it. Through the hands-on exercises in this tutorial, we will help you understand how container image signing and attestation work in Kubernetes. The ultimate goal of this guide is to teach you the following. - What image signing is and how it works - Why SBOM and build provenance are necessary - How to sign container images using Cosign - How to generate and attach provenance and SBOM attestations - How to enforce run-time verification at the [Kubernetes admission layer](https://devopscube.com/kubernetes-admission-policies/) using Kyverno. Let's get started. ## What is Container Image Signing? Let's say you [build a container image](https://devopscube.com/build-docker-image/) and push it to any image registry. But anyone with permission to the registry might accidentally overwrite it, or an **attacker might modify it** by injecting malware and push the compromised image back to the registry. Without signing, there is no reliable way to know whether the image has been modified. You just deploy it, which could potentially introduce a security vulnerability that attackers can exploit to gain access to your infrastructure. Here is where Container image signing comes into the picture. Container image signing **adds a cryptographic digital signature to the container image**. This signature helps you verify that the image has not been modified since it was signed and that it comes from a trusted source. *So what if someone modifies the image after signing?* If it's modified, signature verification will fail. This makes image signing the fundamental part of the **software supply chain security stack.** Also, modern [MLOps](https://devopscube.com/devops-to-mlops/) pipelines are adding many third-party models, datasets, and build artifacts. So, verifying '***what you deploy***' is now a **core security requirement,** not a nice-to-have. ## What are Attestations? Image signing alone is no longer enough. Container image signing ensures that the image was created by a trusted source and not modified. However, modern [software supply chain security](https://cheatsheetseries.owasp.org/cheatsheets/Software%5FSupply%5FChain%5FSecurity%5FCheat%5FSheet.html?ref=devopscube.com) requires more than just image signing. You also need to **verify image metadata**. The following three kinds of metadata are very important. ### 1\. Software bill of materials (SBOM) It is a list of software packages and dependencies included in the image. It is generated in formats such as SPDX or CycloneDX JSON using tools like [Trivy](https://devopscube.com/scan-docker-images-using-trivy/). ### 2\. Build Provenance (SLSA) Information about how, where, and by which CI/CD pipeline the image was built. It can be created using [Github actions workflows](https://devopscube.com/slsa-provenance/) or similar CI platform functionalities. ### 3\. Vulnerability Scan Results Using tools like Trivy, you can scan the image for vulnerabilities and generate a JSON report. The SBOM, provenance documents, and [vulnerability scan results](https://devopscube.com/scan-docker-images-using-trivy/) can all be attached to a container image as **attestations**. 💡 An attestation is a ****cryptographically signed piece of metadata** that proves all these documents are legitimate, belongs to the specific image and has not been modified. The following image shows the anatomy of container image trust. ![anatomy of the container image trust](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-337.png) anatomy of the container image trust. 💡 When it comes to runtime security in [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/), we can use a tool called [Kyverno](https://kyverno.io/?ref=devopscube.com) to enforce validations for both image signing and attestations. If there is a valid signature and attestations, the pod will be deployed. Otherwise, Kyverno will block the pod from being deployed. ## Image Signing, Attestation, and Verification Flow The following image shows a high-level design of the image signing and attestation process used in a typical enterprise environment. ![Container Image Signing and Attestations in Kubernetes ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-2.png) The design primarily shows how a container image is signed and attested with [Cosign](https://github.com/sigstore/cosign?ref=devopscube.com), and validated in a [Kubernetes cluster](https://devopscube.com/production-ready-kubernetes-cluster/) with Kyverno. Here is how it works. - The process starts with the CI/CD pipeline. It builds a container image and then pushes it to a container registry (For ex, AWS ECR). - Next, the image is digitally signed using Cosign and a private key. - Then the build provenance (**`predicate.json`**) is generated by the CI pipeline. It is also signed with the same private key and uploaded to the registry alongside the image. - Now, when someone or a CD system tries to deploy the image in a Kubernetes cluster, Kyverno intercepts the API request through the [admission controller.](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/?ref=devopscube.com) - Kyverno uses the related Cosign public key (referenced from a ConfigMap) to verify both the image signature and the attestation. - If both the signature and attestation are valid, the Pod gets deployed. Otherwise, Kyverno blocks the deployment. The whole workflow ensures that **only trusted container images** with verified build metadata can be deployed to the cluster. ## What we are Building To better understand the workflow, we will build the full setup we discussed on our local system, using AWS ECR as the image repository. Ideally, all the steps we perform would be done by a CI/CD system. But my idea is to teach the key implementation details of every stage. So we will set it up manually and simulate a couple of details. ## Prerequisites To get started, the following are the key prerequisites. - Kubernetes cluster - [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/) configured with login access to ECR - [Docker](https://devopscube.com/docker-tutorial-getting-started-with-docker-swarm/) - [kubectl](https://devopscube.com/kubectl-set-context/) - [Helm](https://devopscube.com/create-helm-chart/) - [Trivy](https://devopscube.com/scan-docker-images-using-trivy/) 💡 This guide is AWS ECR-specific. However, you can also try these steps in any cloud. You just need to replace the AWS specific commands with the respective cloud provider. Let's get started. ## Sign and Attest a Container Image with Cosign Here is what we are going to do in this section, step by step. 1. Install cosign 2. Generate Cosign Key Pair 3. Create SBOM Report and Vulnerability Scan Report of the image 4. Generate SLSA Provenance document for the image 5. Push Image to ECR 6. Sign a Container Image Using Cosign 7. Attest SLSA Provenance and SBOM Using Cosign 8. Verify the Signing and Attestation Once you complete all eight steps, you will have a clear picture of the image signing and attestation process. Let's get started. ### Step 1: Build the Container Image To complete all the steps, you need a container image locally to work with. I already have an **`web-server:v1.0.0`** image on my local workstation, and I will be using it for the demonstration. If you don't have one, [refer to this guide to build your own image](https://devopscube.com/build-docker-image/) and build an image named **`web-server:v1.0.0`** ### Step 2: Create a Project Directory Now create a dedicated project directory to store all the files we generate. ```bash mkdir -p image-security-demo cd image-security-demo ``` Perform all the following steps from this directory. ### Step 3: Install Cosign Let's start by installing Cosign on your local system Use the following command to install Cosign. **For Mac:** ```bash brew install cosign ``` **For Linux:** ```bash curl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64" sudo mv cosign-linux-amd64 /usr/local/bin/cosign sudo chmod +x /usr/local/bin/cosign ``` For other installation methods, refer to the [official documentation](https://docs.sigstore.dev/cosign/system%5Fconfig/installation/?ref=devopscube.com). ### Step 4: Generate Cosign Key Pair To sign and verify the images, you need Cosign keys. To generate them, use the following command. You will be asked to set a PIN for the private key ```bash cosign generate-key-pair ``` The keys will be created as **`cosign.key`** and **`cosign.pub`**. Keep the keys safe and don't forget the PIN you set; you'll need it every time you sign. ### Step 5: Create SBOM Report and Vulnerability Scan Report Now, we will [generate an SBOM report](https://devopscube.com/scan-docker-images-using-trivy/#generate-a-software-bill-of-materials-sbom) of the container image using Trivy. Use the following command to generate an SBOM report. ```bash trivy image --format spdx-json --output sbom_report.json web-server:v1.0.0 ``` This will create a JSON file `sbom_report.json` in your current working directory. Use the following command to generate a vulnerability scan report. ```bash trivy image --scanners vuln --format cosign-vuln --output vuln.json web-server:v1.0.0 ``` Your policy reads `metadata.scanFinishedOn`, so check it's actually there and in timestamps(RFC3339) ```bash jq '.metadata' vuln.json ``` Expected output: ```bash { "scanStartedOn": "2026-07-31T14:59:43.393352+05:30", "scanFinishedOn": "2026-07-31T14:59:43.393352+05:30" } ``` ### Step 6: Generate SLSA Provenance The next step is to create SLSA provenance documentation. 💡 For this demo, we are creating the provenance documentation manually. In actual projects, it is generated via CI/CD systems. Please refer to the [SLSA generation using GitHub Actions](https://devopscube.com/slsa-provenance/) guide to learn more. Create an `predicate.json` environment predicate file with the sample build metadata as given below. ```bash cat > predicate.json <<'EOF' { "subject": [ { "name": "ghcr.io/techiescamp/demo-app", "digest": { "sha256": "4fd9b6d3d7cc4a1b2c3d4e5f60718293a4b5c6d7e8f90" } } ], "predicate": { "builder": { "id": "https://localhost/manual-build" }, "buildType": "https://localhost/manual", "invocation": { "configSource": { "uri": "git+https://github.com/techiescamp/demo-app@refs/heads/main", "digest": { "sha1": "bd51f526433a11a0d9c8b26977c9b1ef6dbd35ca" }, "entryPoint": ".github/workflows/docker-build.yml" } } } } EOF ``` In the above file, the subject block contains the image name and a unique SHA ID indicating which version of the image was created. It **contains the details of the GitHub Actions repository** where it was built, the workflow SHA ID, and the file used to build the image. With this information, you can find **which workflow and repository created the image.** Also, you may notice we are using the URI format for **`buildtype`** and **`buildid`**. Because that's how SLSA defines both fields, it shows the build tool used to build the provenance. For example, the builder ID URL looks like the following. ```bash https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@refs/tags/v2.1.0 ``` This means it was built using slsa-github-generator version 2.1.0. 💡 In the actual environment, you will not be writing this JSON file. Your CI tool should automatically generate it with build details and attach it to the image ### Step 7: Push Image to ECR The next step is to tag the image and push it to ECR. 💡 **Why do we push the Docker image to the registry before signing it?* When you push the image to the registry, it gets the immutable SHA-256 digest. Cosign signs that digest and stores that signature as a separate OCI artifact in the registry. If you haven't logged into ECR yet, run the following commands. 📌 ****Note:** Update your Account ID, Region, and ECR repositories name before running the following commands. ```bash aws ecr get-login-password --region | \ docker login --username AWS --password-stdin .dkr.ecr..amazonaws.com/ ``` Now let's save the ECR repository URL as an environment variable. ```bash export ECR_REPO=.dkr.ecr..amazonaws.com/ ``` You can set the ECR repo to immutable using the following command. This way no one can overwrite the tag. > **Note:** If you used a different repository name or AWS Region update it in the following command before running it. ```bash aws ecr put-image-tag-mutability \ --repository-name web-server \ --region us-west-2 \ --image-tag-mutability IMMUTABLE ``` Next, tag the image and push it to ECR. ```bash docker tag web-server:v1.0.0 ${ECR_REPO}:v1.0.0 docker push ${ECR_REPO}:v1.0.0 ``` ### Step 8: Sign The Container Image Using Cosign Now that we have the image in the repository, let's sign it with Cosign. First, we need to get the image's digest. You can also use the image tag to sign an image. This resolves the tag to the digest of the tag at that moment. However, the **standard** **best practice is to sign it with its digest** because the digest is immutable. > **Note:** If you used a different repository name, AWS Region, or image tag, update the values in the following command before running it. ```bash aws ecr describe-images \ --repository-name web-server \ --region us-west-2 \ --image-ids imageTag=v1.0.0 \ --query 'imageDetails[0].imageDigest' \ --output text ``` The above command would return the image digest. We need it in this step and the next. So copy it to Notepad. Now, run the following command with your image DIGEST to sign the image ```bash cosign sign --key cosign.key ${ECR_REPO}@ ``` The command will prompt you to enter the **private key PIN** you created while generating the Cosign key pair. Once the PIN is verified, Cosign signs the image and **stores the signature in ECR as an OCI artifact.** ### Step 10: Attest Provenance and SBOM and Vulnerability Scan Using Cosign The next step is to attest the Provenance file and SBOM report to the container image. Use the following command to attest the **`predicate.json`** provenance file we generated in step 6 using the image digest you got in the previous step. ```bash cosign attest \ --key cosign.key \ --predicate predicate.json \ --type slsaprovenance1 \ ${ECR_REPO}@ ``` The `--type` flag is to specify the version. It tells which Cosign version the [SLSA provenance format](https://slsa.dev/spec/v0.2/provenance?ref=devopscube.com) your predicate JSON follows. Then, use the following command to attest the SBOM report we generated in step 5. ```bash cosign attest \ --key cosign.key \ --predicate sbom_report.json \ --type spdxjson \ ${ECR_REPO}@ ``` Then, use the following command to attest the Vulnerability Scan Report ```bash cosign attest \ --key cosign.key \ --predicate vuln.json \ --type vuln \ ${ECR_REPO}@ ``` ### Step 11: Verify the Signing and Attestation Now that the image in the repository is signed and attested, let's verify it using cosign. ⚠️ We are doing a manual verification only for learning and testing. In an actual project workflow, these validations are part of the runtime verification inside the cluster. It is typically implemented using tools like Kyverno. Use the following command to check if the image is signed. Replace **`${ECR_REPO}:v1.0.0`** with the correct image URL if you are using a different one. ``` cosign verify --key cosign.pub ${ECR_REPO}:v1.0.0 | jq '.' ``` You will get **`cosign claims were validated`** a message if the image is signed and **`Error: no signatures found`** a message if the image is not signed. You will also get the three entries in the output as shown in the image below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-8.png) After completing all the steps, you can see four artifacts in the ECR as shown in the image below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image-6.png) As you can see, the artifact tagged as **`v1.0.0`** is the container image, and the other three are **`Signature, Provenance, and SBOM`** also present as OCI artifacts along with the image. ## Signing Multi-Arch Images If you [build with docker buildx](https://devopscube.com/build-multi-arch-docker-image/) for more than one platform, you do not get one image. You get a manifest list that points to one image per architecture, each with its own digest For example, ```bash web-server:v1.0.0 │ ▼ Multi-arch image index sha256:index123 │ ├── linux/amd64 manifest │ sha256:amd123 │ └── linux/arm64 manifest sha256:arm123 ``` As shown above, each architecture has its own image manifest and digest. So if you run the regular signing command, it will only sign the top-level image index. So the verification of other image architectures would fail. This is solved using the **`--recursive`** flag. For example, the following command would sign all the architecture-specific image manifests. ```bash cosign sign --key cosign.key --recursive ${ECR_REPO}@ ``` ## Download Provenance and SBOM From Registry There are scenarios where you might want to inspect the SBOM and check whether the exact package and version exist in the image. Let's see how to download the Provenance file and SBOM report from the registry. Run the following command to pull the provenance file. ```bash cosign verify-attestation \ --key cosign.pub \ --type slsaprovenance1 \ ${ECR_REPO}:v1.0.0 \ | jq -r '.payload' | base64 -d | jq . > provenance.json ``` You will get the `provenance.json` file locally, which you can open and check manually. Then, run the following command to get the SBOM report. ```bash cosign verify-attestation \ --key cosign.pub \ --type spdxjson \ ${ECR_REPO}:v1.0.0 \ | jq -r '.payload' | base64 -d | jq . > sbom.json ``` You will get the `sbom.json` report locally. Then, run the following command to get the vulnerability scan report. ``` cosign verify-attestation \ --key cosign.pub \ --type vuln \ ${ECR_REPO}:v1.0.0 \ | jq -r '.payload' | base64 -d | jq '.predicate.metadata' > vuln-metadata.json ``` You will get the `vuln-metadata.json` report locally. Now that we have learned all the key signing and attestation concepts, let's understand **how this is verified at runtime** in a Kubernetes cluster. ## Enforce Verification in Kubernetes With Kyverno The key security aspect comes at runtime verification. You need to verify the following before the container image is deployed in the cluster. 1. Is the image signature valid? 2. Does it contain a valid SLSA document? 3. Does it have a valid, recent vulnerability scan report attested? 4. Does it have a valid SBOM report? You can verify all these using Kyverno. It does so in the admission layer. Meaning, when the [Kubernetes API server](https://devopscube.com/kubernetes-architecture-explained/#1-kube-apiserver) receives the pod deployment request, Kyverno admission controller intercepts that request and runs through all the checks mentioned in the Kyverno policy. If all checks pass, Kyverno allows the pod to be deployed. Otherwise, the deployment gets blocked. Let's see how we can use Kyverno to validate a container image in a Kubernetes cluster. ### Install Kyverno In [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/), we will use Kyverno to create policies that verify that images are signed. Run the following command to add the Kyverno [Helm](https://devopscube.com/helm-best-practices-essential-tips-to-know/) repo. ```bash helm repo add kyverno https://kyverno.github.io/kyverno/ helm repo update ``` Now, install Kyverno. ```bash helm install kyverno kyverno/kyverno -n kyverno --create-namespace ``` Then use the following command to list the pods to check they are up and running. ```bash $ kubectl get po -n kyverno NAME READY STATUS RESTARTS AGE kyverno-admission-controller-748865c877-hqvc4 1/1 Running 0 37s kyverno-background-controller-746b6968-c8fql 1/1 Running 0 37s kyverno-cleanup-controller-59dbd88b9-kj9zt 1/1 Running 0 37s kyverno-reports-controller-58c566fb8c-rpz44 1/1 Running 0 37s ``` ### Store the Public Key in a ConfigMap Kyverno needs the public key to verify whether the image is signed. So let's create a Kubernetes ConfigMap with the cosign.pub key. ```bash kubectl create configmap cosign-public-key \ --from-file=cosign.pub=./cosign.pub \ -n kyverno ``` Then run the following command to verify if the ConfigMap is created. ```bash $ kubectl get cm -n kyverno NAME DATA AGE cosign-public-key 1 16s kube-root-ca.crt 1 42s kyverno 8 36s kyverno-metrics 3 36s ``` You can see the ConfigMap cosign-public-key created along with other Kyverno ConfigMaps. ### Create the Kyverno ImageValidatingPolicy Let's create a Kyverno policy that accepts and denies images. Create a YAML file `kyverno-policy.yaml` by running the following command. ```yaml apiVersion: policies.kyverno.io/v1 kind: ImageValidatingPolicy metadata: name: image-validation-policy spec: validationActions: - Deny failurePolicy: Fail matchConstraints: resourceRules: - apiGroups: [""] apiVersions: ["v1"] operations: ["CREATE", "UPDATE"] resources: ["pods"] matchImageReferences: - glob: ".dkr.ecr..amazonaws.com/:*" credentials: providers: - amazon variables: - name: cm expression: >- resource.Get("v1", "configmaps", "kyverno", "cosign-public-key") - name: maxScanAge expression: 'duration("168h")' attestors: - name: cosign cosign: key: expression: "variables.cm.data['cosign.pub']" ctlog: url: "https://rekor.sigstore.dev" insecureIgnoreTlog: true insecureIgnoreSCT: true attestations: - name: provenance intoto: type: "https://slsa.dev/provenance/v1" - name: vulnerabilityScan intoto: type: "https://cosign.sigstore.dev/attestation/vuln/v1" validations: # Verify the image signature. - expression: >- images.containers.map(image, verifyImageSignatures( image, [attestors.cosign] ) ).all(result, result > 0) message: "Image must be signed with the trusted Cosign key" # Verify the SLSA provenance attestation. - expression: >- images.containers.map(image, verifyAttestationSignatures( image, attestations.provenance, [attestors.cosign] ) ).all(result, result > 0) message: "Image must have a valid SLSA provenance attestation" # Verify the vulnerability attestation and require a scan # performed within the last seven days. - expression: >- images.containers.map(image, verifyAttestationSignatures( image, attestations.vulnerabilityScan, [attestors.cosign] ) > 0 && has(extractPayload(image, attestations.vulnerabilityScan) .predicate.metadata) && timestamp( extractPayload(image, attestations.vulnerabilityScan) .predicate.metadata.scanFinishedOn ) >= time.now() - variables.maxScanAge ).all(result, result) message: >- Image must have a valid vulnerability scan attestation created within the last seven days ``` Let's see what each section is for. - **matchConstraints** \- Contains the policy that only applies to pods during creation and update. Modify the policy according to your objects. - **matchImageReferences** \- URL of your image repository. - **credentials** \- Since we are using ECR, we specify the provider as amazon. - **variables** \- Fetches the public key from the ConfigMap we created. - **attestors.cosign** \- This part verifies the image using cosign with the public key from the ConfigMap. - **attestors.ctlog** \- We are ignoring the Rekor verification, but we are still using this because cosign expects this configuration even if it is disabled. - **attestations** \- Here, we specify the attestation label we need to look for in ECR for attestation verification. https://slsa.dev/provenance/v1" is the label, not a URL. - **validations** \- Checks all containers for signatures. Open the YAML file and update your Account ID, Regions, and Repository name. Then apply it using the following command. ```bash kubectl apply -f kyverno-policy.yaml ``` Then, verify whether the image validation policy has been created. ```bash $ kubectl get imagevalidatingpolicy image-validation-policy NAME AGE READY image-validation-policy 5m12s true ``` Now that the policy is ready, let's test it. ### Test Image Validation For testing, we will try to create a pod with our signed and attested image. First, let's try deploying a pod with our signed image. ``` kubectl run web-server --image=${ECR_REPO}:v1.0.0 ``` The pod will be deployed, since the image is signed and attested. ```bash $ kubectl get po NAME READY STATUS RESTARTS AGE web-server 1/1 Running 0 5s ``` If you deploy an image without a signature, you will get the following error message. ```bash Error from server: admission webhook "ivpol.validate.kyverno.svc-fail" denied the request: Policy image-validation-policy failed: Image must be signed with the cosign key ``` You will also get the following error message if the image is not attested. ```bash Error from server: admission webhook "ivpol.validate.kyverno.svc-fail" denied the request: Policy image-validation-policy failed: Image must have valid SLSA provenance attestation ``` You can try deploying a [pod](https://devopscube.com/vpa-in-place-pod-resize/) with the [Nginx](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/) image from the web and see what happens. ## Keyless Image signing In our example, we generated a key and signed the image. Cosign also supports keyless image signing, where it automatically creates a temporary key pair and uses the [OIDC ](https://devopscube.com/github-actions-oidc-aws/) identity instead of a long-lived signing key. When you run the Cosign signing command, it asks you to authenticate with an OIDC provider, such as Google or GitHub. Once authenticated, [Sigstore](https://www.sigstore.dev/?ref=devopscube.com) certificate authority provides a short-lived certificate for signing and saves the data in your Sigstore account. And during verification, tools like Kyverno get the data from Sigstore and verify the image. For an air-gapped private cluster, you must host your own Sigstore infrastructure within your environment. ## Production Checklist If you are implementing the complete image signing and run-time verification workflow, here is the production checklist for you. - Tag immutability enabled on every repository - Signing runs in CI, not on a laptop - Multi-arch child digests signed - Keyless signing, or keys in a KMS. No key files in the repository - Key rotation procedure written down and tested - Signing and verification always by digest, never by tag - Provenance generated by the build platform, not written by hand - SBOM attestation attached and verified in policy - Vulnerability scan attestation attached, with a freshness requirement in Kyverno. For example, the scan must be no older than seven days. - Roll out the Kyverno policy in Audit mode first. ## Clean Up If you no longer need the setup, use the following command to remove the objects we created in this guide. Run the following command to delete Kyverno. ```bash helm delete kyverno -n kyverno ``` Then, use the following command to delete the ConfigMap. ```bash kubectl delete cm cosign-public-key -n kyverno ``` ## FAQs ### 1\. Can we use KMS instead of a local key? Instead of using the key generated on your local system, you can use a KMS service like AWS KMS to generate keys and use them with Cosign. Below is an example Cosign command to use keys in AWS KMS. ```bash cosign sign --key awskms:/// ``` This is a recommended method for a production environment where everything is private. Cosign supports a wide range of KMS services, including Azure Key Vault and Cloud KMS. ### 2\. Does image signing still make sense in a private network? Yes, image signing not only proves that the image does not change after the final push. But also proves that the image has been thoroughly tested and has gone through every approval process. ### 3\. The Kyverno policy is blocking the Helm upgrade. How do I fix it? Kyverno checks every image before it is deployed. You need to keep the proper order for new images. Every image you create goes through the signing process before deploying. For example, Build -> Push to ECR -> Sign -> helm upgrade. ### 4\. What is ECR managed image signing? It is an ECR-managed feature where you create a signing configuration using an [AWS Signer signing profile](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profiles.html?ref=devopscube.com). Once configured, ECR signs images automatically on push using the pusher's identity. AWS Signer handles key material and rotation, and operations are logged to CloudTrail. A key thing to understand is that it **covers signing only, not attestations.** ### 5\. What is Google Cloud Binary Authorization? Binary Authorization is a native security control in [GKE](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) that functions similarly to Kyverno. It only works on [GKE](https://devopscube.com/setup-ingress-gke-ingress-controller/) and checks every image before deploying it. ## Conclusion We signed a container image with Cosign, attached SLSA provenance and an SBOM as attestations, and verified all three at the Kubernetes admission layer with Kyverno `ImageValidatingPolicy` The key thing is to always sign and verify with a digest. Hope this comprehensive guide helped you understand the whole signing and attestation workflow. Over to you! Do you have any existing signing workflow in place? Do you have run-time verification enabled in production clusters? Let us know in the comments below. ### Model Context Protocol Associate (MCPA) Certification Exam Guide URL: https://devopscube.com/mcpa-certification-exam-guide/ Last updated: 2026-10-06T06:48:38.000Z [The Linux Foundation](https://www.linuxfoundation.org/?ref=devopscube.com) is going to launch a new certification called **Model Context Protocol Associate (MCPA)**soon. This is one of the first official certifications focused entirely on MCPs. As MCP adoption continues to grow in organizations, this certification is expected to become valuable for AI/ML engineers, platform engineers, developers, and [DevOps engineers](https://devopscube.com/become-devops-engineer/) who are building agentic AI applications. In this MCPA Certification learning path and study guide, we cover everything you need to know and learn for the MCPA Certification. ## What Is the Model Context Protocol (MCP)? MCP stands for [**Model Context Protocol**](https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro?ref=devopscube.com). It is an Open-Source standard protocol that is used to connect LLM applications to external tools, data sources, and services. It is one of the core projects under the Linux Foundation's [Agentic AI Foundation (AAIF)](https://aaif.io/projects/model-context-protocol?ref=devopscube.com) ## Register for the MCPA Exam \[Save 35% Today\] To begin your journey of becoming a Model Context Protocol Associate, start by registering for the exam on the Linux Foundation portal. > **Note:** Save 35% Today on MCPA certification using the Voucher code given below. This code expires soon. [Redeem MCPA Discount ](https://training.linuxfoundation.org/certification/model-context-protocol-associate-mcpa/?ref=devopscube.com) **CKA Exam Voucher:**: Use Code **SEPT26BTS35CT** at checkout ## MCPA Exam Overview Now let's take a look at the complete overview of the certification. | Attribute | Details | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | Exam Link | [Model Context Protocol Associate (MCPA)](https://training.linuxfoundation.org/certification/model-context-protocol-associate-mcpa/?ref=devopscube.com) | | Exam Format | Online-based, multiple-choice exam | | Duration | 120 minutes | | Exam Period | Must be taken within 12 months of the registration date | | Retake Policy | One free retake available if you don't pass | | Certification Level | Associate-level | | Validity Period | 2 years | ## Is the MCPA Certification Worth It? As you know, MCP is becoming more important day-by-day. More organizations are adopting Agentic AI systems and implementing MCPs into their AI applications. Companies look for certified and skilled professionals who can handle MCP clients, servers, and tools efficiently. This MCPA certification **helps you stand out and validates your understanding of MCP concepts and implementation**. It demonstrates to employers that you understand the protocol and are ready to build, integrate, and manage MCP-based AI applications. The interesting part is that this certification was created with the help of experts from [Anthropic](https://www.anthropic.com/?ref=devopscube.com), [Google](https://www.google.com/?ref=devopscube.com), [AWS](https://aws.amazon.com/?ref=devopscube.com), [Microsoft](https://www.microsoft.com/en-in?ref=devopscube.com), [Block](https://block.xyz/?ref=devopscube.com), [GitHub](https://github.com/?ref=devopscube.com), [Hugging Face](https://huggingface.co/?ref=devopscube.com), and other leading organizations. You can approach this certification as a way to learn the core MCP concepts. ## MCPA Exam Syllabus The following table has the domains you should focus on, along with the respective weightage. | Domain | Weight | What to Focus On | | ----------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **MCP Fundamentals** | 16% | • Understand the purpose and scope of MCP• Learn core MCP concepts and terminology• Understand the interoperability and value MCP unlocks for AI applications | | **Architecture & Components** | 14% | • Understand schemas and structured data in MCP• Learn the roles of MCP hosts, clients, and servers• Understand the model interaction flow end-to-end | | **Interactions & Execution** | 26% | • Understand interaction patterns and response handling• Learn how errors are handled within the protocol• Understand the full tool invocation lifecycle• Learn the core protocol primitives | | **Security & Governance** | 24% | • Understand trust boundaries between MCP components• Learn how permissions and consent are managed• Understand risk and safety controls• Learn auditability and observability practices | | **Use Cases & Ecosystem** | 20% | • Understand roles, responsibilities, and adoption patterns• Learn common operational use cases• Understand ecosystem and portability considerations | As shown in the syllabus, you need to understand the fundamentals of MCPs, how MCP works, and the architecture and components present inside MCPs, etc. ![Model Context Protocol Associate Learning path](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/10/image-16.png) Now let's have a look at the prerequisites you should have to attend the MCPA Exam. ## Exam Prerequisites Although this exam has **no prerequisites**, the following knowledge and experience will make preparation much easier. - A basic understanding of JSON-RPC or similar message-based protocols. - Hands-on experience working with LLM APIs, such as [OpenAI](https://openai.com/?ref=devopscube.com), Anthropic, or local models through [Ollama](https://ollama.com/?ref=devopscube.com). - Familiarity with Agentic AI concepts, including ReAct patterns, tool use, and AI agents. - A basic understanding of security concepts like API keys, OAuth 2.1, authentication headers, and token handling. - The ability to read and understand MCP server capability definitions. ## MCPA Study Guide: Syllabus-based Breakdown I have added all the official documentation references and other useful, authoritative resources for each concept covered in the exam syllabus. ### MCP Fundamentals - \[16%\] This section serves as the foundation. What problems MCPs solve and the purpose of MCPs. | MCP Introduction | [What is MCP?](https://modelcontextprotocol.io/docs/getting-started/intro?ref=devopscube.com) | | ---------------- | --------------------------------------------------------------------------------------------- | ### MCP Architecture - \[14%\] MCP is a client-server protocol built on JSON-RPC. - Host - The AI application the user interacts with. - Client - lives inside the host, maintains a one-to-one connection to the server - Server - exposes capabilities (tools, resources, prompts) to the client - Tools, Resources, and Prompts. | Architecture Overview | [MCP Architecture](https://modelcontextprotocol.io/docs/learn/architecture?ref=devopscube.com) | | --------------------- | ---------------------------------------------------------------------------------------------- | ### Interactions and Executions - \[26%\] This is the largest domain in the MCPA exam. You will get 26% of the total score. It focuses on how MCP components communicate with each other and how interactions are handled. | Tools | MCP Tools | | --------- | ------------------------------------------------------------------------------------------- | | Resources | [MCP Resources](https://modelcontextprotocol.io/docs/concepts/resources?ref=devopscube.com) | | Prompts | [MCP Prompts](https://modelcontextprotocol.io/docs/concepts/prompts?ref=devopscube.com) | You end up covering core concepts such as Error Handling, Protocol Primitives, and Tool Invocations. ### Security & Governance - \[24%\] This domain accounts for 24% of the MCPA exam and is one of the most important sections for real-world applications. It focuses on securing MCP-based systems, managing permissions, and ensuring AI agents can safely interact with external tools and services. Understanding this domain is what turns an MCP application from simply working to being secure, reliable, and production-ready. | Authorization Spec | [MCP Authorization](https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization?ref=devopscube.com) | | ------------------ | -------------------------------------------------------------------------------------------------------------------- | Here you can find the study resources for the exam, like Trust Boundaries, Permissions and Consent, Risk and Safety Controls, and Auditability and Observability. ### Use Cases & Ecosystem - \[20%\] This domain carries 20% of the total score. It focuses on how MCP is used in real-world applications, adoption patterns, and how it fits into the AI ecosystem. | Ecosystem | [Community & Ecosystem](https://modelcontextprotocol.io/community/communication?ref=devopscube.com) | | --------- | --------------------------------------------------------------------------------------------------- | Understanding these concepts will help you see where MCP adds value and how it enables interoperable AI applications across different platforms. ## What to Expect on MCPA Exam Day Here are some of the instructions you should follow on the day you are going to take your MCPA Certification. ### System Checks - Run the PSI system check in advance to verify that your computer meets all the exam requirements. - Close all unnecessary applications and browser windows before launching the exam, as the proctoring software checks for running programs. - Before starting the exam, temporarily disable any firewall or antivirus software that could interfere with the secure browser. If you're using a laptop, keep it plugged in throughout the exam. - The exam is conducted using PSI's secure browser, which is available for download shortly before your scheduled exam. - Use your own computer with a single monitor, a stable internet connection, a working microphone, and a webcam that can be moved to scan your room during the check-in process. ### ID Check Before the exam, make sure you have a valid, government-issued photo ID with your signature, such as a passport or driver's license. The name on your ID must exactly match the name you used when registering for the exam. Any mismatch could prevent you from taking the test. Also, make sure you are in a quiet, private room with good lighting and nothing behind you. When the exam starts, you should stay inside the webcam frame for the entire exam. ## Conclusion MCP is becoming a core part of the Agentic AI System. While the MCPA certification won't make you an expert, it demonstrates that you have a solid understanding of the Model Context Protocol and its core concepts. As MCP adoption continues to grow, earning this certification early can give you an advantage and help you stand out in the AI job market. ### How to Setup Beehiiv MCP Server (Detailed Guide) URL: https://devopscube.com/beehiiv-mcp-server/ Last updated: 2026-09-30T06:05:27.000Z One of its best new features of Beehiiv is the **Beehiiv MCP Server** and that is saving a lot of time for us. We run the [DevOpsCube newsletter](https://newsletter.devopscube.com/?ref=devopscube.com) on Beehiiv with 20,000+ subscribers. We connected **Beehiiv with Claude** using MCP, and it has made it much easier to manage different tasks from one place. In this guide, you will learn Beehiiv MCP server, what it can do, how to set it up, how to integrate it with your AI model, and much more. If you are existing Beehiiv user or someone who wants to know about this feature, this guide it for you. ## What is Beehiiv MCP Server? With the Beehiiv MCP server, you can connect your Beehiiv account with AI models like [Claude](https://claude.ai/?ref=devopscube.com), Codex, and other AI models that support MCP ([Model Context Protocol](https://modelcontextprotocol.io/docs/2026-07-28/learn/server-concepts?ref=devopscube.com)). This allows you to communicate with your Beehiiv account directly from your AI model. You can pull metrics, create surveys, create posts, analyze your podcast, perform SEO analysis, and much more. The workflow diagram illustrated how the Beehiiv MCP server works. ![How Does the Beehiiv MCP Work - Workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-35.png) If you want to know more about it, keep reading, and you will get a full, in-depth understanding of what you can do with the Beehiiv MCP server. ## Set up Beehiiv MCP with AI Models Lets startw with understanding how to connect the [Beehiiv MCP](https://www.beehiiv.com/support/article/39255979546263-getting-started-with-the-beehiiv-mcp?ref=devopscube.com) with AI models. I’m not going to cover every AI model in this guide. Instead, I will show you how to connect an MCP Server with Claude as an example, since it is one of the most widely used AI models today. ⚠️ If you do like to see tutorials for other AI models(Cursor, Codex, and other), let me know in the comments. I will be happy to create step-by-step guides for them as well. ### Step 1: Go to Beehiiv Settings In the bottom left corner of the Beehiiv dashboard, you will see the **Settings** button, click on it. ![Click the settings button from the Beehiiv dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-6.png) ### Step 2: Find the MCP option and copy the connector URL Once you open the **Settings** page, you will find the **MCP** option in the left-side menu. Click on it. ![Click the MCP option from the Beehiiv settings](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-7.png) Next, go to the **Claude** section and copy the **Connector URL**, as shown in the image below. ![Copy the connector URL of Claude](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-8.png) ### Step 3: Open Claude and Click Customize Now, open your Claude account. In the left-side menu, click the **Customize** option. ![Click the customize option from the claude](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-9.png) ### Step 4: Click connectors and Select Add Custom Connector Now you have to click the **connectors**, then click the **plus(+)** icon, and select **Add custom connector**. ![Click the connectors and click on the add custom connector](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-10.png) ### Step 5: Enter Beehiiv MCP Server Connector URL Enter **Beehiiv** as the connector name, then paste the Connector URL you copied from the Beehiiv MCP section. Click **Add** to connect the Beehiiv MCP Server to Claude. ![Enter Beehiiv as a name, and enter the Beehiiv MCP connector URL](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-11.png) ### Step 6: Authorize Claude with Beehiiv You will now see a page asking you to authorize Claude to access Beehiiv. To authorize the connection, click the **Grant Access** button, as shown in the image below. ![Claude authorization screen requesting access to Beehiiv workspace](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image-8.png) That's it. Your Beehiiv and Claude accounts are now connected. To verify that Beehiiv is connected to Claude, open Claude chat. You should see the connector listed there. If Beehiiv appears in the list, the connection was successful. ![Claude connector menu with the Beehiiv integration enabled](https://storage.ghost.io/c/b0/52/b052d846-efa0-441d-9e89-301a9c253aec/content/images/2026/09/image-20.png) Next, let's look at one of the most important parts of this guide. I will show you [what you can do with the Beehiiv MCP](https://www.beehiiv.com/support/article/41262491804439-what-you-can-do-with-the-beehiiv-mcp?ref=devopscube.com). ## Features of Beehiiv MCP Let's get to know, what you can do with the Beehiiv MCP without opening your Beehiiv account directly. It allows AI to interact with your Beehiiv workspace and perform tasks for you, making newsletter management much faster and easier. ### Content Creation & Management You can do three things with your newsletter content using the Beehiiv MCP. Create new posts, edit existing drafts, and update your existing templates, all by using prompts in your AI. But, there is one thing you still need to do manually is to publish or schedule the post directly from Beehiiv. For example, Let's say you want to create a newsletter post about [**DevOps Trends** ](https://devopscube.com/devops-trends-2015/)**2026** using one of your existing templates. You can use a prompt like this, > **Prompt:** > > Create a post draft on the topic\[Topic Name\]. > > Conduct in-depth research across the web to identify the latest trends, industry insights, real-world use cases, and relevant statistics from credible sources. > > Analyze how these trends are being applied in practice and include actionable examples where possible. > > Structure the draft using the existing template, \[Template Name\], while ensuring the content is well-organized, informative, and optimized for readability. ⚠️ ****Note:** This prompt can do around ****80-90%** of the work for you. The remaining part is to review the draft, check important details, and add your own insights, opinions, or personal experience before publishing. ### Manage Your Subscribers With your subscriber data, you can perform several tasks directly from your AI model, including tagging subscribers, creating audience segments, adding custom fields, and creating surveys and polls. - [**Subscriber Tagging**](https://www.beehiiv.com/support/article/22044432486295?ref=devopscube.com) \- Organize your subscribers using tags based on their interests or behavior. This makes it easier to manage your audience and run more targeted campaigns. - [**Segment Creation**](https://www.beehiiv.com/support/article/9366426644503?ref=devopscube.com) \- Create audience segments by grouping subscribers with similar characteristics or interests. You can then send specific newsletters or campaigns only to those targeted subscribers. - [**Custom Fields**](https://www.beehiiv.com/support/article/7712894720023?ref=devopscube.com) \- Create custom fields to collect additional information during the subscription process, such as age, profession, company, location, or any other data relevant to your newsletter. - [**Create Surveys**](https://www.beehiiv.com/support/article/21900901004311?ref=devopscube.com) **&** [**Polls** ](https://www.beehiiv.com/support/article/13063183261335?ref=devopscube.com)\- Build surveys and polls to collect feedback, understand your audience's preferences, and make data-driven decisions to improve your newsletter content. I was really shocked at first that we could use so much from our AI tool using MCP. It is very useful for us to know our audience so much better. Give it a try yourself. Once you start using it, you will see why I was so impressed. ### Newsletter & Website Analytics You can pull all your newsletter metrics directly from your AI tool. You can view open rates, click rates, best-performing newsletters, subscriber growth, where your subscribers are coming from, active subscribers, and much more. Not only that, you can even perform a complete SEO audit of your website. Using MCP, you can also manage your metadata and redirects directly from your AI tool. For example, you can use a prompt like this: > **Audit my entire website from an SEO perspective. Provide a detailed analysis of the site's overall performance, identify posts that are not receiving traffic, highlight the highest-performing posts, and include actionable recommendations backed by relevant analytics.** The AI tool will then gather the necessary information from your Beehiiv account and generate a detailed report for you. ### Create Automations You can build email automations and workflows in Beehiiv using MCP. For example, when someone signs up, you can automatically send them an email about your course within a few seconds. You can also create multiple automations within a single automation workflow. As you can see in the image below, I created an automation that, if anyone subscribes, the welcome email is automatically sent to their inbox. ![Beehiiv email automation](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-36.png) Yes, I know this is a very basic automation, but you can do much more. If you want to learn more about automations, refer to the [official Beehiiv Automations documentation](https://www.beehiiv.com/support/article/18743686099991-types-of-workflows-how-to-create-automations-for-your-subscribers?srsltid=AfmBOopKwtuSOC9uEeK0YpQ4dEJb2PwrbemSLUvjlBZs4oDvez5W%5Flge&ref=devopscube.com). ⚠️ ****Note:** You can’t activate automations directly from the AI tool. You need to do that from your Beehiiv account. But, you can build automations using MCP. **Here are the other things you can do:** 1. Analyze and manage your podcast 2. Manage your ad network 3. You can create guest authors with bios. > **Note:** Free Beehiiv users only get read-only access. This means you can't create posts or make changes from your AI. You can only view and pull analytics. ## Conclusion In this guide, I have covered what you can do with Beehiiv MCP server, what you can't do, and how to connect your MCP to Claude. For us, the newsletter automation with AI is really saves a lot of time. Infact it saves If you learn and use it wisely, you can manage and grow your newsletter more effectively and faster. Over to you? Have you tried this feature? If a question about the Beehiiv MCP server? Drop it in the comments. We will answer it. If you have any doubts regarding Beehiiv MCP, drop them in the comments. We will help you out! Other Beehiiv Useful Guides: - [Beehiiv review from our experience](https://devopscube.com/beehiiv-review/) - [Setup custom domain in Beehiiv](https://devopscube.com/custom-domain-beehiiv/) - [Beehiiv vs Substack](https://devopscube.com/beehiiv-vs-substack/) ### Setup Evidently AI on Kubernetes for ML Model Monitoring URL: https://devopscube.com/evidently-ai-on-kubernetes/ Last updated: 2026-08-01T03:40:49.000Z Here is what we are going to do in this setup. 1. Setup Evidently platform with PostgreSQL using our custom helm chart. 2. Test model monitoring using Evidently AI library using simulated data. 3. Validate model metrics in Evidently AI dashboard. Lets get started. ## Setup Prerequisites Below are the prerequisites for this setup - [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) - [kubectl](https://devopscube.com/kubectl-set-context/) - [Helm](https://devopscube.com/create-helm-chart/) - Python 3.11+ ## Setup Evidently AI Platform on Kubernetes Below are the steps to deploy Evidently AI on a Kubernetes cluster. ### Step 1: Clone the Repository We have pushed the Helm chart to deploy Evidently AI and a test file to show how model drift is calculated in our [MLOps Github Repository](https://github.com/techiescamp/mlops-for-devops.git?ref=devopscube.com). Fork and clone the repository using the following command. ```bash git clone https://github.com/techiescamp/mlops-for-devops.git cd mlops-for-devops ``` The files we are going to use in this blog are shown in the structure below. ```bash . ├──platform-tools │ └──evidently-ai | ├── helm │ ├── Chart.yaml │ ├── values.yaml │ └── templates | ├── psql.yaml └──phase-2-enterprise-setup └──evidently-ai └── model-monitoring.py ``` ### Step 2 : Customize the Evidently Helm Values File Before deploying the Helm chart, customize the values file. Assuming you are inside the `mlops-for-devops` directory, move to the `platform-tools/evidently-ai` directory using the following command. ```bash cd platform-tools/evidently-ai ``` There, you can find the Helm values file `values.yaml`. In the values file, - We have evidently as the PostgreSQL username and password. Replace it if you want to use different credentials. - Change the service NodePort if its already in use. The default one is **`30081`** - Change the volume size if needed - When we are writing this blog, the latest image tag is **`0.7.21`**, update the image tag if a new version is pushed. The container image we used in the Helm chart is evidently-ai's own [image](https://hub.docker.com/r/evidently/evidently-service?ref=devopscube.com). ⚠️ Ensure you have default StorageClass in the cluster. Or create one. ### Step 3: Install the Evidently AI Helm Chart Now that we have everything needed for evidently AI deployment, lets deploy the Helm Chart. Make sure you are inside the **`platform-tools/evidently-ai/helm`** directory, when running the following Helm install command. ```bash helm install evidently . ``` This will deploy the evidently-ai pod in the evidently namespace along with a PostgreSQL pod. Use the following command to list the pods. ```bash kubectl get pods -n evidently ``` You will get the following output. ```bash NAME READY STATUS RESTARTS AGE evidently-ui-7d9f5b8c6-xvn2p 1/1 Running 0 2m evidently-postgres-0 1/1 Running 0 2m ``` ### Step 4: Access the Evidently UI Now, let's access the UI of Evidently. Since we exposed the service on `NodePort 30081`, the URL for the UI will be, ```bash http://:30081 ``` To get the external IP of any node in your cluster, use the following command ```bash kubectl get nodes -o wide ``` Or you can using port forwading option to access the UI. Replace **`pods/evidently-ui-5d947b9568-xckrg`** with your pod name. ```bash kubectl port-forward pods/evidently-ui-5d947b9568-xckrg -n evidently 8000:8000 ``` If you access the UI on the browser using the [http://localhost:8000](http://localhost:8000/?ref=devopscube.com) or NodePort URL, you will see the UI as shown below. ![evidently ai dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-313.png) ⚠️ Self hosted Evidenlty AI does not have a login feature, so anyone with the publicly exposed **`NodePort`**, so in production use Ingress to access it securely. ## Model Monitoring Using Evidently AI 💡 In production, the monitoring is run using a scheduled batch job, it can be hourly, daily, or weekly, based on the traffic For testing the model monitoring pipeline, we will use a Python Script to send simulated values to detect data changes. The Python Script we are going to use is inside the `phase-2-enterprise-setup/evidently-ai` directory. Here is what the script does. - It generates 4000 synthetic rows with 8 features. In production, this data would come from real user requests hitting KServe. - It then splits the data 40/60\. The 40% trains the model. The 60% emulates the production inference dataset. - It connects to the Evidently project UUID and lays out panels for counters for row count, accuracy, ROC AUC, and drift share Assuming you are inside the `platform-tools/evidently-ai` directory, run the following command to get into `phase-2-enterprise-setup/evidently-ai` directory. ```bash cd ../../phase-2-enterprise-setup/evidently-ai/ ``` ### Step 1: Set up a Virtual Environment Once you are inside the `phase-2-enterprise-setup/evidently-ai` directory, create a virtual environment and activate it. ```Python python3 -m venv venv source venv/bin/activate ``` Then, install the required packages using the following pip command. ``` pip install evidently scikit-learn pandas ``` ### Step 2: Create a Project First, we need to create a project in our self-hosted Evidently AI. For that click on the **`+`** button, which will ask you for a **`name and description`**, enter it, and click the **`Save`** button to create a project. ![create project on evidently ai](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-314.png) Once the project is created, click the project you created, and you can see the following. ![evidently ai project id](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-316.png) ⚠️ Copy the project ID, which is needed in the next step. Also, inside the project, you can see 5 tabs: - **Dashboard** \- Here we can see how much the data has drifted as a value, a chart, or a graph. - **Reports** \- Here we can see the data pushed for each, and the information about the specific run is stored in a unique ID. - **Datasets** \- Contains raw data files that are uploaded to it. - **Traces -** It traces the LLM calls. - **Prompts** \- Used to monitor and evaluate the prompts sent to LLMs. ### Step 3: Run the Python Script Before running, open the script and update it with the `EVIDENTLY_URL` and `PROJECT_ID`, which you copied in the previous step. ![update evidently ai python script](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-319.png) Then run the following command to generate data and push to Evidently AI. ```bash python model-monitoring.py --backfill 7 ``` 💡 The script only pushes single run data when we run it. We configured a **`--backfill 7`** flag to make it push simulated data of 7 snapshots in one run, so we can see 7 different types of data to compare in the dashboard. You can change the number if needed. If the script runs successfully, you will get an output similar to this. ```bash Connecting to http://54.202.77.42:30081/ Using project: 019efd7f-f8ef-7583-bca6-8ba39ea60e68 Dashboard built. Training model and reference data ... Uploaded reference dataset. Backfilling 7 day(s) of history ... pushed snapshot @ 2026-06-19 pushed snapshot @ 2026-06-20 pushed snapshot @ 2026-06-21 pushed snapshot @ 2026-06-22 pushed snapshot @ 2026-06-23 pushed snapshot @ 2026-06-24 pushed snapshot @ 2026-06-25 Pushing current monitoring tick ... pushed snapshot @ 2026-06-25 12:04:57 Done. Open the project -> Dashboard tab (refresh if needed). Run again — or schedule it — to keep adding points. ``` ### Step 4: Verify the Model Monitoring Metrics in Evidently AI Dashboard Once the run is successful, open the Evidently UI, and you can see the dashboards updated in the project which you created. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-123.png) If you scroll down you can see the prediction metrics (F1 score, Recall, Precision and Accuracy) in graph format as shown below. ![F1 score, Recall, Precision and Accuracy graph in evidently AI dashbaord](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/08/image.png) You can also check reports of each data and datasets under each tabs. ![tracking model perforamce using evidently ai](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-318.png) ## Conclusion In this blog, we have learned how machine learning model monitoring works using Evidently AI. Also, we have self-hosted it on [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) and sent sample data to check how it detects data drift. In simple terms, your application monitoring tools tell you if they are up and working properly, and model monitoring tools tell you that the model is still giving the output accurately. ### How to Set Up gVisor on AWS EKS URL: https://devopscube.com/set-up-gvisor-on-aws-eks/ Last updated: 2026-07-30T14:27:25.000Z In this blog, I have covered detailed steps to set up gVisor on an AWS [EKS cluster using EKSCTL.](https://devopscube.com/create-aws-eks-cluster-eksctl/) gVisor basically implements container sandboxing. If you want to understand how gVisor works, its use cases, and how it sandboxes containers, please read our [detailed guide on sandboxed containers.](https://devopscube.com/sandboxed-containers/) ## gVisor on AWS EKS By default, the AMIs used to deploy the EKS cluster don't have gVisor installed. Even if you create a gVisor **`runtimeClass`**, the pod will go into pending state. So if you have a use case for using the gVisor runtime in the cluster, you will need to **customize the AMI to include gVisor and runsc**. For example, we are working on the Kubernetes agent sandbox project for an implementation, and it requires gVisor sandboxing. Here are the key steps you need to perform to enable gVisor on EKS nodes. - Create a user data script to install gVisor binaries on EKS cluster nodes during creation. Also, it contains **`NodeConfig`** to register **`runsc`** as an additional runtime. - Create a JSON file to create an EC2 LaunchTemplate. - Then create a **`LaunchTemplate`** using the JSON referring to the user data script. - Next, create the EKS cluster using the launch template in the node group configuration, which installs gVisor in the nodes during creation. The following image gives you a mental model of the key steps involved. ![gVisor on AWS EKS](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-182.png) Let's get started with the setup. ## Setup Prerequisites Below are the prerequisites for this setup. - [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/) configured with permission to create EC2 LaunchTemplate and EKS cluster - [EKSCTL](https://devopscube.com/create-aws-eks-cluster-eksctl/#install-eksctl) - [kubectl](https://devopscube.com/kubectl-set-context/) ## Set up gVisor on an AWS EKS Cluster In this setup, we will create a Launch Template with gVisor installed and create the EKS cluster using EKSCTL so every node comes up with gVisor installed. Before starting, make sure you have added the environment variables below to your workspace. ```bash export AWS_REGION=us-west-2 export CLUSTER_NAME=gvisor-demo export K8S_VERSION=1.35 export NODE_INSTANCE_TYPE=t3.medium ``` Let's start the setup. ### Step 1: Create User Data Let's create the user data script we'll use in the launch template to set up gVisor on EKS nodes. Run the following command to create it. ```bash cat > gvisor-userdata.txt <<'EOF' MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="//" --// Content-Type: application/node.eks.aws apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: containerd: config: | [plugins.'io.containerd.cri.v1.runtime'.containerd.runtimes.runsc] runtime_type = 'io.containerd.runsc.v1' --// Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash set -euxo pipefail command -v bzip2 >/dev/null 2>&1 || dnf install -y bzip2 ARCH=$(uname -m) URL="https://storage.googleapis.com/gvisor/releases/release/latest/${ARCH}" cd /tmp curl -fsSLO "${URL}/gvisor.tar.bz2" curl -fsSLO "${URL}/gvisor.tar.bz2.sha512" sha512sum -c gvisor.tar.bz2.sha512 tar -xjf gvisor.tar.bz2 -C /usr/local/bin rm -f gvisor.tar.bz2 gvisor.tar.bz2.sha512 /usr/local/bin/runsc --version --//-- EOF ``` This will create a user data script **`gvisor-userdata.txt`** which configures containerd with **`runsc`** and then installs the gVisor runtime **`runsc`**. During node creation, it downloads the gVisor binary, verifies it, and installs it in the node. ### Step 2: Create EC2 LaunchTemplate To use the user data during node creation, we need to create an EC2 LaunchTemplate with the user data. Run the following command to create a JSON file for the launch template that gets the user data from gvisor-userdata.txt. ```bash cat > lt-data.json < cluster.yaml <&1 cat: can't open '/proc/modules': No such file or directory command terminated with exit code 1 ``` You can see that even if the pod is privileged, it cannot access Kernel files. Instead of saying it cannot access, the pods can't even find the kernel files. That's how gVisor isolates the pods from the kernel. ⚠️ If a pod is created without specifying a runtime class in the gVisor node, Kubernetes uses the default runtime (runc). This means the pod's syscalls go directly to the host kernel, guarded only by [seccomp](https://devopscube.com/seccomp-in-kubernetes/), [capabilities](https://devopscube.com/linux-capabilities/) etc.. ## Clean UP If you no longer need the setup, run the following commands to delete the cluster and the launch template. ```bash $ eksctl delete cluster --name="$CLUSTER_NAME" --region="$AWS_REGION" $ aws ec2 delete-launch-template --launch-template-id "$LT_ID" --region "$AWS_REGION" ``` ## Conclusion In summary, we have created user data with steps to install and configure gVisor, then created a launch template with the user data script. Then we used the launch template in the node group and created the cluster. The node group with the launch template creates nodes with gVisor installed. Once the cluster is ready, we ran a test pod on the gVisor node and checked if the pod can access kernel files. If you find this guide useful, leave your feedback in the comments. ### Best Proxmox Backup Software to Consider in 2026 URL: https://devopscube.com/proxmox-backup-software/ Last updated: 2026-07-31T05:33:42.000Z Proxmox VE’s popularity is rising, leading to a surge in production deployments. As the number of virtual machines (VMs) grows, a robust backup strategy is essential to prevent data loss from disk failures, accidental deletions, faulty updates, or ransomware. As of May 21, 2026, the latest stable release is Proxmox VE 9.2\. The Proxmox VE built-in backup tool, vzdump, provides basic VM and container backups. However, it has limitations, particularly for large infrastructures and frequently changing workloads. It performs full backups and lacks deduplication, with basic scheduling and retention options. Organizations managing large environments often require advanced features. This article examines native Proxmox tooling and explores third-party solutions that provide extended data protection capabilities. ## What Is Proxmox Backup Server? Proxmox Backup Server (PBS) is the native backup solution offered by Proxmox for VMs and containers in Proxmox VE, and it can also protect physical hosts. PBS is installed on a separate, dedicated host rather than on the Proxmox VE node and runs a Debian-based system, similar to Proxmox VE itself. There is no limit on the number of protected workloads. PBS differs from a simple vzdump archive and supports more features: - **Deduplication**: Identical data chunks are stored once, with references, to save storage space when protecting similar VMs and data. - **Incremental backups**: The first backup is always full; subsequent jobs copy only data that has changed since the last run. - **Backup encryption**: Data is encrypted on the client side with the AES-256 algorithm in GCM mode before being transferred over the network, and backups remain encrypted on the target storage. - **Backup verification**: Checksums and scheduled verification jobs help confirm that backups are consistent and recoverable. Proxmox Backup Server system requirements are easy to meet. The vendor recommends a modern 64-bit CPU with at least 4 cores, a minimum of 4 GB of RAM plus roughly 1 GB per TB of datastore capacity, 32 GB of disk space for the operating system (OS) and dedicated storage for backup data with sufficient performance. To evaluate the solution, you can run it on 2 CPU cores and 2 GB of RAM. ## Proxmox Backup vs Snapshot Snapshots and backups solve different problems, and although they may seem similar, they are not interchangeable. A VM snapshot saves the state of a VM at a specific point in time and lets you roll back to that point after making changes. No separate data copy is created, so if the underlying storage fails, the VM data is lost. A VM backup is an independent copy of the entire VM that can be kept on the same storage, a different one, or an offsite location. If the source VM is damaged or a data loss event occurs, you can restore the machine and its data from the backup. 💡 ****Tip**: Backups and snapshots can complement each other, but they should not be used as substitutes. Follow the recommendations below to correctly use snapshots and backups: - Use a snapshot to save a point-in-time state of a VM, with the ability to quickly roll back to that specific VM state. This can be used before a software update, installing new software, patches, or testing something. - Use backups for data protection with retention so you can recover if the source storage or source VM fails. Backups are used for disaster recovery as a part of a broader data protection strategy. ## Best Proxmox Backup Software to Consider Below are five solutions recommended for Proxmox VM backup, covering what each tool is, its key features for Proxmox, and how it is licensed. ### [Proxmox Backup Server](https://www.proxmox.com/en/downloads/proxmox-backup-server?ref=devopscube.com) PBS is the native Proxmox backup solution for VMs and containers. It integrates with Proxmox VE and is managed directly in the Proxmox VE web interface. As of April 29, 2026, the latest release is Proxmox Backup Server v4.2. The main features include client-side AES-256-GCM encryption, deduplication, incremental backups, and scheduled verification jobs. Supported sources are Proxmox VMs, Linux Containers (LXC), and physical hosts. For offsite copies, PBS can synchronize datastores to a second PBS instance, LTO tape devices, and S3-compatible cloud storage. The software is free and open source under the AGPLv3, with no limits on the number of protected items. An optional paid subscription provides access to the stable enterprise repository and vendor support. ### [NAKIVO Agentless Proxmox Backup](https://www.nakivo.com/proxmox-backup/?ref=devopscube.com) NAKIVO Backup & Replication is a comprehensive data protection solution that supports Proxmox VM backup alongside other virtual, physical and cloud platforms: VMware vSphere, Microsoft Hyper-V, Nutanix AHV, AWS EC2, Microsoft 365 and physical Windows and Linux machines. The vendor provides a dedicated Proxmox backup solution with agentless host-level support. NAKIVO Backup & Replication v11.2.1 was released on June 3, 2026\. Proxmox VE support was introduced in v11.0 (starting from Proxmox VE 8.0), and currently covers versions 8.0 through 9.2. Key features include image-level VM backup and replication, block-level incremental backups with native change tracking, instant VM recovery, file-level restore, automated backup verification and immutable backups for ransomware protection. NAKIVO offers flexible licensing, which includes perpetual and subscription options: Subscriptions are counted per workload, while perpetual licenses are based on the number of sockets on virtualization hosts. You can [try it for free](https://www.nakivo.com/resources/download/trial-download/?utm%5Fsource=devopscube.com) and test all the features of NAKIVO Backup & Replication in your environment. NAKIVO serves over 16,000 customers in 191 countries, supported by 3,000 partners worldwide. NAKIVO Backup & Replication is a premier choice for small and medium-sized businesses, providing robust ransomware protection for both physical and virtual environments. ### [Veeam Backup & Replication](https://en.wikipedia.org/wiki/Veeam%5FBackup%5F%26%5FReplication?ref=devopscube.com) Veeam Backup & Replication is an enterprise data protection platform with a broad ecosystem of supported environments. Proxmox support was added in version 12.2, and Proxmox VE versions 8.2–9.1 are currently covered; LXC containers are not supported at this time. Key features for Proxmox include host-level backup of VMs on standalone hosts and clusters, backup copies to secondary locations and recovery when needed. Object-based cloud storage can be used as a backup target. Instant VM recovery can start Proxmox VM backups as VMware vSphere, Hyper-V or Nutanix AHV machines, while native replication of Proxmox VMs is not yet available. Veeam Backup & Replication is licensed through the Veeam Universal License, which utilizes a portable subscription model counted per protected workload. One license instance covers one Proxmox VM, with Proxmox support included at no additional plug-in cost. A free Community Edition is available for smaller environments to protect up to 10 workloads, while multiple paid editions offer varying levels of support. ### [Vinchin Backup & Recovery](https://www.vinchin.com/?ref=devopscube.com) Vinchin Backup & Recovery is an agentless backup solution that supports more than fifteen virtualization platforms, including Proxmox VE. It suits small and medium-sized businesses, particularly environments running alternative hypervisors. The latest public version is v9.0 with support for Proxmox VE v7.2 - 9.0. Key features for Proxmox VE include agentless forever-incremental backups, data deduplication, compression and scheduled jobs. The solution supports file-level and full VM restore, instant VM recovery, cloud archive, offsite copy and virtual-to-virtual (V2V) migration between supported platforms. Licensing is quote-based and tied to protected hosts or sockets. A free trial is available for a limited number of VMs, and the vendor positions the product as a low-cost option for mixed environments. Vinchin Backup & Recovery is often cited as an ideal choice for complex, multi-hypervisor environments. ### [Storware Backup & Recovery](https://storware.eu/?ref=devopscube.com) Storware Backup & Recovery is an agentless solution that protects a wide range of environments. Beyond Proxmox VMs, it covers multiple virtual, container and cloud platforms. The product traces its roots to the open-source Storware vProtect project. Storware Backup & Recovery is currently at version 7.5, offering official support for Proxmox VE versions 7.0 through 9.1. Key features of this Proxmox backup software include agentless VM backup through the Proxmox API and protection of LXC containers and files. Data deduplication and compression are available. Policy-based scheduling, granular restore and disaster recovery plans with automated backup verification extend the feature list. Storware Backup & Recovery can be used through subscription licensing, with models based on protected workloads, instances or data capacity. Pricing is not publicly disclosed, but the vendor provides personalized quotes. A free trial is available for evaluation. The solution is positioned as a versatile, multi-platform data protection tool for heterogeneous and open-source-heavy environments. **Tool comparison** | Tool | Pricing model | Deduplication | Cloud/offsite target support | | --------------------------- | ------------------------------------------------ | ------------- | --------------------------------------------------------------------------- | | Proxmox Backup Server | Free, open source (AGPLv3) | Yes | Sync to remote PBS, LTO tape, S3-compatible storage | | NAKIVO Backup & Replication | Subscription or perpetual; per workload/socket | Yes | Amazon S3, Azure, Wasabi, Backblaze B2, S3-compatible storage, offsite copy | | Veeam Backup & Replication | Per protected workload (Veeam Universal License) | Yes | Object storage repositories and archive tier | | Vinchin Backup & Recovery | Quote-based (per host/socket) | Yes | Cloud archive, offsite copy | | Storware Backup & Recovery | Subscription (per workload) | Yes | Multiple storage and cloud providers | ## Key Features to Look for in a Proxmox Backup Solution When comparing Proxmox backup solutions, pay attention to the following capabilities: - Host-level image-based backup via Proxmox API: This enables efficient backup of entire VMs. If you use LXC containers, ensure the solution also provides dedicated container backup support. - Incremental, deduplicated backups: These reduce storage consumption and speed up subsequent jobs. - Scheduling and flexible retention: To automate the Proxmox VM backup process and keep the recovery points you need. - Flexible recovery options: When deciding how to restore a Proxmox VM from a backup, look for a solution that can recover full machines or individual files, depending on the situation. - Support for multiple storage types: The 3-2-1 backup rule recommends storing copies of data in different locations, including the cloud, so that recovery remains possible if one location is damaged. ## Conclusion Proxmox Backup Server (PBS) is an excellent choice for many self-hosted environments since it effectively handles essential VM and container backups at no licensing cost. However, larger or mixed infrastructures often require the advanced capabilities of commercial solutions. NAKIVO Backup & Replication and Veeam Backup & Replication are robust options for organizations managing mixed environments. Alternatively, Vinchin and Storware offer strong value for users prioritizing cross-platform migration and open-source support. Ultimately, there is no single 'best' tool, you need to assess your specific feature requirements and scalability needs before making a final decision. ### Embeddings in Machine Learning (A Beginner's Guide) URL: https://devopscube.com/embeddings-in-machine-learning/ Last updated: 2026-08-01T12:43:04.000Z When we talk about how machine learning models understand language, one of the biggest questions that comes to mind is how the model can recognize that words like [**Kubernetes**](https://devopscube.com/kubernetes-tutorials-beginners/)**,** **Pods, and Clusters**are related, even though they are completely different words. The answer lies in a concept called **Embeddings**. These Embeddings are everywhere in modern deep learning, such as recommendation engines, deep neural networks, and encoder and decoder models. In this blog, I explained the following. - What are embeddings in Machine learning, and why are embeddings important? - How do they understand context and meaning? - The most common types of embeddings. - Real-world examples. Let's get a deep dive into it. ## What are Embeddings? Embeddings are a way ofconverting data like words, images, or even pieces of code into numerical representations called Vectors. After converting, they get stored in a Vector database. For example, ***What is Kubernetes?*** becomes something like**\[0.12, -0.45, 0.88, …\]** So now you might ask, **how can embeddings be created?** It can be done via an embedding model. For example, [AWS Titan Text embedding v2](https://docs.aws.amazon.com/bedrock/latest/userguide/titan-embedding-models.html?ref=devopscube.com) is an embedding model. Also, Word2Vec, whichis a two-layer neural network embedding model developed by Google. The Neural network converts any input word, sentence, document, or image into a fixed-length array of numbers. The following image illustrates how embeddings are created. All the data is sent to an embedding model, and it converts the data into vectors. ![What are embeddings diagram showing vector representations of images, documents, and audio used in semantic search, vector databases, and RAG pipelines](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/embeddings-3-1.jpg) If you notice the image above, there is something called n-dimensional space. Let's understand this with an example. After the embedding model converts your input into a vector like ``` [0.6, 0.3, 1.5, 0.2, ...] ``` Each number in the above vector represents one dimension. So if your vector has 1024 numbers, it exists in a 1024-dimensional space. Think of it this way, If you want to locate a city, you have 2 dimensions. (Latitude and Longitude) Now, say you want to locate the word ***pod*** in embedding space. You need 1024 numbers together. The meaning comes from the whole list working as one. ``` pod = (0.12, -0.45, 0.88, 0.03, ... 1020 more numbers) ``` Here you can just keep in mind, More dimensions can capture more meaning. 💡 The Amazon Titan Embedding Model V2 has 256, 512 and 1024 dimensions. which means it increases some sort of advantages in terms of accuracy. For most documentation and troubleshooting content, 512 is enough. And here is the part that makes embeddings useful. Each dimension captures a meaning, so inputs that mean similar things end up close together in this space. Consider the following three sentences. 1. My Kubernetes pod keeps crashing. 2. What is a CrashLoopBackOff? 3. My application restarts continuously in the [cluster](https://devopscube.com/configure-multiple-kubernetes-clusters-argo-cd/). These sentences use different words, but they describe a similar problem. An embedding model understands the semantic relationships among concepts such as pod failures, [container](https://devopscube.com/what-is-a-container-and-how-does-it-work/) crashes, and application restarts. So when it converts these sentences into vectors, the related converted vectors are grouped as shown in the image below. ![Diagram showing how an embedding model converts Kubernetes pod crash sentences into vectors placed close together in vector space](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-67.png) Now you might ask, what is a Vector space? 💡 A vector space is a mathematical environment where the embeddings live. Each embeddings are marked as a point, where semantically similar points are placed near. You might have got some basic idea of what embeddings are. Now let's see how an embedding model understands context or the meanings of the words. ## **How Does an Embedding Model Understand Context?** You might be wondering, how does the model know which words are related in the first place? An embedding model is a model pretrained on billions of words from books, websites, articles, code, etc. So it has context on most of the data you provide to the model. So when it converts these to vectors, it will group related words close to each other. These models learn by reading sentences and noticing patterns, such as which words often appear together and how their meanings change depending on their surrounding words. It does this by making a prediction during training. Given the surrounding words, it predicts the missing word. It gets very good at understanding which words belong together. For example, - *Python is a programming language.* - *Python is seen in the jungle.* Even though the word [Python](https://devopscube.com/python-for-devops/) is the same, the surrounding words (programming language and seen in the jungle) help the model determine the correct meaning. [Word2Vec](https://www.tensorflow.org/text/tutorials/word2vec?ref=devopscube.com) gives each word one fixed vector, no matter how it's used, so ***Python*** gets the same vector whether you are talking about the language or the snake. BERT and other [Transformer](https://aws.amazon.com/what-is/transformers-in-artificial-intelligence/?ref=devopscube.com)\-based models go a step further. They adjust a word's vector based on the surrounding sentence. So Python gets a different vector depending on whether it appears next to a programming language or a jungle. ## Embedding Model Workflow Now that you understand what embedding is and how it works, let's look at the technical aspects of an embedding model. When we use an embedding model to generate embeddings, there are 4 major steps inside the model. ![Diagram of the embedding model workflow: tokenisation, model processing, pooling, and normalisation producing a vector output](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-68.png) ### Step 1 - Tokenization Before the model starts to process your text, it needs to break it down into smaller pieces it can work with. These pieces are called tokens. For example, ``` My Kubernetes pod keeps crashing. | v [My, Kube, ##rnet, ##es, pod, keeps, crash, ##ing] ``` 💡 The hash symbol (##) literally means the word is interconnected, like Kube + ##rnet + ##es = Kubernetes The model then converts each token into a token ID. Why? Because computers can only understand numbers, not words, to find similarities and study the patterns, the text must be converted to numbers. ### Step 2 - Model Processing Now, the model only has a list of token IDs. But those IDs carry no meaning. The numbers don't tell you anything about the pod or mean how it connects to crashing. Model Processing is the step where the model figures out the meaning and relationships between all the tokens. Each token passes through multiple Transformer layers. In each layer, every token looks at every other token in the sentence. For example, ``` pod -> crashing = 0.91(very high — strong connection) pod -> keeps = 0.61(medium — keeps describes pod behaviour) pod -> Kubernetes = 0.45(medium — Kubernetes gives pod context) pod -> My = 0.08(very low — My doesn't affect pod's meaning) ``` This is called attention, where the model pays more attention to words that matter to each other. By the end of the final transformer layer, the model understands what each word means based on the entire sentence, not just the word alone. ### Step 3 - Pooling After Model Processing, you have one vector per token. But you need one vector for the entire sentence. For example, ``` My Kubernetes pod keeps crashing My -> [0.2, 0.1, 0.4] Kube -> [0.8, 0.6, 0.9] ##rnet -> [0.7, 0.5, 0.8] ##es -> [0.6, 0.4, 0.7] pod -> [0.9, 0.3, 0.7] keeps -> [0.3, 0.6, 0.5] crash -> [0.8, 0.9, 0.6] ##ing -> [0.7, 0.8, 0.5] ``` These are 8 vectors for one sentence. We need to make it a single vector to represent the full sentence. You may ask why? When you need to compare two sentences, you need to compare them as one vector. You cannot compare 8 vectors against 3 other vectors. For example, 1. My Kubernetes pod keeps crashing - 8 token vectors 2. Pod crashed - 3 token vectors To compare these two sentences mathematically, both must have the same shape. If one sentence has 8 token vectors and the other has only 3, they cannot be compared directly because there is no clear way to match each token from one sentence with the other. Pooling is the process of combining all the token vectors into a single vector. The most common way to do pooling is by averaging them, which is called mean pooling. ``` 8 token vectors --> 1 sentence vector. [0.63, 0.53, 0.64] ``` There are also some other pooling methods such as [Max Pooling, CLS Pooling](https://arxiv.org/html/2505.15696v1?ref=devopscube.com),etc. ### Step 4 - Normalization Imagine you have two sentences that mean the same thing, but one produced much larger numbers. ``` Sentence A -> [3.0, -8.0, 5.0] <-- large numbers Sentence B -> [0.3, -0.8, 0.5] <-- smaller ``` As you can see, B is just A divided by 10\. Same direction, same meaning, smaller numbers. Without normalization, Sentence A might appear more important just because it has larger numbers, even if Sentence B actually is similar to Sentence A. When the model compares them against a search query, A produces much bigger scores because its numbers are bigger. What does Normalization do? Normalization scales all vectors to the same length without changing their meaning. This makes sure that similarity comparisons focus on the meaning of the vectors, not the size of their values. ``` Before normalization [0.63, 0.53, 0.64] <-- length = 1.04 | scale to length 1.0 After normalization [0.60, 0.51, 0.61] <-- length = 1.00 ``` Now lets understand where embeddings are used in AI/ML today. ## Key Use Cases Of Embeddings Embeddings help models to understand the meaning and relationships behind words, sentences, and other types of data. This makes machine learning algorithms extract useful patterns and make smarter decisions. Here are some of the key factors that describe why embeddings are important. ### **Reduce data dimensionality** Data scientists use embeddings to reduce the data dimensionality from high-dimensional to low-dimensional space. 💡 Data dimensionality means how many features you use to describe a single piece of data. If you describe a person using their height and weight. It is two-dimensional data. For example, An image can be considered as high-dimensional data because each pixel has a color value, which is a separate dimension. 💡 A standard Full HD (1080p) color image has exactly 6,220,800 dimensions. Because it is a color image, each pixel contains 3 color channels (Red, Green, and Blue). Each pixel has its own color value, which is a separate dimension. An image embedding model compresses all of that meaning into a vector of just 512 numbers. When we present high-dimensional data for training the model, it requires more computational power, and it takes more time to learn. So, embeddings reduce the number of dimensions by identifying patterns between various features. This consequently reduces the computing resources and time required to process raw data. 💡 Low-dimensional data means that the data has only a few dimensions (features). For example, When a person is described by only 2 features (Age and Gender), it is low-dimensional data. This data is easy to visualize and analyze. ### **Semantic Search** Without embeddings, you search for an issue ***pod not starting,*** and the search engine looks for those exact words. But there is a document that says ***the container failed to initialize,*** or ***the*** ***application is not starting,*** never comes up, even though all three have the same meaning. Because the search engine has no idea whether they are related or not. This can be called a keyword search or word matching. With embeddings, instead of matching words, the search engine compares meanings. ***Pod not starting***, ***container failed to initialize***, and ***application not starting*** all get converted into vectors that get closer to each other in a vector space. So when you search for one issue, the results for all three come up because the model understands that they describe the same problem, not just the same words. This is called semantic search ( understands the meaning ). ### **RAG pipeline** One of the major use cases of embeddings is that they are the core concept of building an RAG (Retrieval-Augmented Generation) pipeline. When the documents are added to the knowledge base, they are first split into smaller chunks. Each chunk is then converted into a numerical vector using an embedding model (such as AWS Titan Text Embeddings V2). These vectors are stored in a vector database like Amazon S3 Vectors. When a user asks a question, the same embedding model converts the query into a vector. The vector database then compares this query vector with the stored vectors and finds the most relevant chunks based on meaning, not just exact keywords. Semantic search is the core of every RAG system, and embeddings are what make it work. This is why a question like *"Why does my pod keep restarting?"* can retrieve a document titled ***CrashLoopBackOff Troubleshooting Guide*** even though the words are different. The embedding model understands that both are talking about the same concept. 💡 The Vectors are comparable when you use the same embedding model to convert the chunks to vectors and convert the user query to vectors. If you switch, your new query vectors won't match your old stored vectors because the model changed, so the meaning-to-number mapping changed. ## Common Types of Embeddings Once the data is converted into vectors, the main thing here is the kind of embedding you use, which decides what the machine can actually understand from it. Embeddings mainly differ depending on what they convert, whether it is a single word, a complete sentence, a graph, or an image. Let's explore the types of embeddings and how they are used. ### Word Embeddings These types of embeddings represent individual words as vectors that capture their meanings and relationships to other words. For example, An embedding model, which was trained or fine-tuned on technical texts, learns the terms Kubernetes and Docker, not only the words, but also the meaning, like orchestration and containerization. ![Word embedding model converting Kubernetes and Docker into vectors placed close together in vector space](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-69.png) So it finds out that both of the terms are related and groups them up close together inside a vector space. Word2Vec is a model developed by Google in 2013, used to create [word embeddings](https://www.ibm.com/think/topics/word-embeddings?ref=devopscube.com) by a two-layer neural network. ### Sentence Embeddings Sentence embeddings represent the meaning of an entire sentence or short paragraph instead of individual words. This makes sentence embeddings especially useful for tasks such as semantic search, question answering, document retrieval, and Retrieval-Augmented Generation (RAG). For example, **The pod crashed due to an OOM error,** and **the container was killed because of a memory shortage.** Both have completely different words but describe the same problem. [Sentence embeddings](https://en.wikipedia.org/wiki/Sentence%5Fembedding?ref=devopscube.com) place them close together in vector space, which is exactly what makes RAG retrieval work. ![Sentence embedding model placing OOM error and container killed sentences close together in vector space](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-70.png) Sentence embeddings are used for semantic search, document retrieval, summarisation, and grouping. Some of the popular models, like Sentence-BERT (SBERT), generate high-quality embeddings by fine-tuning BERT for semantic similarity tasks. Universal Sentence Encoder (Google), and Doc2Vec, are also some other models used for sentence and document embeddings. ### Contextual Embeddings These types of embeddings help AI understand words based on their context. This means that the same word can have different meanings, but it depends on how it is used in a sentence, which leads to more accurate language understanding. For example, The word pipeline from the sentence, **the RAG pipeline retrieves the chunks and gets a vector close to the retrieval model and data.** But the pipeline in the sentence, ***The pipeline burst during inspection*** gets a vector close to engineering. Same word, completely different meaning, and the model knows it. This type of embedding, which differs based on concepts, is called [Contextual Embeddings](https://docs.perplexity.ai/docs/embeddings/contextualized-embeddings?ref=devopscube.com). ![Contextual embedding model showing how "pipeline" gets different vectors for RAG retrieval vs engineering context](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-71.png) Major use casesof contextual embeddings are Named-entity Recognition (identifying specific services, error types, and timestamps inside raw log text) and question-answering. Some of the models used for this type of embedding are ELMo (Embeddings from Language Models) and BERT. ### Image Embeddings Image embeddings can be easily called numerical representations of images. It converts an image into a list of numbers that represent its important features, like shapes, colours, patterns, and objects. [Image embeddings](https://milvus.io/ai-quick-reference/what-are-image-embeddings-used-for?ref=devopscube.com) help AI systems to understand and compare images based on their content. As a result, these types of embeddings are widely used in tasks such as image search, image recognition, image classification, and finding similar images. ![Image embedding model placing pod crash screenshot and Grafana dashboard close together in vector space](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-72.png) Let's consider an example, A screenshot of the **pod eviction due to resource pressure** can be placed near a Grafana dashboard that captures the same incident in the same vector space, making it possible to search infrastructure diagrams or match error screenshots to documentation automatically. For Image embedding, we can use models like ResNet, CLIP (OpenAI), and Google’s Vision AI. ### Graph embeddings Graph embeddings help AI understand graph data by converting each node (a node is just a single point in a graph) into a numerical vector. These vectors get important information about how nodes are connected and their role. By converting graph data into vectors, AI models can easily analyze relationships, find similar nodes, and make predictions, such as in social networks, recommendation systems, and knowledge graphs. Interconnected nodes that are closely related in the graph are usually placed close together in the embedding space. ![Graph embedding model converting a service dependency graph into vectors, with connected services clustered and legacy job isolated](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-73.png) For example, Users (nodes) who are connected or have similar friends will have similar embeddings. These embeddings help in link prediction, recommendation, and community detection. For specific use cases like Recommendation systems and fraud detection, [graph embeddings](https://en.wikipedia.org/wiki/Graph%5Fembedding?ref=devopscube.com) can be used. Popular models like [Node2Vec](https://neo4j.com/docs/graph-data-science/current/machine-learning/node-embeddings/node2vec/?ref=devopscube.com) and GraphSAGE are used for this type of embedding. ### Multimodal Embeddings Multimodal embeddings combine text, image, audio, and other data into one shared embedding space. Search engines that understand text + image queries or AI assistants that process multiple data types use [Multimodal Embeddings](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/embeddings/get-multimodal-embeddings?ref=devopscube.com). ![Multimodal embedding model mapping text, image, and audio of the same pod crash incident into a shared vector space](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-74.png) Popular models like[CLIP](https://openai.com/index/clip/?ref=devopscube.com) (OpenAI), [Flamingo](https://deepmind.google/blog/tackling-multiple-tasks-with-a-single-visual-language-model/?ref=devopscube.com) (DeepMind), and Gemini (Google DeepMind) can be used for Multimodal embeddings. ## Real World Example: Google BERT In October 2019, Google integrated [BERT](https://blog.google/products-and-platforms/products/search/search-language-understanding-bert/?ref=devopscube.com) directly into its search engine (one of the most significant improvements to search understanding in its history) Google said that it was its most significant step forward for its search algorithm in the past five years, which impacts nearly 560 million queries a day. BERT takes a search query and outputs a vector that encodes the meaning of the query, not just its keywords. This vector captures the meaning of the query and is what Google actually uses to find and rank relevant results. BERT is a bidirectional model (meaning it looks at the words that come before and after a term to determine context). This is especially important for words that change meaning depending on how they are used. Small words like "to", "for", or "with" can completely change the intent of a search. For example, A query like **2019 Brazil traveler to USA needs a visa** was previously misunderstood by Google because it could not parse the word ***to*** in context. After BERT, Google correctly understood the query was about a Brazilian traveling to the US, not the other way around. Some of the other example may be considered recommender systems such as a food-recommendation application, where when users input their food or meals, the app suggest them the food they like according to their favourite ones. ## Conclusion Embeddings are like the secret language that helps AI understand the world. They turn words and images into numbers that carry meaning. When building an LLM-based application, we can use an Agent Framework (LangGraph, CrewAI) to integrate embedding models and vector stores, enabling us to quickly pull in text data and generate and store embeddings. In upcoming blog posts, we will explore vector databases and RAG (Retrieval-Augmented Generation) and build a real-time chatbot application. ### How to Mount OCI Image as Volume in Kubernetes Pods URL: https://devopscube.com/oci-image-volume-kubernetes-pods/ Last updated: 2026-07-14T12:14:03.000Z In this guide, you will learn how to mount OCI container images as volumes in Kubernetes Pods using the **`ImageVolume`** feature. This feature is useful in ML projects that work with LLMs, as it allows you to package model data in OCI images and easily switch between different models. ## What is ImageVolume The Image Volume feature allows you to use OCI images as volumes directly within [Kubernetes pods](https://devopscube.com/kubernetes-pod/). In Kubernetes version 1.31, the [Image Volume feature](https://kubernetes.io/docs/tasks/configure-pod-container/image-volumes/?ref=devopscube.com) was introduced, and in Kubernetes version 1.36, the image volume feature was marked as a stable release and enabled by default. The below image gives you a high level overview of how OCI images are mounted to pods using the image volume feature. ![Mounting oci image as volume in Kubernetes pods](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-98.png) So what are OCI images? OCI images follow the rules set by [Open Container Initiative](https://opencontainers.org/?ref=devopscube.com). For example, [Docker](https://devopscube.com/what-is-docker/), [Podman](https://devopscube.com/podman-tutorial-beginners/), and container runtimes like containerd and **CRI-O** use OCI image rules. You can use the **`ImageVolume`** feature to store model files, binary files, configuration files, or other data in images which can be mounted to pods. Also, a key thing about this feature is that it is a **read only Volume.** ![Mount OCI Image as Volume in Kubernetes Pods](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-52.png) Now, lets get started with the practical example. ## How to Mount OCI Image as a Volume in Kubernetes Pods In this section, we will build an OCI image and a sample predictor application, then deploy them in the Kubernetes cluster to test the **`ImageVolume`** feature. Follow the below steps to mount an OCI image as a volume for a Kubernetes pod. 💡 If you just want to check this feature and you dont have an active cluster with v1.36, you can create a local cluster using [Kind](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps) or [Kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/). ### Step 1: Build an OCI Image The first step is to build an OCI image. For this example, I am using a prediction model that I have locally. You can replace the model file with any file for testing. Here is the Dockerfile. ``` FROM scratch COPY model.pkl /models/model.pkl ``` You can see, unlike other Dockerfiles that build images on top of a base images, the OCI image is built using `FROM scratch`. I have uploaded this image to Docker Hub as `devopscube/oci-image:1.0`. You can use it directly for testing. ### Step 2: Build a Sample Predictor Application To test the `**ImageVolume**`, we will build a simple Python predictor application. This application loads the `model.pkl` file directly from the mounted image volume. I have already built the app and published it as `devopscube/predictor:1.0`, which you can use for testing. Here is the Python code that is part of the predictor image. ```python import os import joblib import numpy as np from fastapi import FastAPI from pydantic import BaseModel MODEL_PATH = os.environ.get("MODEL_PATH", "/models/model.pkl") model = joblib.load(MODEL_PATH) app = FastAPI() class PredictIn(BaseModel): instances: list @app.get("/healthz") def healthz(): return {"ok": True, "model_path": MODEL_PATH} @app.post("/v1/models/model:predict") def predict(p: PredictIn): X = p.instances try: X_arr = np.array(X, dtype=float) preds = model.predict(X_arr).tolist() except Exception: preds = model.predict(X).tolist() return {"predictions": preds} ``` ### Step 3: Mount the ImageVolume With Deployment Now, lets create a deployment with the predictor container image and the OCI volume image to test the image volume. Here are the Deployment and Service manifests. ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: predictor spec: replicas: 1 selector: matchLabels: app: predictor template: metadata: labels: app: predictor spec: containers: - name: app image: devopscube/predictor:1.0 ports: - containerPort: 8000 env: - name: MODEL_PATH value: /volume/models/model.pkl volumeMounts: - name: model-vol mountPath: /volume volumes: - name: model-vol image: reference: devopscube/oci-image:1.0 pullPolicy: IfNotPresent --- apiVersion: v1 kind: Service metadata: name: predictor-svc spec: selector: app: predictor ports: - port: 80 targetPort: 8000 ``` Deploy the above manifest and check if the pod is running without issues. ```bash $ kubectl get po NAME READY STATUS RESTARTS AGE predictor-5f8bb486d-jd7k2 1/1 Running 0 64s ``` Now, exec into the pod and check if the `model.pkl` file is inside the volume. ```bash $ kubectl exec -it predictor-5f8bb486d-jd7k2 -- ls /volume/models model.pkl ``` Now run the following command to port-forward the predictor service so that we can test the prediction endpoint. ```bash kubectl port-forward svc/predictor-svc 8080:80 ``` Now, use the following `curl` command from your workstation to send a prediction request to the predictor application. This will validate whether the application is able to access the `model.pkl` file from the **`ImageVolume`**. ```bash curl -X POST \ -H "Content-Type: application/json" \ -d '{ "instances": [ "sparrow", "elephant", "rose" ] }' \ "http://127.0.0.1:8080/v1/models/model:predict" ``` You will get the following output. ![](https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/6984c43d-842f-456e-a738-d847f8ded191/image.png?t=1756183770) This is the expected output, `0` means animal, `1` means bird, and `2` means plant. ## ImageVolume With subPath Lets say you have multiple models in different folders of the OCI image and you want to mount a specific model or want to mount multiple models to the pod. This is why `subPath` was introduced for ImageVolumes in Kubernetes v1.33. The image below shows how the subPath mounts a specific model to the pod. ![mounting a single directory of the image with subpath](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-99.png) And the volumeMounts section in the manifest will look like below. ```yaml env: - name: MODEL_PATH value: /volume/model.pkl volumeMounts: - name: model-vol mountPath: /volume subPath: models/prediction volumes: - name: model-vol image: reference: devopscube/oci-image:1.0 pullPolicy: IfNotPresent ``` In this way, you can use same image for multiple models and choose model path in the subPath. That’s a wrap! 🎉 ## Conclusion In this post, you learned about the **`ImageVolume`** feature in Kubernetes, built an OCI image, and tested it with a sample predictor ML application. This feature makes it easy to package data, tools , or models and switch between models without managing complex storage setups. Refer the [Kubernetes ML features](https://devopscube.com/kubernetes-ai-ml-features/) blog to know more about native ML support in Kubernetes. If you want to learn more Kubernetes concepts, look at our [Kubernetes tutorial](https://devopscube.com/kubernetes-tutorials-beginners/) blog. Try this feature and let me know how it goes! ### Kubeflow Pipelines Tutorial: The Ultimate Guide for Beginners URL: https://devopscube.com/kubeflow-pipelines/ Last updated: 2026-09-17T11:58:07.000Z If you are planning to run Machine Learning workflows in [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/), one of the best options is using Kubeflow Pipelines. You can consider this guide as a crash course in Kubeflow pipelines. Before we dive deep in to Kubeflow pipelines, we will first understand about the Kubeflow stack. ## About Kubeflow When it comes to running AI/ML workloads on Kubernetes, [**Kubeflow**](https://www.kubeflow.org/?ref=devopscube.com) is the foundation platform. When the project started (2017–2020), it was primarily built as an [MLOps](https://devopscube.com/devops-to-mlops/) platform for Kubernetes to build and manage traditional ML pipelines. Fast forward to 2026 and the platform has changed a lot. Kubeflow is no longer just an MLOps platform. It has become a cloud-native AI platform for building and operating GenAI, LLMOps, Agentic AI, distributed AI training, and fine-tuning foundation models. ## The KubeFlow Stack The Kubeflow ecosystem has [nine subprojects](https://www.kubeflow.org/docs/components/?utm%5Fcampaign=kubeflow-for-mlops-a-practical-crash-course&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com) at the time of writing this edition. Each project solves a specific use case in the AI/ML lifecycle. The following image illustrates the key projects that are part of Kubeflow and what each does. ![KubeFlow Stack](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image.png) The best part is that these subprojects can run independently or as part of the full stack. You can adopt only [Pipelines](https://devopscube.com/jenkins-pipeline-as-code/), only [Trainer](https://devopscube.com/kubeflow-trainer/), or only Notebooks instead of installing the whole platform. This way you are free to choose only the subprojects that work for your project’s requirements. 📌 In this blog, ****we look at the Kubeflow Pipelines standalone service**, not the entire Kubeflow platform. ## What is Kubeflow Pipelines (KFP)? Kubeflow Pipelines (KFP) is one of the core components of the Kubeflow project. It is a **standalone DAG runtime** that lets you orchestrate your entire machine learning workflow using Python script. Here is the interesting part. Kubeflow Pipelines uses [**Argo Workflows**](https://argoproj.github.io/workflows/?ref=devopscube.com) as its workflow execution engine. Argo Workflows is a Kubernetes-native DAG orchestration engine. However, you write DAG **declaratively in** [**YAML**](https://devopscube.com/create-kubernetes-yaml/) **(CRD)** and not as Python code and Argo executes each task as a Kubernetes pod (Like Airflow Kubernetes operator). Kubeflow uses **Argo Workflows as the backend and** adds an AI/ML layer on top of Argo Workflows. Also, Kubeflow Pipelines does more than just [orchestrate containers](https://devopscube.com/docker-container-clustering-tools/). It understands datasets, model artifacts, [experiment tracking](https://devopscube.com/mlflow-tutorial/), metrics, caching, and reproducible ML pipelines. Here is an important thing you should know. When it comes to pipelines, instead of writing Argo Workflow YAML directly, we need to write the pipelines using Python DAGs like we did in Airflow. Kubeflow then compiles your DAG into an Argo Workflow and submits it to [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) for execution. ## Kubeflow Pipelines Architecture Before you start learning about the workflow, you need to understand all the components that make Kubeflow Pipelines. The following image illustrates high-level architecture of KFP. ![Detailed Kubeflow Pipelines Architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-48.png) Now lets look at each KFP component and what it does. - **ml-pipeline -** This is the api server of Kubeflow pipeline, which is the entry point for it. - **ml-pipeline-ui -** Manages Kubeflow Pipelines UI - **workflow controller -** This is the Argo workflow controller, which runs pipelines and creates pods for each task. - [**mysql**](https://devopscube.com/install-mysql-operator-on-kubernetes/) **\-** Database that stores pipeline definition, experiment details, run history, and metadata. - **seaweedfs server -** Object storage that stores artifacts that have the same functionality as Amazon S3 and Minio. - **cache-server -** This checks if a task ran with the same code before, if there is no change, it will skip the task and use the cache of the previous run. - **cache-deployer -** Creates [TLS certificates](https://devopscube.com/configure-ingress-tls-kubernetes/?utm%5Fcampaign=kubeflow-for-mlops-a-practical-crash-course&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com) for the cache server webhook. - **ML Metadata Pods -** Track inputs and outputs of each task. The following pipeline components get deployed dynamically for every pipeline run, which I have explained in the upcoming section in detail. - **system-dag-driver-\*** \- This pod will be created for each run, and it is responsible for setting the details of the run in MLMD. - **system-container-driver-\*** \- Runner pod which gets input data and gives it to the container implementation pod. - **system-container-impl-\*** \- Runner pod which runs actual code. ## Kubeflow Pipeline DAG Structure Let's understand what a typical Kubeflow Pipelines DAG looks like. A typical machine learning project has multiple steps, like data ingestion, data validation, feature engineering, data preprocessing, etc. These are **mostly sequential tasks,** andin real-world ML projects, some tasks happen in parallel or are repeated. The following image shows an example KFP data preparation pipeline. ![Kubeflow Pipeline Structure](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-2.png) As you can see, the KFP pipeline uses the `@dsl.pipeline` decorator to define the entire workflow. Inside this pipeline function, you call each pipeline component (task) and connect them using inputs and outputs. The interesting part is that you never explicitly write a DAG. 💡 Pleas [read this blog section](https://devopscube.com/apache-airflow-on-kubernetes/#directed-acyclic-graph-dag) to understand about DAG **Kubeflow creates the DAG automatically** from task dependencies. Whenever one task consumes another task's output, a dependency is created. ## How Kubeflow Pipelines Execute Workflows Now that you understand how a Kubeflow Pipeline is structured, let's see what actually happens when you run it. As we discussed earlier, a Kubeflow Pipeline is executed as a **Directed Acyclic Graph (DAG)**. Each task depends on the outputs of one or more previous tasks. If there is no dependency between two tasks, Kubeflow runs them in parallel. The following image illustrates it better. ![DAG explained for Kubeflow ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-3.png) Also, **every pipeline task runs in its own Kubernetes pod**. Instead of running everything in a single process like a Python script, Kubeflow schedules each step as an independent containerized workload. It is similar to [Airflow Kubernetes Executors](https://devopscube.com/apache-airflow-on-kubernetes/#airflow-kubernetes-executors) 💡 Kubeflow DAG's are usually authored by Data Scientists. ## Kubeflow Pipeline Execution Flow When you submit the pipeline, the KFP SDK **compiles the Python pipeline definition into an Intermediate Representation (IR) YAML**. It describes the entire workflow, including its tasks, inputs, outputs, and dependencies The compiled IR YAML is then submitted to the Kubeflow API server, which records the run in MySQL and creates an Argo Workflow CRD. Then the Argo Workflow controller gets the CRD details and creates pods for running the task. The following image illustrates the pipeline execution flow. ![Kubeflow Pipeline Execution Flow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-4.png) ## Runner Pod Implementation Now, let's understand the runner pod implementation and what happens behind the scenes. As we learned before, every pipeline step runs inside its own [Kubernetes Pod](https://devopscube.com/kubernetes-pod/). We call it a runner pod or task pod. For task pods, we can specify a custom container image as given below. ```python from kfp import dsl @dsl.component( base_image="devopscube:1.0-cuda12.8" ) def train(): print("Training...") ``` The following illustration shows what happens internally when a pipeline is triggered. This part is especially important for DevOps engineers. ![Kubeflow runner Pod Implementation](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/image-5.png) Here is what happens. - A **system-dag-driver** pod initializes the pipeline run and creates the execution context in [**ML Metadata (MLMD)**](https://github.com/google/ml-metadata?utm%5Fcampaign=kubeflow-for-mlops-a-practical-crash-course&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com). - For each pipeline task, a **system-container-driver** pod checks for cached results. If a cache hit is found, the task is skipped. - If there is no cache, the container-driver gathers the required inputs and generates the **executor\_input JSON** for the task. - A **system-container-impl** pod is then created to run your actual component code, which also runs the custom container image you specify. - When the task finishes, Kubeflow stores the parameters, artifacts, metrics, and lineage in **ML Metadata (MLMD)** for experiment tracking and future caching. 💡 ****Lineage** in ML is simply the ****history of how a model, dataset, or artifact was created**. So later you can answer questions like **Which dataset produced Model v5?* ## How Caching Works in Kubeflow Pipelines? One of the most useful features of Kubeflow Pipelines is **task-level caching**. In Kubeflow Pipeline, caching is enabled by default, and it is managed by the **`cache-server`.** When you run a pipeline, data like the image used, commands used, etc., are saved as cache. If you run the same pipeline with changes in some steps, only the modified steps will be used. And the same old step details are fetched from the previous runs' cache. You can also configure the pipeline script to disable [cache](https://www.kubeflow.org/docs/components/pipelines/user-guides/core-functions/caching/?ref=devopscube.com#how-to-use-caching) if caching is not needed for a specific step. ## Triggering the Kubeflow Pipeline At this point, you might be wondering, **how do we actually trigger a pipeline?** During development, it's usually very straightforward. You trigger the pipeline from your local machine using the **Kubeflow Pipelines SDK**. We will do exactly that in the next hands-on section. In a production environment, however, you rarely run the pipelines manually. Pipelines are usually triggered automatically in one of three ways: - **On a schedule**, such as running every night or every week. - **On an event**, for example when new training data is uploaded to an S3 bucket. - **From a CI/CD pipeline**, where the **Kubeflow Pipelines API** triggers the workflow automatically after code is merged into the main branch. ## Kubeflow Pipelines Setup (Must Do Exercise) Now it's time to put everything you have learned into practice. To reinforce everything you have learned in this guide, I highly recommend completing the kubeflow hands-on setup on Kubernetes In this hands-on guide, I have convered the following. - Setting up Kubeflow Pipelines on Kubernetes - Access Kubeflow Pipelines UI - Trigger Kubeflow Pipelines Run using Kubeflow SDK - and more.. 👉 ****Follow this Detailed Guide:** [****Set Up Kubeflow Pipelines**](https://devopscube.com/setup-kubeflow-pipelines-kubernetes/?utm%5Fcampaign=kubeflow-for-mlops-a-practical-crash-course&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com) ## Kubeflow Multi-Tenancy By default, Kubeflow Pipelines runs all the runner pods in the same Kubeflow namespace. It is ok for testing environments but not in production environments. In production, multiple teams may share the same Kubeflow Pipelines to run the ML workflows. To isolate resources between teams, Kubeflow gives you multi-user isolation through **Profiles**(a feature in Kubeflow managed via Kubeflow Dashboard). Each profile is linked to a Kubernetes namespace, when one team runs the pipeline, the runner pods are created in their own dedicated namespace. For example, when Team A runs their ML workflows, the runner pods will deploy on Namespace A and Team B's runner pods will deploy on Namespace B. Even in the Kubeflow Dashboard its the same, you have only access to see the resources under your profile. 💡 This feature is only available for the Kubeflow Pipelines when its deployed with the [Kubeflow Community Distribution](https://github.com/kubeflow/community-distribution?ref=devopscube.com) (KubeFlow Stack). ## ## Kubeflow Pipelines FQA's The following are some of the frequently asked questions about Kubeflow pipelines. ### Why does Kubeflow Pipelines create two pods for each step? In the above workflow section, I mentioned that two pods will be created for each step of the pipeline. One of the reasons the pods are separated is to save resources because the driver pod is lightweight, and the implementation pod is heavy. When you run the pipeline, each step will create two pods each, if there are 10 steps, the number of pods created will be 20. For example, Kubeflow Pipeline skips steps if the same cache is present. In such cases, the implementation pod is not created only the driver pod is created for checking the cache. And the other reason is to make troubleshooting easier. If an error occurred in the driver pod, you can check in the source path or the object present in the specified path. If the implementation pod crashes, you need to check the script used in the step. ### What's the difference in using Airflow and Kubeflow Pipelines? This is probably the first question many DevOps engineers ask. *If we already have Airflow, why do we need another workflow orchestration tool?* The answer is simple. Airflow is for running a **general purpose ETL pipelines**, data engineering jobs etc and it is not Kubernetes-specific, it can run on any platform. But Kubeflow Pipelines is a Kubernetes native tool that is specifically built to run ML workflows using [Kubernetes native AI/ML features](https://devopscube.com/kubernetes-ai-ml-features/) And another thing that makes Kubeflow Pipelines a suitable option is that it comes with every component that is needed for **caching, saving the metadata, lineage and artifact management.** ## That’s a Wrap! Before we wrap up, one final thought. If your goal is to move into AI infrastructure, MLOps, or LLMOps, I think Kubeflow is one of the useful platforms you can learn today. The interesting part is that even if your future employer doesn't use Kubeflow, the **knowledge you gain won't go to waste**. By learning Kubeflow, you will understand how production AI platforms are designed and operated. You will learn concepts like, - AI lifecycle orchestration - Model training pipelines - Distributed GPU workloads - Model serving - Experiment tracking and more.. Feel free to share your feedback in the comments. ### Kubernetes Tutorial For Beginners: 100+ Comprehensive Guides URL: https://devopscube.com/kubernetes-tutorials-beginners/ Last updated: 2026-09-17T12:04:26.000Z Welcome to our comprehensive **series of Kubernetes tutorials for beginners**. If you're new to Kubernetes, this is the perfect place to start. Our practical guides will **walk you through the basics**, focusing on Kubernetes objects, deployments and the essential tools you will need to work in Kubernetes real world projects. You will learn the following from the tutorials. 1. Need for Kubernetes 2. Kubernetes Architecture & High Availability Setup 3. Native Kubernetes objects (Pods, Deployments, Statefulsets, Jobs, etc) 4. Kubernetes monitoring & logging 5. Kubernetes troubleshooting 6. Kubernetes config and secret management 7. Kubernetes Security 8. Service mesh with Kubernetes 9. Kubernetes AI/ML features & implementations. 10. Kubernetes productivity tools. 11. Kubernetes certification guides and more.. If you want to follow a structured learning path, check out the [Kubernetes learning path](https://devopscube.com/learn-kubernetes-complete-roadmap/). I am **early adopter of Kubernetes** and been using it since December 2015\. However the learning never stops :) There is always something new to learn in Kubernetes. So I will **keep this blog updated** with new tutorials. ****Note:** If you are looking for an organized way to learn Kubernetes and prepare for the CKA, check out our [complete CKA course](https://courses.devopscube.com/l/pdp/certified-kubernetes-administrator-course?ref=devopscube.com) **(use code FLASH40 to get 40% OFF)**. We explain concepts using illustrations, hands-on exercises, real-world examples, and provide dedicated discord based user support. Before we get in to the organized tutorial list, let go through some key basics. ## What is Kubernetes? As the definition says, [Kubernetes](https://kubernetes.io/?ref=devopscube.com) or k8s is an open-source **orchestration and cluster management for container-based applications** maintained by the Cloud Native Computing Foundation. The official Kubernetes (k8s) website says, > Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon [15 years of experience of running production workloads at Google](http://queue.acm.org/detail.cfm?id=2898444&ref=devopscube.com), combined with best-of-breed ideas and practices from the community. > > kubernetes.io In simple words, Kubernetes makes it easy to deploy and **manage containers on multiple hosts** using a declarative YAML file. You specify how you want the container to be deployed, and Kubernetes takes care of it by reading the information provided in the YAML. Although, it sounds pretty easy, there is a lot of complex systems works at the backend to make it happen. We will learn about it in the detailed architecture. ## Why do we need Kubernetes? The first question people ask or even in Kubernetes interviews is *why do we need kubernetes?* Let's understand it from two real-world examples. ### 1\. Container Deployments Let's say you have a couple of Java applications. You can package it into a [container image](https://devopscube.com/build-docker-image/) and run it on a server containing a **container runtime** such as Docker or containerd. Then you expose a port on a host so users can access the application. This approach works well for smaller setups. However, this setup has a major limitation. Since the application runs on a single server, that server becomes a **single point of failure**. If the server goes down, your application becomes unavailable. This is where [container orchestration](https://devopscube.com/docker-container-clustering-tools/) platform like Kubernetes comes in. Kubernetes runs your application **across diffrent nodes a cluster** instead of a single machine. It automatically scales the application, replaces failed containers or node (self-healing), distributes traffic across different replicas, and performs rolling updates without downtime. That is the key reason, Kubernetes is the ideal orchestration platform for containers. ### 2\. Microservices Deployment/Orchestration Now, let's say, you have a big application that is composed of [microservices](https://opensource.com/resources/what-are-microservices?ref=devopscube.com) (APIs, UI, user management, credit card transaction system, etc). All these microservice components have to talk to each other using REST APIs, gRPC, messaging systems, or other protocols. As the application has many components or microservices, in production, microservices are usually deployed independently so that each service can be scaled, updated, and managed separately. However, independent deployment comes with challenges in **networking, shared file systems, load balancing, resource scheduling, high availability and** [**service discovery**](https://devopscube.com/service-discovery-explained/). Here is where Kubernetes comes into the picture. Using Kubernetes, you just have to worry about your application development and deployments. **All heavy lifting** like networking, service-to-service communication across nodes, load balancing, service discovery, resource scheduling, scalability, and high availability **are taken care of by Kubernetes.** Overall Kubernetes helps you achieve the following. 1. Self Healing 2. Automatic Container Scheduling 3. Horizontal and Vertical Scaling 4. Load balancing 5. Storage orchestration 6. Declarative configuration (YAML based) 7. Rolling updates and rollbacks with zero downtime Now that you have the understanding of what problem Kubernetes solves, lets get started with the tutorials. ## Kubernetes Tutorial For Beginners To get started with Kubernetes, I have categorized all the **Kubernetes beginner's tutorials** in order under different segments. This is a **growing list** of comprehensive practical Kubernetes guides. ⚠️ ****Important Note:** Kubernetes is an open source tool with constant updates to features. There is change where a guide might have a older version of APIs or workflows used. I try to keep all the guides updated. If at all, if you face any issue, please drop a comment so that I can be aware of the update and make the changes accordingly. ## Kubernetes Architecture The first thing you need to learn is the **Kubernetes architecture**. It is a comprehensive guide that explains every aspect of Kubernetes using illustrations. 1. [Kubernetes Architecture Explained](https://devopscube.com/kubernetes-architecture-explained/) ## Kubernetes Cluster Setup Guides In this section, you will learn how to set up both **production-like multi-node** Kubernetes clusters and development clusters on both local workstations and cloud platforms. I highly suggest everyone to setup a self hosted cluster using the following tutorials. It will give you a strong foundation on how Kubernetes components interact the key configurations involved in the cluster. 1. [Kubernetes Minikube Tutorial](https://devopscube.com/kubernetes-minikube-tutorial/) 2. [Setup Kubernetes Cluster Using Kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/): End to end guide on self hosted kubernetes setup using Kubeadm. 3. [Enable Feature Gates on Kubeadm](https://devopscube.com/enable-feature-gates-kubeadm/) (If you want to try out alpha features added in the latest Kubernetes version) 4. [Upgrade Kubeadm cluster](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/) 5. [Kubeconfig file explained](https://devopscube.com/kubernetes-kubeconfig-file/): Deep dive in to cluster authentication using Kubeconfig file. 6. [Understanding Important Kubernetes Cluster Configurations](https://devopscube.com/kubernetes-cluster-configurations/): Complete guide on all the key Kubernetes cluster configurations. 7. [Setup Automated Kubeadm cluster on Vagrant](https://devopscube.com/kubernetes-cluster-vagrant/): A fully automated kubeadm based cluster setup using Vagrant. 8. [GKE Cluster setup on Google Cloud - Detailed Guide](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) 9. [EKS Cluster Setup using eksctl](https://devopscube.com/create-aws-eks-cluster-eksctl/): Guide to create EKS clusters in few steps. 10. [Building a Kubernetes Cluster The Hard Way](https://devopscube.com/building-kubernetes-cluster-the-hard-way/): Personal Insights and Practical Guidance to build a k8s cluster from scratch. 11. [Kubernetes Kind Cluster](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps/) 12. [Setup Rancher on Kubernetes Cluster](https://devopscube.com/setup-rancher-on-kubernetes-cluster/): Guide to manage mutiple clusters from a single interface. ## Kubernetes High Availability Once you gain hands on experience setting up Kubernetes clusters, the next step is to understand its High availability setup and key production design considerations. The following guides focus on those aspects. 1. [How To Achieve Kubernetes High Availability ](https://devopscube.com/kubernetes-high-availability/) 2. [Kubernetes Best Practices for Production Clusters ](https://devopscube.com/key-considerations-kubernetes-cluster-design-setup/) ## Kubectl Tutorials When working with Kubernetes clusters, kubectl is an essential command to interact with the cluster. In this section we will look at tutorials to use kubectl effectively. 1. [kubectl set context guide](https://devopscube.com/kubectl-set-context/) 2. [Setup Kubectl Aliases with Kuberc](https://devopscube.com/kubectl-aliases/) ## Kubernetes Node Management This section contains the tutorial for enabling swap on Kubernetes cluster nodes and setting up the Node Feature Discovery add-on on the Kubernetes cluster to automatically label the nodes based on the features available in it. 1. [Enable Swap on Kubernetes Nodes](https://devopscube.com/kubernetes-swap/) 2. [Node Feature Discovery on Kubernetes](https://devopscube.com/node-feature-discovery/) ## Kubernetes Backup & Restore Tutorials In this section, we will learn about Kubernetes backup and restore using Kubernetes native tooling and other open-source and CNCF-related tools. 1. [Etcd Backup and Restore:](https://devopscube.com/backup-etcd-restore-kubernetes/) Detailed guide on backing up etcd and restoring it from the backup. 2. [Backup And Restore EKS Cluster Using Velero](https://devopscube.com/backup-and-restore-eks-cluster-velero/): Step by step instructions to backup and restore EKS cluster using Velero in Kubernetes. ## Kubernetes Native Resource Tutorials This section covers tutorials on Kubernetes native resources like deployments, pods, Statefulset, RBAC, jobs, ingress, and much more. 1. [Understanding Kubernetes Objects Vs Resources Vs Custom Resource](https://devopscube.com/kubernetes-objects-resources/): Learn about Kubernetes objects, resources, custom resources and their differences in detail. 2. [Kubernetes Pod Explained](https://devopscube.com/kubernetes-pod/): The fundamental object pod explained with practical examples. 3. [Pod Lifecycle explained](https://devopscube.com/kubernetes-pod-lifecycle/): A detailed guide on pod lifecycle phases. 4. [Understanding Init Containers](https://devopscube.com/kubernetes-init-containers/): Deep dive into init containers. 5. [Kubernetes Deployment Tutorial For Beginners](https://devopscube.com/kubernetes-deployment-tutorial/) 6. [Kubernetes Daemonset Explained](https://devopscube.com/kubernetes-daemonset/) 7. [How to create Kubernetes Role for Service account](https://devopscube.com/create-kubernetes-role/) 8. [How To Create Kubernetes Service Account for API access](https://devopscube.com/kubernetes-api-access-service-account/) 9. [Kubernetes Ingress Tutorial For Beginners](https://devopscube.com/kubernetes-ingress-tutorial/) 10. [How To Set Up Ingress On Kubernetes Using Nginx Controller](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/) 11. [Kubernetes Gateway API Tutorial for Beginners](https://devopscube.com/kubernetes-gateway-api/) 12. [Setup Envoy Gateway API Controller On Kubernetes. ](https://devopscube.com/setup-envoy-gateway-api/)[How to configure SSL/TLS for Kubernetes Ingress](https://devopscube.com/configure-ingress-tls-kubernetes/) 13. [How To Create Kubernetes Jobs/Cron Jobs](https://devopscube.com/create-kubernetes-jobs-cron-jobs/) 14. [Kubernetes Pod PriorityClass & Preemption Explained](https://devopscube.com/pod-priorityclass-preemption/) 15. [Create Static Pod in Kubernetes](https://devopscube.com/create-static-pod-kubernetes/) 16. [Kubernetes Pod Graceful Shutdown](https://devopscube.com/kubernetes-pod-graceful-shutdown/) 17. [In-Place Pod Resize with VPA in Kubernetes](https://devopscube.com/vpa-in-place-pod-resize/) 18. [Mount OCI Image as Volume in Kubernetes Pods](https://devopscube.com/oci-image-volume-kubernetes-pods/) ## Managed Kubernetes Services This section covers the implementation done on managed Kubernetes services. 1. [Setup VPC Secondary Network For EKS Cluster](https://devopscube.com/secondary-network-eks-cluster/) 2. [Provision Persistent Volume on EKS Cluster](https://devopscube.com/provsion-persistent-volume-on-eks/) 3. [Resize Persistent Volumes in AWS EKS Cluster](https://devopscube.com/resize-volume-eks-cluster/) 4. [Set up Cert Manager on EKS cluster](https://devopscube.com/nginx-ingress-with-cert-manager/) 5. [Cluster AutoScaler Setup on AWS EKS](https://devopscube.com/cluster-autoscaler/) 6. [Setup Ingress on GKE using GKE Ingress Controller](https://devopscube.com/setup-ingress-gke-ingress-controller/) 7. [Add Persistent Volume in GKE](https://devopscube.com/persistent-volume-google-kubernetes-engine/) ## Kubernetes Productivity Guides 1. [Easy Ways to Create Kubernetes YAML's](https://devopscube.com/create-kubernetes-yaml/) 2. [Best Kubernetes Dashboard App - Kubernetes Lens](https://www.youtube.com/watch?v=b9KIq%5FZlRHw&t=6s&ref=devopscube.com) \[Video Tutorial\] ## Kubernetes Monitoring Tutorials This section focuses on Kubernetes monitoring and logging using tools like Prometheus, Grafana, Alert Manager, etc. We will also cover guides on logging and monitoring related to specific cloud providers. 1. [How To Setup Prometheus Monitoring On Kubernetes Cluster](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) 2. [Setup Prometheus Node Exporter on Kubernetes](https://devopscube.com/node-exporter-kubernetes/) 3. [Setup Kube State Metrics on Kubernetes](https://devopscube.com/setup-kube-state-metrics/) 4. [Setup Prometheus JMX Exporter on Kubernetes](https://devopscube.com/prometheus-jmx-exporter-on-kubernetes/) 5. [Setting Up Alert Manager On Kubernetes](https://devopscube.com/alert-manager-kubernetes-guide/) 6. [Setting up grafana on Kubernetes](https://devopscube.com/setup-grafana-kubernetes/) 7. [Setting up Prometheus Operator on Kubernetes](https://devopscube.com/setup-prometheus-operator/): In this blog, you will learn to set up and configure the Prometheus Operator. ## Kubernetes Logging Guides This section covers the list of end-to-end beginner tutorials on Kubernetes logging. 1. [Kubernetes Logging Explained for beginners](https://devopscube.com/kubernetes-logging-tutorial/): This tutorial explains the underlying Kubernetes logging concepts and patterns in detail. 2. [EFK setup on Kubernetes:](https://devopscube.com/setup-efk-stack-on-kubernetes/) A step-by-step guide explaining the EFK logging stack on Kubernetes. 3. [Configure AWS S3 as Loki Log Storage ](https://devopscube.com/setup-grafana-loki/)[Helm](https://devopscube.com/create-helm-chart/). 4. [Grafana Loki Setup On Kubernetes](https://devopscube.com/configure-loki-s3/): A step-by-step guide to setup Grafana Loki on Kubernetes using [Helm](https://devopscube.com/create-helm-chart/). ## Kubernetes Troubleshooting Guides In this section, we will learn to troubleshoot Kubernetes objects (Pods, Deployments, Statefulset, cluster components, etc). 1. [How to Troubleshoot Kubernetes Pods](https://devopscube.com/troubleshoot-kubernetes-pods/) ## Kubernetes Application Deployment Tutorials This section aims to cover tutorials on setting Statefulsets for databases like PostgreSQL, MongoDB, etc. We will also cover Kubernetes database operators which provide extra functionalities to manage databases on Kubernetes. 1. [Learn to deploy PostgreSQL Statefulset cluster](https://devopscube.com/deploy-postgresql-statefulset/) 2. [Deploy MongoDB on Kubernetes](https://devopscube.com/deploy-mongodb-kubernetes/) 3. [Setup MySQL Operator on Kubernetes](https://devopscube.com/install-mysql-operator-on-kubernetes/) 4. [Deploy Java App With MySQL on Kubernetes](https://devopscube.com/deploy-java-app-kubernetes/): Learn to build and deploy a Java application with the MySQL database on the Kubernetes cluster. 5. [Deploy WordPress on Kubernetes with Nginx and MySQL](https://devopscube.com/deploy-wordpress-on-kubernetes/): Learn to deploy WordPress on Kubernetes cluster with Nginx and MySQL database. ## Kubernetes Package Management Tutorials Under Kubernetes package management, you will learn about tools like Helm and Kustomize. Helm is a templating tool and Kustomize is an overlay engine. These are standard tools used in organizations to manage kubernetes deployments. 1. [How To Install Helm for Kubernetes Deployment](https://devopscube.com/install-configure-helm-kubernetes/) 2. [How to Create Helm Chart from Scratch](https://devopscube.com/create-helm-chart/) 3. [Kustomize Tutorial](https://devopscube.com/kustomize-tutorial/) 4. [Kuztomize Configmap & Secret Generators](https://devopscube.com/kuztomize-configmap-generators/) ## Kubernetes CI/CD Tutorials Under Kubernetes CI/CD, you will learn to use commonly used CI/CD tools like Jenkins and advanced GitOps Operators like ArgoCD, FluxCD, etc. 1. [Setup Jenkins On Kubernetes Cluster](https://devopscube.com/setup-jenkins-on-kubernetes-cluster/) 2. [Setup Jenkins Build Agents on Kubernetes Pods](https://devopscube.com/jenkins-build-agents-kubernetes/) 3. [Building Docker Images In Kubernetes Pod using Kaniko](https://devopscube.com/build-docker-image-kubernetes-pod/) 4. [Setup Latest Nexus OSS On Kubernetes](https://devopscube.com/setup-nexus-kubernetes/) 5. [Setup Argo CD on Kubernetes](https://devopscube.com/setup-argo-cd-using-helm/) 6. [Deploy Helm Charts Using Argo CD](https://devopscube.com/how-to-deploy-helm-charts-using-argo-cd/) 7. [Setup Multiple Clusters on ArgoCD](https://devopscube.com/configure-multiple-kubernetes-clusters-argo-cd/) 8. [Setup GitHub Actions Runner on AWS EKS Cluster](https://devopscube.com/github-actions-runner-aws-eks/): Learn to setup set up a Github Actions self-hosted runner on the AWS EKS Kubernetes Cluster. ## Kubernetes Secret Management Tutorials Secret management is one of the aspects in Kubernetes when running workloads in production. In this section, you will learn to manage secrets in Kubernetes using recommended open-source secrets management tools. Also, we will look at the cloud-specific secret management solutions that can be integrated with Kubernetes. 1. [Setup Hashicorp Vault in Kubernetes](https://devopscube.com/vault-in-kubernetes/) 2. [Injecting Secrets to Pods Using Vault Agent](https://devopscube.com/vault-agent-injector-tutorial/) 3. [Setting up External Secrets on EKS](https://devopscube.com/kubernetes-external-secrets-operator/) 4. [Manage Secrets on AWS EKS using Secrets Store CSI Driver](https://devopscube.com/secrets-store-csi-dirver-eks/) 5. [Manage Secrets using Sealed Secrets](https://devopscube.com/sealed-secrets-kubernetes/) ## Kubernetes Security Guides In this section, we will look at Kubernetes security guides. 1. [CIS Benchmarking using kube-bench](https://devopscube.com/kube-bench-guide/) 2. [Seccomp in Kubernetes](https://devopscube.com/seccomp-in-kubernetes/) 3. [Run Kubernetes Pods/Containers as Non-Root User](https://devopscube.com/run-kubernetes-pod-as-non-root-user/) ## Kubernetes Certification Guides (CKA/CKAD/CKS) If you are looking to get certified in Kubernetes, the following comprehensive Kubernetes certification guides and learning paths will help. 1. [CKA Certification Study Guide](https://devopscube.com/cka-exam-study-guide/) 2. [CKAD Certification Study Guide](https://devopscube.com/ckad-exam-study-guide/) 3. [CKS Certification Study Guide](https://devopscube.com/cks-exam-guide-tips/) 4. [KCNA Certification Study Guide](https://devopscube.com/kcna-study-guide/) 5. [KCSA Certification Study Guide](https://devopscube.com/kcsa-exam-study-guide/) Also, check out the [kubernetes certification coupons](https://devopscube.com/kubernetes-certification-coupon/) page to get the latest exam voucher codes to save money on Exam registration. ## Kubernetes Service Mesh Tutorial Service mesh is an advanced setup in Kubernetes. It is mainly used for microservices that need features like mTLS, strong traceability, circuit breaking, canary deployments, and more. You can get started with Istio service mesh using the following detailed tutorials. 1. [Set up Istio on Kubernetes (Sidecar mode)](https://devopscube.com/setup-istio-on-kubernetes/) 2. [Set up Istio on Kubernetes (Ambient mode)](https://devopscube.com/setup-istio-ambient-mode/) 3. [Setting up Istio Ingress With Kubernetes Gateway API](https://devopscube.com/istio-ingress-kubernetes-gateway-api/) 4. [Managing East-West Traffic with Gateway API in Istio (GAMMA)](https://devopscube.com/gateway-api-for-service-mesh/) ## Kubernetes AI/ML Guides AI and ML workloads have become a major part of Kubernetes today. In this section, we will look at Kubernetes guides focused on AI/ML that will help you build your MLOps skills on Kubernetes. 1. [Kubernetes Built-in AI/ML Features ](https://devopscube.com/kubernetes-ai-ml-features/) 2. [Setup GPU Operator on Kubernetes ](https://devopscube.com/setup-gpu-operator-kubernetes/) 3. [Deploy ML Model on Kubernetes with KServe ](https://devopscube.com/deploy-ml-model-kubernetes-kserve/) 4. [How to Setup Feast Feature Store on Kubernetes ](https://devopscube.com/setup-feature-store-feast-on-kubernetes/) 5. [How to Deploy Apache Airflow on Kubernetes ](https://devopscube.com/apache-airflow-on-kubernetes/) 6. [Set Up Kubeflow Pipelines on Kubernetes ](https://devopscube.com/setup-kubeflow-pipelines-kubernetes/) 7. [Distributed ML Training with Kubeflow Trainer ](https://devopscube.com/kubeflow-trainer/) 8. [MLflow Tutorial for Beginners ](https://devopscube.com/mlflow-tutorial/) ## Kubernetes Latest Updates Following are some of the latest updates from Kubernetes. 1. [Kubernetes v1.36:](https://kubernetes.io/blog/2026/04/22/kubernetes-v1-36-release/?ref=devopscube.com) A new version, Haru, has been released with 70 feature enhancements. In this, 18 are Stable, 25 are Beta, 25 are Alpha, 1 is deprecated, and 1 is removed. 2. [Kubernetes v1.35:](https://kubernetes.io/blog/2025/12/17/kubernetes-v1-35-release/?ref=devopscube.com) Timbernetes has been released with 60 enhancements. Of these,17 are Stable, 19 are Beta, 22 are Alpha, 1 is deprecated, and 1 is removed. 3. [Kubernetes v1.34:](https://kubernetes.io/blog/2025/08/27/kubernetes-v1-34-release/?ref=devopscube.com) Of Wind & Will (O' WaW) has been released with 58 enhancements, including deprecations and removals. 4. [Kubernetes v1.33:](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/?ref=devopscube.com) Octarine has been released with 64 enhancements, of which some are deprecated. 5. [Kubernete v1.32:](https://kubernetes.io/blog/2024/12/11/kubernetes-v1-32-release/?ref=devopscube.com) Penelope has been released. Of the 44 enhancements, 13 have graduated to Stable, 12 are now Beta, and the remaining 19 are Alpha. 6. [Kubernetes v1.31:](https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/?ref=devopscube.com) Elli has been released with 45 enhancements and multiple graduated features. 7. [Kubernetes v1.30:](https://kubernetes.io/blog/2024/04/17/kubernetes-v1-30-release/?ref=devopscube.com) Kubernetes has been released with 58 new and improved features. 8. [Kubernetes v.28](https://kubernetes.io/blog/2023/08/15/kubernetes-v1-28-release/?ref=devopscube.com): Planternetes has been released. It has 45 enhancements. 19 are entering Alpha, 14 have graduated to Beta, and 12 have graduated to Stable. 9. [Kubernetes v1.27:](https://kubernetes.io/blog/2023/04/11/kubernetes-v1-27-release/?ref=devopscube.com) Chill Vibes has been released. It has 60 enhancements. Out of which 13 are graduating to Stable. 10. [Kubernetes v1.26](https://kubernetes.io/blog/2022/12/09/kubernetes-v1-26-release/?ref=devopscube.com): Electrifying has been released. It has 37 enhancements. 11. Kubernetes v1.25: Combiner has been released. It has 40 enhancements. 12. Kubernetes 1.24: Stargazer has been **released**. This release has 46 enhancements. Out of which, 13 are graduating to Stable, 14 existing features got improvements, 13 new features added, and six are deprecated. 13. Dockershim deprecated with the release of Kubernetes 1.24 14. Kubernetes Volume Expansion Now A Stable Feature ## Is Kubernetes easy to learn? Kubernetes is a complex distributed system and a DevOps tool that is driven by APIs. If you know the basics of APIs, YAML, and Networking, you can learn Kubernetes easily. ## How do I start studying for Kubernetes? To start studying for Kubernetes, you need to first learn more about the platform itself. There are many online platforms that can help you get started with your studies. Some of them include the following: 1\. **Start With a Roadmap:** First, have a detailed roadmap with a list of concepts to learn in Kubernetes. You can refer to our [Kubernetes learning roadmap](https://github.com/techiescamp/kubernetes-learning-path?ref=devopscube.com) for a structured list of Kubernetes topics from beginner to advanced. 2\. **The official Kubernetes Documentation & Tasks** \- This is the best source for learning about all of the different components and features that make up Kubernetes. You can check out this website to see what each component does and how you can use it. 3.. **Online Kubernetes forums** \- There are many online forums where people discuss Kubernetes. For Example, LinkedIn Groups, StackOverflow, and Reddit. This is a great place to ask questions and get help from other users. You can also find many useful tips and tricks here. 4\. **YouTube Kubecon Videos** \- Many excellent Kubecon videos can help you learn about Kubernetes in depth. You can learn about the different features of Kubernetes and how to use them. 5\. **Books** \- There are many good books that can help you learn about Kubernetes. Some of these books include "Kubernetes: Up and Running" and "Kubernetes Cookbook". 6. **Killercoda Scenarios:** Use Katacoda free tutorials to learn real-time Kubernetes scenarios with browser-based terminals. ## Conclusion I will keep adding all the **Kubernetes beginner tutorials** to this list. I aim to complete all Kubernetes concepts with real-world examples and project guides. Also, these tutorials will help you if you are preparing for [Kubernetes certifications](https://devopscube.com/best-kubernetes-certifications/). Subscribe to our mailing list to keep updated on our latest Kubernetes tutorials. ### Kubernetes Architecture Explained (With Illustrated Diagrams) URL: https://devopscube.com/kubernetes-architecture-explained/ Last updated: 2026-07-02T16:07:33.000Z In this guide, you will explore Kubernetes architecture inside-out. In this illustrated guide, I break down every Kubernetes component, from the control plane to the kubelet, showing you how the Kubernetes cluster really works. So if you are looking to: 1. Understand the architecture of Kubernetes 2. Grasp the fundamental concepts underlying Kubernetes components. 3. Learn about Each Kubernetes component in detail 4. Explore the workflows that connect these components Then you will find this Kubernetes architecture guide invaluable. ****Note**: To understand Kubernetes architecture better, there are some prerequisites Please check the prerequisites in the [kubernetes learning guide](https://devopscube.ghost.io/learn-kubernetes-complete-roadmap/?ref=devopscube.com) to know more. ## What is Kubernetes Architecture? The following **Kubernetes architecture diagram** shows all the components of the Kubernetes cluster and how external systems connect to the Kubernetes cluster. ![Kubernetes Architecture Diagram](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/02-k8s-architecture-1.gif) Click to view in HD The first and foremost thing you should understand about Kubernetes is, that it is a **distributed system**. Meaning, it has multiple components spread across different servers over a network. These servers could be Virtual machines or bare metal servers. We call it a Kubernetes cluster. ⚠️ If you are a beginner and do not have much hands-on experience, some of the concepts in this guide might be a bit hard to grasp. If that’s the case, I recommend coming back to the deep dive sessions after you have spent some time working through our [Kubernetes tutorial](https://devopscube.com/kubernetes-tutorials-beginners/). A Kubernetes cluster consists of control plane nodes and worker nodes. ### Control Plane The control plane is responsible for container orchestration and maintaining the desired state of the cluster. It has the following components. 1. kube-apiserver 2. etcd 3. kube-scheduler 4. kube-controller-manager 5. cloud-controller-manager A cluster can have one or more control plane nodes. ### Worker Node The Worker nodes are responsible for running containerized applications. The worker Node has the following components. 1. kubelet 2. kube-proxy 3. Container runtime Now lets deep dive in to each of these components. ## Kubernetes Control Plane Components First, let's take a look at each control plane component and the important concepts behind each component. ### 1\. kube-apiserver The **kube-apiserver** is the central hub of the Kubernetes cluster that exposes the Kubernetes API. It is highly scalable and can handle large number of concurrent requests. End users, and other cluster components, talk to the cluster via the API server. Very rarely monitoring systems and third-party services may talk to API servers to interact with the cluster. So when you use [kubectl](https://devopscube.com/kubectl-aliases/) to manage the cluster, at the backend you are actually communicating with the API server through **HTTP REST APIs** over TLS. Also, the communication between the API server and other components in the cluster happens over TLS to prevent unauthorized access to the cluster. ![kuberetes API server Diagram](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/02-k8s-architecture-api-1.gif) Click to view in HD Kubernetes **api-server** is responsible for the following. 1. **API management**: Exposes the cluster API endpoint and handles all API requests. The API is version and it supports multiple API versions simultaneously. 2. **Authentication** (Using client certificates, bearer tokens, and HTTP Basic Authentication) and **Authorization** (ABAC and RBAC evaluation) 3. Processing API requests and validating data for the API objects like pods, services, etc. (Validation and Mutation Admission controllers) 4. the API server coordinates all the processes between the control plane and worker node components. 5. API server also contains an [aggregation layer](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/?ref=devopscube.com) which allows you to extend Kubernetes API to create custom API resources and controllers. 6. The only component that the **kube-apiserver initiates a connection to** is the **etcd** component. All the other components connect to the API server. 7. The API server also **supports watching resources** for changes. For example, clients can establish a watch on specific resources and receive real-time notifications when those resources are created, modified, or deleted. 8. Each component (Kubelet, scheduler, controllers) **independently watches the API server** to figure out what it needs to do. Also the api-server has a built-in **apiserver proxy**. It is part of the API server process. It has a **built-in proxy** that forwards requests to cluster resources. This is primarily meant for **administrative and debugging purposes** andnot for exposing applications outside the cluster. ****Security** ****Note**: To reduce the cluster attack surface, it is crucial to secure the API server. The Shadowserver Foundation has conducted an experiment that discovered [380 000 publicly accessible Kubernetes API servers](https://www.shadowserver.org/news/over-380-000-open-kubernetes-api-servers/?ref=devopscube.com). ### 2\. etcd Kubernetes is a distributed system and it needs an efficient distributed database like etcd that supports its distributed nature. It acts as the single source of truth for the cluster. All Kubernetes objects, configurations, and metadata are stored here. [etcd](https://github.com/etcd-io/etcd?ref=devopscube.com) is an open-source strongly consistent, distributed key-value store. So what does it mean? 1. **Strongly consistent:** If an update is made to a node, strong consistency will ensure it gets updated to all the other nodes in the cluster immediately. Also if you look at [CAP theorem](https://en.wikipedia.org/wiki/CAP%5Ftheorem?ref=devopscube.com), achieving 100% availability with strong consistency and Partition Tolerance is impossible. 2. **Distributed**: etcd is designed to run on multiple nodes as a cluster without sacrificing consistency. 3. **Key Value Store:** A nonrelational database that stores data as keys and values. It also exposes a key-value API. The datastore is built on top of [BboltDB](https://github.com/etcd-io/bbolt?ref=devopscube.com) which is a fork of BoltDB. etcd uses [raft consensus algorithm ](https://raft.github.io/?ref=devopscube.com)for strong consistency and availability. It works in a leader-member fashion for high availability and to withstand node failures. So, how does etcd work with Kubernetes? To put it simply, when you use kubectl to get kubernetes object details, you are getting it from etcd. Also, when you deploy an object like a pod, an entry gets created in etcd. In a nutshell, here is what you need to know about etcd. 1. etcd stores all configurations, states, and metadata of Kubernetes objects (pods, secrets, daemonsets, [deployments](https://devopscube.com/kubernetes-deployment-tutorial/), configmaps, statefulsets, etc). 2. `etcd` allows a client to subscribe to events using `Watch()` API . Kubernetes api-server uses the etcd’s watch functionality to track the change in the state of an object. 3. etcd exposes key-value API [using gRPC](https://etcd.io/docs/v3.5/learning/api/?ref=devopscube.com). Also, the [gRPC gateway](https://etcd.io/docs/v3.3/dev-guide/api%5Fgrpc%5Fgateway/?ref=devopscube.com) is a RESTful proxy that translates all the HTTP API calls into gRPC messages. This makes it an ideal database for Kubernetes. 4. etcd stores all objects under the **/registry** directory key in key-value format. For example, information on a pod named Nginx in the default namespace can be found under **/registry/pods/default/nginx** ![kubernetes etcd Diagram](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/02-k8s-architecture-etcd-1.gif) Click to view in HD Also, etcd it is the only **Statefulset** component in the control plane. In [kubeadm-based clusters](https://devopscube.com/setup-kubernetes-cluster-kubeadm/), it typically runs as a [**static Pod**](https://devopscube.com/create-static-pod-kubernetes/) managed by the kubelet. ### 3\. kube-scheduler The kube-scheduler is responsible for **scheduling Kubernetes pods on worker nodes**. When you deploy a pod, you specify the pod requirements such as CPU, memory, affinity, taints or tolerations, priority, persistent volumes (PV), etc. The scheduler's primary task is to identify the create request and choose the best node for a pod that satisfies the requirements. The following image shows a high-level overview of **how the scheduler works**. ![Kubernetes Scheduler detailed workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/02-k8s-architecture-sc-1.gif) Click to view in HD 💡 For specialised hardware (like GPUs, FPGAs, smart NICs) the scheduler can make use of Dynamic Resource Allocation (DRA). It is a feature in Kubernetes (stable since v1.34) that gives the scheduler real information about hardware devices in the cluster. So if DRA is enabled, the scheduler can do ****hardware-aware scheduling for specialized devices** that are particularly useful for AI/ML workloads. ### 4\. Kube Controller Manager **What is a controller?** [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/?ref=devopscube.com) are programs that run infinite control loops. Meaning it runs continuously and watches the actual and desired state of objects. If there is a difference in the actual and desired state, it ensures that the kubernetes resource/object is in the desired state. As per the official documentation, In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state. Let's say you want to create a deployment, you specify the desired state in the manifest YAML file (declarative approach). For example, 2 replicas, one volume mount, configmap, etc. The in-built deployment controller ensures that the deployment is in the desired state all the time. If a user updates the deployment with 5 replicas, the deployment controller recognizes it and ensures the desired state is 5 replicas. **Kube controller manager** is a component that manages all the Kubernetes controllers. Kubernetes resources/objects like pods, namespaces, jobs, replicaset are managed by respective controllers. ![Kube Controller Manager](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/02-k8s-architecture-cm-1.gif) Click to view in HD Following is the list of important built-in Kubernetes controllers. 1. Deployment controller 2. Replicaset controller 3. DaemonSet controller 4. Job Controller ([Kubernetes Jobs](https://devopscube.com/create-kubernetes-jobs-cron-jobs/)) 5. CronJob Controller 6. endpoints controller 7. namespace controller 8. [service accounts](https://devopscube.com/kubernetes-api-access-service-account/) controller. 9. Node controller Here is what you should know about the Kube controller manager. 1. It manages all the controllers and the controllers try to keep the cluster in the desired state. 2. You can extend kubernetes with **custom controllers** associated with a custom resource definition. ### 5\. Cloud Controller Manager (CCM) When kubernetes is deployed in cloud environments, the cloud controller manager acts as a bridge between Cloud Platform APIs and the Kubernetes cluster. This way, the core kubernetes core components can work independently and allow the cloud providers to integrate with kubernetes using Cloud Controller binaries. **Cloud Controller Manager is the bridge** between Kubernetes and your cloud provider. It talks to the cloud provider's APIs to manage resources like load balancers, routes, and node metadata. ![Cloud Controller Manager animated worflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/07/cloud-controller.gif) Cloud Controller Manager contains a set of **cloud platform-specific controllers** that ensure the desired state of cloud-specific components (nodes, [Loadbalancers](https://devopscube.com/aws-load-balancers/), storage, etc). Following are the three main controllers that are part of the cloud controller manager. 1. **Node controller:** This controller updates node-related information by talking to the cloud provider API. For example, node labeling & annotation, getting hostname, nodes health, etc. 2. **Route controller:** It is responsible for configuring networking routes on a cloud platform. So that pods in different nodes can talk to each other. 3. **Service controller**: It takes care of deploying load balancers for kubernetes services, assigning IP addresses, etc. Overall, the Cloud Controller Manager handles all cloud-specific operations by talking to the cloud provider's APIs. This keeps the core Kubernetes control plane **cloud-independent.** ## Core Components of Kubernetes Worker Node Now let's look at each of the worker node components. ### 1\. Kubelet Kubelet is an agent component that runs on every node in the cluster. It does not run as a container instead runs as a daemon, managed by systemd. It registers the node with the API server and watches for Pods scheduled to that node. When a Pod is assigned, it talks to the container runtime to create, update, or remove containers to match the desired state. To put it simply, kubelet is responsible for the following. 1. Creating, modifying, and deleting containers for the pod. 2. Responsible for handling liveliness, readiness, and startup probes. 3. Responsible for Mounting volumes by reading pod configuration and creating respective directories on the host for the volume mount. 4. Collecting and reporting Node and pod status via calls to the API server with implementations like `cAdvisor` and `CRI`. Kubelet also manages Static Pods. These are defined locally on the node instead of going through the Kubernetes API. In kubeadm-based clusters, the control plane components themselves run as Static Pods during cluster bootstrapping. Following are some of the key things about kubelet. 1. Kubelet uses the CRI (container runtime interface) gRPC interface to talk to the container runtime. 2. It also exposes an HTTP endpoint to stream logs and provides exec sessions for clients. 3. Uses the CSI (container storage interface) gRPC to configure block volumes. 4. It uses the CNI plugin configured in the cluster to allocate the pod IP address and set up any necessary network routes and firewall rules for the pod. ![Kubernetes component kubelet explained ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kubelet-architecture-1.png) Click to view in HD 💡 As of Kubernetes v1.35 (General Availability), kubelet can adjust a Pod’s CPU and memory requests and limits while the Pod is running, often without restarting the container as part of in-place pod resize feature. ### 2\. Kube proxy (Optional) To understand kube-proxy, you need a basic understanding of Kubernetes **Services** and **EndpointSlices**. Service in Kubernetes is a way to expose a set of pods internally or to external traffic. When you create the service object, it gets a virtual IP assigned to it. It is called **clusterIP**. It is only accessible within the Kubernetes cluster. **EndpointSlices store the IP addresses** and ports of the Pods backing a Service. The EndpointSlice controller creates and updates them automatically as Pods come and go. This is how a Service knows which backend Pods to send traffic to. You cannot ping the ClusterIP because it is only used for service discovery, unlike pod IPs which are pingable. Now let's understand Kube Proxy. Kube-proxy is a daemon that runs on every node as a [daemonset](https://devopscube.com/kubernetes-daemonset/). It is a proxy component that implements the Kubernetes Services concept for pods. (single DNS for a set of pods with load balancing). It primarily proxies UDP, TCP, and SCTP and does not understand HTTP. When you expose pods using a Service (ClusterIP), Kube-proxy creates network rules to send traffic to the backend pods (endpoints) grouped under the Service object. Meaning, all the load balancing, and service discovery are handled by the Kube proxy. **So how does Kube-proxy work?** Kube proxy talks to the API server to get the details about the Service (ClusterIP) and respective pod IPs & ports. It **watches Services and EndpointSlices** through the API server. Whenever something changes, it updates the forwarding rules on the node. Kube-proxy then uses any one of the following modes to create/update rules for routing traffic to pods behind a Service 1. [**IPTables**](https://wiki.centos.org/HowTos/Network/IPTables?ref=devopscube.com): It is the default mode. In IPTables mode, the traffic is handled by IPtable rules. This means that for each service, IPtable rules are created. These rules capture the traffic coming to the ClusterIP and then forward it to the backend pods. Also, In this mode, kube-proxy chooses the backend pod random for load balancing. Once the connection is established, the requests go to the same pod until the connection is terminated. 2. [**NFTables**](http://kubernetes.io/blog/2025/02/28/nftables-kube-proxy/?ref=devopscube.com): This mode It primarily addresses the performance and scalability limitations in `iptables`, typically in large clusters with thousands of services. ![how does kube proxy work - Workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-14-19.png) Click to view in HD I have **mentioned "optional"** in the kube-proxy heading. Here is why. Modern CNI plugins implement their own packet forwarding and load balancing logic that matches what kube-proxy does. It means kubernetes **networking still works without kube-proxy** running. In that case, kube-proxy can be skipped. A classic example for this use case is [Cilium](https://github.com/cilium/cilium?ref=devopscube.com) (eBPF-based CNI). It uses [**eBPF**](https://ebpf.io/?ref=devopscube.com) **in the Linux kernel** to handle Kubernetes Service traffic (ClusterIP, NodePort, LoadBalancer) directly, without relying on the iptables/nftables rules that kube-proxy uses. ### 3\. Container Runtime You probably know about [Java Runtime (JRE)](https://aws.amazon.com/what-is/java-runtime-environment/?ref=devopscube.com). It is the software required to run Java programs on a host. In the same way, container runtime is a software component that is required to run containers. Container runtime runs on all the nodes in the Kubernetes cluster. It is responsible for pulling images from container registries, running containers, allocating and isolating resources for containers, and managing the entire lifecycle of a container on a host. To understand this better, let's take a look at two key concepts: 1. **Container Runtime Interface (CRI):** It is a set of APIs that allows Kubernetes to interact with different container runtimes. It allows different container runtimes to be used interchangeably with Kubernetes. The CRI defines the API for creating, starting, stopping, and deleting containers, as well as for managing images and container networks. 2. **Open Container Initiative (OCI):** It is a set of standards for container formats and runtimes Kubernetes supports CRI-compatible container runtimes such as **containerd**, **CRI-O**, and other runtimes that implement the [**Container Runtime Interface** ](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md?ref=devopscube.com)**(CRI)**. 💡 If Docker Engine is used, it requires an external CRI adapter such as ****cri-dockerd** *So how does Kubernetes make use of the container runtime?* As we learned in the Kubelet section, the kubelet agent is responsible for interacting with the container runtime using CRI APIs to manage the lifecycle of a container. It also gets all the container information from the container runtime and provides it to the control plane. ## Kubernetes Cluster Addon Components Apart from the core components, the kubernetes cluster needs addon components to be fully operational. Choosing an addon depends on the project requirements and use cases. Following are some of the popular addon components that you might need on a cluster. 1. **CNI Plugin (Container Network Interface)** 2. **CoreDNS (For DNS server):** CoreDNS acts as a DNS server within the Kubernetes cluster. By enabling this addon, you can enable DNS-based service discovery. 3. **Metrics Server (For Resource Metrics):** This addon helps you collect performance data and resource usage of Nodes and pods in the cluster. 4. **Web UI (Kubernetes Dashboard):** This addon enables the Kubernetes dashboard to manage the object via web UI. 5. **CSI node plugins:** To configure storage Lets look at CNI plugin in detail. ### CNI Plugin First, you need to understand [**Container Networking Interface (CNI)**](https://www.cni.dev/?ref=devopscube.com) It is a plugin-based architecture with vendor-neutral [specifications](https://github.com/containernetworking/cni/blob/spec-v1.0.0/SPEC.md?ref=devopscube.com) and libraries for creating network interfaces for Containers. It is not specific to Kubernetes. With CNI container networking can be standardized across container orchestration tools like Kubernetes, Mesos, CloudFoundry, Podman, Docker, etc. When it comes to container networking, companies might have different requirements such as network isolation, security, encryption, etc. As container technology advanced, many network providers created CNI-based solutions for containers with a wide range of networking capabilities. You can call it CNI-Plugins This allows users to choose a networking solution that best fits their needs from different providers. How does the CNI Plugin work with Kubernetes? - The kube-controller-manager **assigns a pod CIDR** to each node. Every pod gets a unique IP address from this CIDR range. - When kubelet asks the container runtime to create a Pod, the **runtime calls the configured CNI plugin**. The CNI plugin then creates the Pod network interface, assigns an IP address, and connects the Pod to the cluster network. - The CNI plugin also **handles networking between pods**, whether they are on the same node or different nodes, typically using an overlay network. ![Kubernetes CNI Plugin workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-18-17.png) Click to view in HD Following are high-level functionalities provided by CNI plugins. 1. Pod Networking 2. Pod network security & isolation using Network Policies to control the traffic flow between pods and between namespaces. Some popular CNI plugins include: 1. Calico 2. Flannel 3. Cilium (Uses eBPF) 4. [Amazon VPC CNI](https://devopscube.com/secondary-network-eks-cluster/) (For AWS VPC) 5. Azure CNI (For Azure Virtual network)Kubernetes networking is a big topic and it differs based on the hosting platforms. ## Kubernetes Architecture FAQs ### What is the main purpose of the Kubernetes control plane? The control plane is responsible for maintaining the desired state of the cluster and the applications running on it. It consists of components such as the API server, etcd, Scheduler, and controller manager. ### What is the purpose of the worker nodes in a Kubernetes cluster? Worker nodes are the servers (either bare-metal or virtual) that run the container in the cluster. They are managed by the control plane and receive instructions from it on how to run the containers that are part of pods. ### How is communication between the control plane and worker nodes secured in Kubernetes? Communication between the control plane and worker nodes is secured using PKI certificates and communication between different components happens over TLS. This way, only trusted components can communicate with each other. ### What is the purpose of the etcd key-value store in Kubernetes? Etcd primarily stores the kubernetes objects, cluster information, node information, and configuration data of the cluster, such as the desired state of the applications running on the cluster. ### What happens to Kubernetes applications if the etcd goes down? While the running applications will not be affected if etcd experiences an outage. It will not be possible to create or update any objects without a functioning etcd ### Is kube-proxy still required? No. While it remains part of the core, most high-performance clusters now use eBPF (like Cilium) to handle networking more efficiently. ### What is L4 and L7 routing in Kubernetes? Kubernetes Service object uses IP and Port for the traffic routing that is knows as L4 routing and Gateway API uses HTTP details like path, host, etc so is the L7 routing. ## Conclusion Understanding **Kubernetes architecture** helps you with day-to-day Kubernetes implementation and operations. When implementing a [production-level cluster setup](https://devopscube.com/production-ready-kubernetes-cluster/), having the right knowledge of Kubernetes components will help you run and troubleshoot applications. Also, kubernetes is no longer just a "[container orchestration](https://devopscube.com/docker-container-clustering-tools/)" tool. It is the distributed operating system for the AI era. It is becoming the top platform choice for AI/[MLOps ](https://devopscube.com/devops-to-mlops/)workloads as its architecture supports features required for AI/MLOps workflows. In 2026, the architecture has evolved with features like i**n-place scaling**, **GPU-centric scheduling**, and **eBPF-powered networking** and more. Over to you! Hope this guide helps you in understanding the core Kubernetes better. If you have any doubts or suggestions, do drop a comment below. ### How to Learn Kubernetes (Beginner to Advanced Resources) URL: https://devopscube.com/learn-kubernetes-complete-roadmap/ Last updated: 2026-07-02T07:20:11.000Z **Learning Kubernetes** can seem overwhelming. It’s a complex container orchestration system that has a steep learning curve. But with the right roadmap and understanding of the foundational concepts, it’s something that any developer or ops person can learn. In this Kubernetes learning roadmap, I have added prerequisites and a complete learning path that covers basic to advanced Kubernetes concepts. I started my Kubernetes journey in 2014 when google cloud launched GKE service. And trust be, I learn new concepts and functionalities with every Kubernetes version release. So this guide is more of a roadmap I would give myself if I were to start learning Kubernetes today. So lets get started. ## Prerequisites To Learn Kubernetes Before jumping into learning Kubernetes, you need to have a fair amount of knowledge of some of the underlying technologies and concepts. 1. **Container**: Container is the basic building block of Kubernetes. The primary work of Kubernetes is to orchestrate containers. You need to learn all the container basics and have hands-on experience working on container tools like Docker or Podman. I would also suggest reading about [Open container initiative](https://opencontainers.org/?ref=devopscube.com) and Container Runtime Interface (CRI) 2. **Distributed system:** Learn about distributed system basics & their use cases in modern IT infrastructure. 3. **Authentication & Authorization**: A very basic concept in IT. However, engineers starting their careers tend to get confused. So please get a good understanding of learning from analogies. You will quite often see these terms in Kubernetes. 4. **Key Value Store**: It is a type of NoSQL Database. Understand just enough basics and their use cases. 5. **API:** Kubernetes is an API-driven system. So you need to have an understanding of RESTFUL APIs. Also, try to understand gRPC API. It's good to have knowledge. 6. **YAML**: YAML stands for *YAML Ain't Markup Language*. It is a data serialization language that can be used for data storage and configuration files. It's very easy to learn and from a Kubernetes standpoint, we will use it for configuration files. So understanding YAML syntax is very important. 7. **[Service Discovery](https://devopscube.com/service-discovery-explained/)**: It is one of the key areas of Kubernetes. You need to have basic knowledge of client-side and server-side service discovery. To put it simply, in client-side service discovery, the **request goes to a service registry** to get the endpoints available for backend services. In server-side service discovery, the r**equest goes to a load balancer** and the load balancer uses the service registry to get the ending of backend services. 8. **Networking Basis**: Networking is a key part of Kubernetes. To understand Kubernetes networking, you need to have a fair knowledge of the following topics. 1. CIDR Notation & Type of [IP Addresses](https://devopscube.com/ip-address-tutorial/) 2. L2, L3, L4 & L7 Layers (OSI Layers) 3. SSL/TLS: One way & Mutual TLS 4. Proxy 5. DNS 6. IPVS/IPTables/NFtables 7. Software Defined Networking (SDN) 8. Virtual Interfaces 9. Overlay networking 9. **Linux**: Although there is support for Windows, most of the Kubernetes implementations are based on Linux. Following are the key Linux concepts you should know. 1. IPTables 2. Filesystems 3. Mount points 4. Swap 5. Systemd 6. journalctl, syslog 7. SELinux 8. AppArmor ![Prerequisites To Learn Kubernetes](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/01-k8s-prerequites-1.png) Click to view in HD ## Learn Kubernetes Architecture Understanding Kubernetes architecture is not an easy task. The system has many moving parts that need to be understood in order for you to get a grip on what's happening beneath the surface. While learning architecture, you will come across the concepts we discuss in the prerequisites. As Kubernetes is a complex system, trying to understand the core architecture could be a little overwhelming for DevOps Engineers. As you get more hands-on experience, you will be able to understand the core architecture better. Here is my suggestion. Learn the **high-level architecture and key components** involved in Kubernetes. If you are not able to grasp the concept, either you can spend time and do more research on a specific topic or you can learn the concept while doing hands-on. It's your choice. Check out the [Kubernetes Architecture guide](https://devopscube.com/kubernetes-architecture-explained/) to learn about all the Kubernetes components in detail. Overall you need to learn the following. 1. **Control plane components:** Understand the role of each component like API server, etcd, Scheduler, and Controller manager. 2. **Worker node components**: Learn about Kube Proxy, Kubelet, Container Runtime 3. **Addon Components:** CoreDNS, Network plugins (Calico, weave, etc), Metric Server 4. **Cluster high availability:** Most organizations use managed Kubernetes services (GKE, EKS, AKS, etc). So the cloud provider takes care of the cluster's control plane's high availability. However, it is very important to learn the high availability concepts in scaling the cluster in multiple zones and regions. It will help you in real-time projects and devops interviews. 5. **Network Design**: While it is easy to set up a cluster in an open network without restrictions, it is not that easy in a corporate network. As a DevOps engineer, you should understand the Kubernetes network design and requirements so that you can **collaborate with the network team** better. For example, When I was working with kubernetes setup on Google Cloud, we used a CIDR pod range that was not routable in the corporate network. As a workaround, we had to deploy IP masquerading for the pod network. ****Note**: For DevOps interviews, ensure you have a very good understanding of Kubernetes architecture and how all the components interact with each other. ## $1000+ Free Cloud Credits to Deploy Clusters Deploying big clusters on the cloud could be expensive. So make use of the following cloud credits and learn to launch clusters **as if you would on a real-time project**. This will give you a sense of confidence in the process. All platforms offer managed k8s services. 1. [GKE](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) (Google Cloud - $300 free credits) 2. [EKS](https://devopscube.com/create-aws-eks-cluster-eksctl/) (AWS - $300 free POC credits) 3. [DO Kubernetes](https://devopscube.com/recommends/digital-ocean-sidebar/) (Digital Ocean - $200 free credits) 4. [Linode Kubernetes Engine](https://devopscube.com/recommends/linode-credits/) (Linode Cloud - $100 Free credits) 5. [Vultr Kubernetes Engine](https://devopscube.com/recommends/vultr-credits/) (Vultr Cloud - $250 Free Credits) Use one account at a time. Once the credits have expired. move to the next account. You need to keep a watch on your credits as well as expiry. Or else you could get charged. Also, check the terms and instance usage limits if any. Also, setting up servers on this platform is very easy and every cloud provider has extensive documentation to get started. ## Kubernetes Cluster Setup For [DevOps engineers](https://devopscube.com/become-devops-engineer/), it's important to understand every component and cluster configuration. While there are many options to deploy a Kubernetes cluster, It is always better to learn to deploy multi-node clusters from scratch. With multi-node clusters, you can learn about all the concepts like Cluster security, [High Availability](https://devopscube.com/kubernetes-high-availability/), Scaling, Networking, etc. It gives you the **feeling of working on a real-world project**. It will also help you in interviews and you can be confident about production-level cluster configurations. Following are my cluster setup suggestions. 1. [**Kubernetes the Hard Way:**](https://github.com/techiescamp/kubernetes-projects/tree/main/01-kubernetes-the-hard-way-aws?ref=devopscube.com) I would suggest you start with Kubernetes the Hard Way setup. It helps you understand all the configurations involved in bootstrapping a kubernetes cluster. If you want to **work on production clusters**, this lab will help you a lot. Also, it is ok if you are not able to setup the full fledged cluster. Atleast you will learn about all the components that make up the cluster. 2. [**Kubeadm Cluster Setup**](https://devopscube.com/setup-kubernetes-cluster-kubeadm/): Learning kubeadm cluster setup helps you in [Kubernetes certification](https://devopscube.com/best-kubernetes-certifications/) preparation. Also, it helps you automate Kubernetes cluster setup with best practices. 3. [**Minikube:**](https://devopscube.com/kubernetes-minikube-tutorial/)If you want to have a minimal development cluster setup, minikube is the best option. 4. [**Kind:**](https://kind.sigs.k8s.io/?ref=devopscube.com) Kind is another local development Kubernetes cluster setup. 5. [**Vagrant Automated Kubernetes**](https://github.com/techiescamp/vagrant-kubeadm-kubernetes?ref=devopscube.com)**:** If you prefer to have a multi-VM-based local Kubernetes cluster setup, you can try the automated vagrant setup that uses Kubeadm to bootstrap the cluster. ## Learn About Cluster Configurations Once you have a working cluster, you should learn about the **key cluster configurations**. This knowledge will be particularly helpful when working in a self-hosted Kubernetes setup. Even if you use a managed Kubernetes cluster for your project, there may be certain cluster configurations that you need to modify. For example, if you set up a cluster in a hybrid network, you may need to configure it with an **on-premises private DNS** server for private DNS resolution. This can be done via CoreDNS configuration. **Refer to the** [Kubernetes Cluster configurations](https://devopscube.com/kubernetes-cluster-configurations/) guide for more details. Also, having a solid understanding of cluster configurations will help you with Kubernetes certifications (CKA & CKS) where you need to troubleshoot cluster misconfiguration and issues. ## Understand Kubeconfig File **`Kubeconfig`** file is a YAML file that contains all the cluster information and credentials to connect to the cluster. As a Devops Engineer, You should learn to connect to kubernetes clusters in different ways using the Kubeconfig file. Because you will be responsible for setting up cluster **authentication for CI/CD systems**, providing cluster access to developers, etc. So spend some time, understanding the Kubeconfig file structure and associated parameters. Check out the [complete Kubeconfig file guide](https://devopscube.com/kubernetes-kubeconfig-file/) to learn everything about the Kubeconfig file. ## Understand Kubernetes Objects And Resources You will quite often come across the names "**Kubernetes Object**" and "**Kubernetes Resource**" First, you need to Understand the difference between an object and a resource in kubernetes. To put it simply, anything a **user creates and persists in Kubernetes is an object**. For example, a namespace, pod, Deployment configmap, Secret, etc. Before creating an object, you represent it in a YAML or JSON format. It is called an **Object Specification (Spec)**. You declare the desired state of the object on the Object Spec. Once the object is created, you can retrieve its details from the Kubernetes API using Kubectl or client libraries. As we discussed earlier in the prerequisite section, everything in Kubernetes is an API. To create different object types, there are **API endpoints provided by the Kubernetes API server**. Those **object-specific api-endpoints are called resources**. For example, an endpoint to create a pod is called a **pod resource**. So when you try to create a Kubernetes Object using Kubectl, it converts the YAML spec to JSON format and sends it to the Pod resource (Pod API endpoint). You can refer to the [Kubernetes objects vs resource](https://devopscube.com/kubernetes-objects-resources/) guide for more details. ## Learn About Pod & Associated Resources Once you have an understanding of Kubernetes Objects and resources, you can start with a native Kubernetes object called Pod. A pod is a basic building block of Kubernetes. You should learn all the **Pod concepts** and their associated objects like **Service, Ingress, Persistent Volume, Configmap, and Secret**. Once you know everything about a pod, it is very easy to learn other pod-dependent objects like deployments, Daemonset, etc. First, learn about the Pod Resource Definition (YAML). A typical Pod YAML contains the following high-level constructs. 1. Kind 2. Metadata 3. Annotations 4. Labels 5. Selectors Refer to [Kubernetes Pod Explained](https://devopscube.com/kubernetes-pod/) blog to learn all the basics about Pod. Once you have a basic understanding of the above, move on to hands-on learning. These concepts will make more sense when you do hands-on. Following are the **hands-on tasks** to learn about Pod and its associated objects. 1. Deploy a pod 2. Deploy pod on the specific worker node 3. Add service to pod 4. Expose the pod Service using Nodeport 5. Expose the Pod Service using Ingress 6. Setup Pod resources & limits 7. Setup Pod with startup, liveness, and readiness probes. 8. Add Persistent Volume to the pod. 9. Attach configmap to pod 10. Add Secret to pod 11. multi-container pods (sidecar container pattern) 12. [Init containers](https://devopscube.com/kubernetes-init-containers/) 13. Ephemeral containers 14. Static Pods 15. Learn to troubleshoot Pods Few advanced pod scheduling concepts. 1. Pod Preemption & Priority 2. Pod Disruption Budget 3. Pod Placement Using a Node Selector 4. Pod Affinity and Anti-affinity 5. Container Life Cycle Hooks ## Learn Pod Dependent Objects Now that you have a better understanding of Pod and independent kubernetes resources, you can start learning about objects that are dependent on the Pod object. While learning this, you will come across concepts like HPA (Horizontal Pod Autoscaling) and VPA (Verification Pod Autoscaling) 1. Replicaset 2. [Deployment](https://devopscube.com/kubernetes-deployment-tutorial/) 3. [Daemonsets](https://devopscube.com/kubernetes-daemonset/) 4. [Statefulset](https://devopscube.com/deploy-postgresql-statefulset/) 5. [Jobs & Cronjobs](https://devopscube.com/create-kubernetes-jobs-cron-jobs/) ## Learn Ingress & Ingress Controllers To expose applications to the outside world or end users, kubernetes has a native object called ingress. Many engineers get confused with Ingress due to less knowledge of Ingress controllers. Ensure you go through the concept of Ingress and Ingress controllers and understand it correctly. Because it is the base of exposing applications to the outside world. You can start with the following comprehensive guides. 1. [Kubernetes Ingress Explained](https://devopscube.com/kubernetes-ingress-tutorial/) 2. [Setting up Nginx Ingress Controller](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/) ## Learn Gateway API Once you have good understanding on ingress, look in to Gateway API. It offers very good advanced features over Ingress. You can start with the following guide. 1. [Gateway API Tutorial](https://devopscube.com/kubernetes-gateway-api/) 2. [Migrate Ingress to Gateway API](https://devopscube.com/migrate-kubernetes-ingress-to-gateway-api/) ## Learn End-to-end Microservices Application Deployment on Kubernetes Once you understand the basics of these objects, you can try deploying an end-to-end microservices application on Kubernetes. Start with simple use cases and gradually increase complexity. I would suggest you get a domain name and try setting up a microservice application from scratch and host it on your domain. You don't need to develop an application for this. Choose any open-source microservice-based application and deploy it. My suggestion is to choose the open-source [pet clinic microservice application](https://github.com/spring-petclinic/spring-petclinic-microservices?ref=devopscube.com) based on Spring Boot. Following are the high-level tasks. 1. [Build Docker images](https://devopscube.com/build-docker-image/) for all the services. Ensure you optimize the Dockerfile to [reduce the Docker Image size](https://devopscube.com/reduce-docker-image-size/). 2. Create manifests for all the services. (Deployment, Statefulset, Services, Configmaps, Secrets, etc). Try to add all the supported parameters for each object type. 3. Expose the front end with service type ClusterIp 4. Deploy Nginx Ingress controller and expose it with service type Loadbalancer. 5. Create an Ingress object with the front-end as the backend service. 6. Map the load balancer IP to the domain name. 7. Create an ingress object with a DNS name with the backend as a front-end service name. 8. Validate the application. ## Learn About Securing Kubernetes Cluster Security is a key aspect of Kubernetes. There are many ways to implement security best practices in Kubernetes starting from building a secure container image. Following the native ways of implementing security in kubernetes. 1. Service account 2. Pod Security Context 3. [Seccomp](https://devopscube.com/seccomp-in-kubernetes/) & [AppArmor](https://devopscube.com/linux-apparmor/) 4. Role Based Access Control (RBAC) 5. Attribute-based access control (ABAC) 6. Network Policies The following are the open-source tools you need to look at. 1. Open Policy Agent 2. Kyverno 3. [Kube-bench](https://devopscube.com/kube-bench-guide/) 4. Kube-hunter 5. Falco ## Learn About Kubernetes Configuration Management Tools Now that you have a good understanding of all Kubernetes objects and deploying applications on Kubernetes, you can start learning about Kubernetes configuration management tools. When you start working on a real-time project in an organization, you will see the usage of configuration management tools to deploy applications on Kubernetes. Because in organizations, there are different environments like dev, stage, pre-prod, and production. You cannot create individual YAML files for each environment and manage them manually. So you need a system to manage Kubernetes YAML configurations effectively. Following are the popular and widely adopted Kubernetes tools to manage YAML. 1. [Helm](https://devopscube.com/install-configure-helm-kubernetes/) (Templating Engine) 2. [Kuztomize](https://devopscube.com/kustomize-tutorial/) (Overlay Engine) ## Learn About Kubernetes Operator Pattern Kubernetes Operators is an advanced concept. To understand operators, first, you need to learn the following Kubernetes concepts. 1. Custom resource definitions 2. Admission controllers 3. Validating and mutating Webhooks To get started with operators, you can try setting the following operators on Kubernetes. 1. [Prometheus Operator](https://devopscube.com/setup-prometheus-operator/) 2. [MySQL Operator](https://devopscube.com/install-mysql-operator-on-kubernetes/) If you are a Go developer or you want to learn to extend/customize kubernetes, I would suggest you **create your own operator** using Golang. ## Learn Important Kubernetes Configurations While learning kubernetes, you might use a cluster in open network connectivity. So most of the tasks get executed without any issues. However, this is not the case with clusters set up on corporate networks. So, here are some custom cluster configurations you should be aware of 1. Custom DNS server 2. Custom image registry 3. Shipping logs to external logging systems 4. Kubernetes [OpenID Connect](https://devopscube.com/github-actions-oidc-aws/) 5. Segregating & securing Nodes for PCI & PII Workloads ## Learn About Kubernetes AI/ML Features Kubernetes is gaining a lot of traction in AI/ML space. There are many Kubernetes features and associated tooling being developed to support AI/ML workloads. Also, Kubernetes is being used my many organizations for their MLOPS lifecycle. To get started refer to the following guides. 1. [Kubernetes Built-in AI/ML features](https://devopscube.com/kubernetes-ai-ml-features/) 2. [Setup GPU Operator on Kubernetes](https://devopscube.com/setup-gpu-operator-kubernetes/) ## Learn Kubernetes Best Practices Following are the resources that might help and add value to the Kubernetes learning process in terms of best practices. 1. **12 Factor Apps**: It is a methodology that talks about how to code, deploy and maintain modern microservices-based applications. Since Kubernetes is a cloud-native microservices platform, it is a must-know concept for DevOps engineers. So when you work on a real-time kubernetes project, you can implement these 12-factor principles. 2. **Kubernetes Failure Stories**: Kubernetes failure stories is a website that has a list of articles that talk about failures in Kubernetes implementation. If you read those stories, you can avoid those mistakes in your kubernetes implementation. 3. **Case Studies From Organizations:** Spend time on use cases published by organizations on Kubernetes usage and scaling. You can learn a lot from them. Following are some of the case studies that are worth reading. 1. [Scheduling 300,000 Kubernetes Pods in Production Daily](https://www.youtube.com/watch?v=wjy35HfIP%5Fk&ref=devopscube.com) 2. [Scaling Kubernetes to 7,500 Nodes](https://openai.com/blog/scaling-kubernetes-to-7500-nodes/?ref=devopscube.com) ## Learn Service Mesh Once you have good understanding of Kubernetes native functionalities, you can start learning [service mesh](https://devopscube.com/service-mesh-tools/) based implementations. You can get started with Istio service mesh. Here is a detailed [Istio Setup Guide](https://devopscube.com/setup-istio-on-kubernetes/). Also look at the [Istio ambient mesh setup](https://devopscube.com/setup-istio-ambient-mode/) that does not require sidecar proxies. ## Learn GitOps & Progressive Delivery Most organiztions that use Kubernetes follow GitOps methodology for deploying applications. You can get started with the popular GitOps tool [Argo CD](https://devopscube.com/argo-cd-architecture/) Next you need to learn concepts like Canary deployments or Blue/Green rollouts. You can implement these deployment strategies using [Argo Rollouts](https://argoproj.github.io/argo-rollouts/?ref=devopscube.com) or Flagger. ## Understand Kubernetes Cost Management (FinOps) FinOps is the one critical piece every engineer miss to learn. Nowadays with cloud spend being a top priority for organizations, learning FinOps for Kubernetes is non-negotiable. Tools like[Kube-cost](https://www.kubecost.com/?ref=devopscube.com) will help you understand the dollar value of CPU/Memory requests of k8s resources. I strongly suggest you to learn FinOps fundamentals and implement the cost opmtization strategies in your project or portfolio project to stand out. ## What are the Best Resources to Learn Kubernetes? Following are the list of the best online resources to learn Kubernetes practically. ### 1\. The official Kubernetes Basics Tutorial The official Kubernetes website has browser-based hands-on [kubernetes basic tutorials](https://kubernetes.io/docs/tutorials/?ref=devopscube.com) powered by Katacoda scenarios. It covers the following. 1. Kubernetes basics 2. Kubernetes configurations 3. Stateless Application deployment 4. Stateful application deployment 5. Kubernetes services 6. Kubernetes Security ![learn kubernetes from official Kubernetes website](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-11-17.png) Click to view in HD You can also look at official [Kubernetes tasks](https://kubernetes.io/docs/tasks/?ref=devopscube.com) to learn to implement Kubernetes concepts practically. It will also help you prepare for Kubernetes certifications. ### 2\. DevOpsCube Kubernetes Tutorials DevOpsCube has 35+ comprehensive [Kubernetes hands-on tutorials ](https://devopscube.com/kubernetes-tutorials-beginners/)for beginners to advanced users. You will learn everything from Kubernetes architecture, Cluster setup, Deployments, best practices, package management, secret management, monitoring, logging, etc. 📌 ****Note:** If you are looking for an organized way to learn Kubernetes and prepare for the CKA exam at the same time, you can check out our [Complete CKA course](https://courses.devopscube.com/p/certified-kubernetes-administrator-course?ref=devopscube.com) (use code ****FLASH40** to get 40% OFF today). We explain concepts using illustrations, hands-on exercises, real-world examples, and provide dedicated discord based user support. ### 3\. KillerCoda Interactive Tutorials If you want to learn Kubernetes from the comfort of your browser, [Killercoda](https://killercoda.com/?ref=devopscube.com) is a great option. It offers scenario-based learning playgrounds on the browser. ![Learn Kubernetes from Killercoda playgrounds](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-12-13.png) Click to view in HD ## Kubernetes Learning GitHub Repository The full Kubernetes learning guide is added to the [Kubernetes learning path GitHub repo](https://github.com/techiescamp/kubernetes-learning-path?ref=devopscube.com) with links to all the free useful resources. This repo is maintained and contributed by community members and it has the following. 1. Structured Kubernetes learning path 2. Resources to deploy Kubernetes cluster for free. 3. Kubernetes free learning resources 4. Kubernetes hands-on tutorials. 5. Kubernetes production deployment case studies ## What is Best Way to Learn Kubernetes as a Beginner? One question we often get from the DevOps community is, *what is the best way to learn Kubernetes as a complete beginner?* My short answer is, *doing hands on project based learning.* Here are some of the best ways to learn Kubernetes. You may fall under any of the following categories. 1. **Self Learning:** If you are a self-learner, you could start with the roadmap and for each topic do further research and learn from blogs, official documentation, free youtube tutorials, and Kubecon Videos. 2. **Guided Learning (Text):** If you like reading guided materials, the best place to learn kubernetes is to start with a beginner's kubernetes book. My suggestion would be "Kubernetes Up and Running" followed by Kubernetes in Action. You could also try [DevOpsCube Kubernetes Course](https://courses.devopscube.com/l/pdp/certified-kubernetes-administrator-course?ref=devopscube.com) 3. **Guided Learning (Videos):** If you want to learn Kubernetes by watching guided Video courses, you could start with [KodeKloud](https://devopscube.com/recommends/kodekloud/) Kubernetes courses. 4. **The Certification Way:** Another way to learn Kubernetes is to prepare for [CKA certification](https://devopscube.com/cka-exam-study-guide/). This way, you not only learn Kubernetes but also have a certification to boost your career. If you choose this path, it's important not to use exam dumps. Instead, learn all the concepts properly and take the exam. You could save money on certification using the [Kubernetes Certification coupon](https://devopscube.com/kubernetes-certification-coupon/). ## Read Real-World Kubernetes Case Studies (Very Important) When I spoke to the DevOps community, I found that a common issue was the **lack of real-world experience** with Kubernetes. If you don't have an active Kubernetes project in your organization, you can **refer to case studies** and learning materials published by organizations that use Kubernetes. This will also help you in Kubernetes interviews. Here are some good real-world Kubernetes case studies that can enhance your Kubernetes knowledge: 1. [List of Kubernetes User Case Studies](https://kubernetes.io/case-studies/?ref=devopscube.com)Official Case Studies 2. [How OpenAI Scaled Kubernetes to 7,500 Nodes](https://openai.com/blog/scaling-kubernetes-to-7500-nodes/?ref=devopscube.com)Blog 3. [Testing 500 Pods Per Node](https://cloud.redhat.com/blog/500%5Fpods%5Fper%5Fnode?ref=devopscube.com)Blog 4. [Dynamic Kubernetes Cluster Scaling at Airbnb](https://medium.com/airbnb-engineering/dynamic-kubernetes-cluster-scaling-at-airbnb-d79ae3afa132?ref=devopscube.com)Blog 5. [Scaling 100 to 10,000 pods on Amazon EKS](https://aws.amazon.com/blogs/containers/scale-from-100-to-10000-pods-on-amazon-eks?ref=devopscube.com)Blog ## What's New in the Latest Kubernetes Release While learning Kubernetes, it is better to keep track of the latest Kubernetes releases and new features. I will keep updating the latest release information and feature list. | Latest Kubernetes Release | Details | | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Kubernetes v1.32 (released on December 11, 2024) | Penelope | | Key Features | 1\. Improves how Kubernetes allocates specialized hardware resources like GPUs and network adapters, making it more efficient for tasks such as machine learning2\. Enhances the reliability of the kubelet (the node agent) by using systemd's watchdog capability to monitor its health and restart it if necessary3\. Provides clearer messages when there's an issue pulling container images, helping users identify and fix problems more easily4\. Enables dynamic sizing of memory-backed storage volumes based on pod resource limits, improving resource utilization | ## Conclusion In this learning path, I have covered all the important concepts you need to master Kubernetes. I will keep adding new features when the new Kubernetes versions get released. Also, learning a new technical skill takes hours of practice. You will certainly gain a good understanding of Kubernetes in the learning process, but the truth is that you never stop learning. ### From DevOps to MLOps (A Practical Guide for 2026) URL: https://devopscube.com/devops-to-mlops/ Last updated: 2026-09-30T06:56:12.000Z In this guide, we will look at what MLOps means for DevOps engineers and how they can use their existing skill sets to become an MLOps Engineer. I have been talking about MLOPS for quite some years with the DevOps community and never got a chance to actually publish a blog. With this post, I am trying to fill that gap by shedding light on How to become a MLOps **engineer** and how you can approach learning as a DevOps engineer to get opportunities to work on MLOps-related projects. So if you are ready to go “all in” with MLOPS, this guide is for you. ⚠️ ****Note:** This is going to be a series of posts. So if you don’t understand some terminologies, don’t worry! I will be covering those basics in the upcoming blogs. Let’s dive right in. ## My MLOPS Experience In 2020, I worked on an ML project for an international sports brand, setting up the infrastructure from development to production. At first, I thought it was just another automation task, something I had done many times before. But everything changed when I started attending ML team meetings. I had no clue what they were talking about. The discussions felt like a different language. Models, Feature engineering, training, hyperparameters etc. I was completely lost. That is when I realized this was more than just setting up pipelines. It was like building CI/CD for a Java app without understanding how Java development works. If you don’t know how the code is built, optimized, and deployed, how can you design the right workflows? The same applies to ML. I realized that to do my job well, I **needed to understand ML workflow** itself. So, I spent the next couple of months learning, picking up the basics, understanding the workflows, and getting familiar with the process. (*I wish LLMs had existed back then. It would have made the learning much faster 😄*) I could finally follow discussions, collaborate better, and build infrastructure that actually made sense for the ML team. ⚠️ ****Lesson:** If you want to manage ML infrastructure, you first need to understand ML development workflow. Today, with LLMs and GenAI becoming mainstream, these core concepts matter even more. The infrastructure needs are significantly larger, but the core understanding remains the same. ## DevOps to MLOPS First of all, there is no such thing as switching careers from DevOps to MLOps. It is not a Career Switch. **MLOps is an extension of DevOps**, not a separate career path. Anyone who says otherwise likely does not fully understand how MLOps works. Because DevOps engineers are already part of an ML project, which includes other teams like Data Science, Data Engineers, ML Developers, etc. Also, you will be doing similar DevOps work, like setting up CI/CD, writing infrastructure as code, Python scripts, design pipelines to orchestrate workflows etc. The **main difference is in the tools**, platforms, technologies, workflows, and how ML pipelines are built and managed. In short, you can say you are a DevOps engineer with expertise in managing Machine Learning operations. Because, at the core, you will still be following DevOps principles, which focus on collaborating with different teams efficiently. ## So what is MLOPS really? MLOps (Machine Learning Operations) is a practice followed to streamline and automate the lifecycle of machine learning models, from development to deployment and maintenance. (**MDLC** \- Machine Learning Development Lifecycle.) MLOPS = DevOps + Machine learning + Data Engineering If you follow DevOps culture and practices for ML projects, you can call it as MLOPS ![MLOPS = DevOps + Machine learning + Data Engineering](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-69.png) Now the key question *How is MLOPS different from usual DevOps workflows?* MLOps is different from the usual DevOps workflows, **just like machine learning is different from traditional software development.** For example, In SDLC we manage the lifecycle of code. MDLC adds two more dimensions. ie, data and models. It makes the system more complex to deploy and maintain. ![Image explaining SDLS vs MDLC](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-117.png) So, in MLOps, you need to track three components: **code, data, and models** (while in traditional DevOps, you only track code). Additionally, MLOps introduces the following. 1. **Data versioning:** To track changes in datasets using tools like DVC ([Data Version Control](https://devopscube.com/dvc-tutorial-for-beginners/)) or LakeFS 2. **Experiment tracking:** To log hyperparameters, metrics, and model versions for each training run 3. **Model registry:** To version and manage models separately from application artifacts 4. **Continuous Training (CT):** Beyond CI/CD, models need regular retraining as data changes The following image illustrates the high level MLOPS workflow on how a machine learning model is built, deployed, and monitored in production. ![MLOPS Phases explained](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/MLOPS.png) 💡 Google started using DevOps philosophies for Machine Learning in 2018\. They showed how to automate and manage ML models just like software. ## Why MLOPS is Important? We want data scientists and data engineers to do what they do best and focus on building and deploying models with ease. This can be achieved only if we follow MLOPS practices for the ML application lifecycle. You might have the best Data Scientists and Data engineerings in the team. But if you do not have a **well automated Lifecycle for ML development and deployment**, it is going to be hard for everyone to deliver the project. If you look at a typical ML project, following are the four key teams involved. 1. Data Engineering 2. Data Scientists 3. ML Engineering and 4. DevOps Only if the above teams collaborate and work together, we can have a well automated ML Lifecycle implementation. So probably by now, you have got a small idea of what MLOPS really is. ## How to Become a MLOPS Engineer? 💡 ****Myth:** You need to be a Data Scientist to do MLOps ****Fact:** MLOps is mostly engineering/infrastructure and less data science awareness. DevOps engineers **do not** need to know how to build ML models or understand complex ML algorithms. But for a DevOps engineer to efficiently collaborate, build, and maintain ML infrastructure, he/she should have an understanding of the following: 1. **Understand Data Pipelines:** ML starts with data. Data from various sources go through collection, cleaning, transformation etc to be ready for ML. So you need tounderstand how dataset is prepared for ML development using ETL pipelines. 2. **Understanding basic ML terminology and concepts:** For example, ML model training, feature engineering, inference, hyperparameters, what model artifacts are, etc. 3. **Understanding of ML Workflow :** How ML experiments work, why models need retraining, what model drift means, etc. 4. **ML Infrastructure Requirements:** Computing resource needs for training, storage requirements for datasets, model serving patterns, GPU vs CPU requirements. 5. **ML-specific monitoring:** Understanding data drift, model performance degradation, prediction latency, and feature distribution changes (different from traditional application monitoring). 💡 For example, a fraud detection model trained on 2023 data might start performing poorly in 2024 as fraudsters change tactics. That is model drift Once you have a good understanding of the above-mentioned ML basics, you will be able to have **effective conversations** with data scientists, design appropriate infrastructure, set up proper monitoring, developer-centric workflows, CI/CD pipelines, etc., as you would normally do in a DevOps project. The following image illustrates the skill mapping from DevOps to MLOps. ![Diagram mapping DevOps skills like CI/CD and Kubernetes to MLOps tasks like Continuous Training and Model Serving](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-68.png) ## Skills Required for MLOPS As a DevOps engineer, you are already familiar with the following tools. Today, these are **mandatory** skills. - [Python fundamentals](https://devopscube.com/python-for-devops/) - [Docker](https://devopscube.com/what-is-docker/) - [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) - [IaC tools](https://devopscube.com/devops-tools-for-infrastructure-automation/) like Terraform - Experience with cloud platforms (AWS, GCP, Azure) - [CI/CD tools](https://devopscube.com/learning-ci-cd-tools/) like Jenkins, GitHub Actions, etc. - Monitoring tools like [Prometheus](https://devopscube.com/prometheus-architecture/), [Grafana](https://devopscube.com/grafana-loki-architecture/), etc. - FastAPI, Flask etc. The skills listed above are **general DevOps skills and technologies**. You need to have solid knowledge about them. MLOps builds on those strong foundations. So in addition to the above mentioned [DevOps tools](https://devopscube.com/best-devops-tools/) skillsets, for MLOps you also need to learn the following tools and frameworks to work with **data and AI/ML related workflows** (Enterprise-grade ML systems). - [DVC - Data version control](https://devopscube.com/dvc-tutorial-for-beginners/) - [Airflow](https://devopscube.com/apache-airflow-on-kubernetes/) (Data pipeline orchestration) - [Kubeflow Pipelines](https://devopscube.com/setup-kubeflow-pipelines-kubernetes/) (End-to-end ML pipelines on Kubernetes) - [Kubeflow Trainer](https://devopscube.com/kubeflow-trainer/) (Distributed ML training on Kubernetes) - [MLflow](https://devopscube.com/mlflow-tutorial/) (Experiment tracking, model registry) - [Feast Feature store](https://devopscube.com/setup-feature-store-feast-on-kubernetes/) (For centralized feature management) - [KServe](https://devopscube.com/deploy-ml-model-kubernetes-kserve/) (model serving) - [Evidently AI](https://github.com/evidentlyai/evidently?ref=devopscube.com) (ML observability & monitoring) - [Ray](https://github.com/ray-project/ray?ref=devopscube.com) (For distributed training and scalable model serving) ## Getting Started With MLOps Whenever I talk about MLOps, the most common question I get is, ***Do we need GPU-based clusters to learn MLOps?*** The short answer is **no**. You do not need a GPU to learn MLOps. For learning and testing, CPUs are more than enough to deploy sample models. You can start by building simple models like logistic regression or decision trees. Once you have a model, you can practice the full MLOps lifecycle using tools like **Kubeflow** and **MLflow** which the includes the following. - Packaging the model - Deploying the model - Monitoring model performance - Automating ML pipelines To do this, you will still need a decent Kubernetes cluster with **enough CPU and memory**, because tools like Kubeflow and MLflow do consume a fair amount of resources. (e.g., a 3-node spot instance k8s cluster with 4 CPU cores and 8GB RAM) This approach helps you learn the workflow without worrying about expensive hardware. 💡 Running CPU-based experiments can cost $50-100/month on cloud platforms, while GPU instances can easily run $500+/month ## GPU Workloads on Kubernetes Most MLOps workloads do not require GPUs. It is required only for workloads that needs parallel computation. For example. Classical ML models such as linear regression, XGBoost or time series Models do not require GPU's However, deep learning models and LLMs need GPUs for training and high-performance inference. Because of this, a typical enterprise MLOps platform supports both CPU and GPU workloads. That is the reason, as an MLOps engineer, you should understand how Kubernetes schedules and manages GPU resources. Once you learned the MLOps fundamentals, first understand the following. 1. CPU vs GPU 2. Why is GPUs required 3. Differnt types of ML workloads that requires GPUs. Next, move on to learn how to set up [GPU-based Kubernetes clusters](https://devopscube.com/setup-gpu-operator-kubernetes/) and deploy workloads that need GPU access. This includes using [Kubernetes device plugins](https://devopscube.com/kubernetes-ai-ml-features/#kubernetes-device-plugins-stable) and features like [Dynamic Resource Allocation (DRA)](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/?ref=devopscube.com) to manage GPUs efficiently. 💡 The reason you need to learn about GPU is because, companies look for engineers who understand GPU-aware scheduling, scaling and optmization. ## MLOps Engineer FAQ's The following are some frequently asked questions about MLOps engineers. ### What exactly does an MLOps engineer do? As we discussed in this blog post, the key responsibility of an MLOps engineer is to take a machine learning model into production. It includes setting up pipelines for training, testing, deploying, monitoring, and retraining models. Most importantly, they collaborate with Data scientists, data engineers, and other cross-functional teams. ### Do MLOps engineers build machine learning models? No. However, it is important for MLOps engineers to understand the foundations of the ML development workflow and its associated concepts. It helps them collaborate better with Data science teams and understand their requirements. ### What do companies look for in an MLOps engineer? Most companies look for expertise in managing traditional models, foundation models, and operating LLM services on cloud platforms. Here is the screenshot of an MLOps engineer job description. It clearly mentions LLM inference, vLLM, building inference APIs, GPU-aware scaling, CI/CD for models, GPU utilization, token optmization etc. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-81.png) Here is another job description for an MLOps engineer for traditional model deployment and management. It clearly specifies collaboration with Data Scientists and Data Engineers, ML pipelines, model tracking, etc. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-82.png) If you want to get more ideas about the current MLOps job requirements, the best way is to go through MLOps job descriptions. Learn and prepare for the interviews accordingly. ### What do I learn after MLOps? After MLOps, you should move on to LLMOps. Most of what you learn in MLOps will lay a strong foundation for getting started with LLMOps. In fact, you will find that there are overlapping concepts. [LLMOps stack](https://devopscube.com/open-source-llmops-tools/) then builds on this foundation with concepts specific to large language models, such as [embeddings](https://devopscube.com/what-are-embeddings-in-ai/), [vector databases](https://devopscube.com/vector-database-explained/), RAG, prompt management, inference optimization, and evaluation. ### Is traditional MLOps dead? One question I usually get is: *Is traditional MLOps for classical ML models still worth learning?* Meaning learning tools like MLflow, Kubeflow, feature stores, model registry, KServe, monitoring, retraining, etc.) My answer is yes! Although many organizations are expanding their AI platforms to include foundation models and generative AI. Many use cases still use traditional ML. For example, recommendation systems, fraud detection, etc. Also, the tools you learn in MLOps are evolving to support both classic ML and modern LLMs. For example, Kubeflow and MLflow now primarily support GenAI workloads. So whatever you learn lays the foundation for modern hybrid MLOps. Also, as a DevOps engineer, you learn traditional ML concepts and apply them at the infrastructure layer rather than developing ML algorithms. So even if the industry is moving towards 100% foundation models and Gen AI, your learning would still be relevant. Don't take my word for it! Go through MLOps job profiles, and you will realize that most MLOps tools you learn will be part of the job description. ### Which is the best AI/ML certification? Are certifications a great way to learn AI/ML technologies? If you are interested in certifications, check out my detailed guide on [AI/ML Certifications](https://devopscube.com/best-ai-ml-certifications/), which lists all the relevant certifications for DevOps and platform engineers. ## Your First MLOps Challenge Ready to get hands-on? Here is a practical exercise to get started. 1. Install MLflow locally 2. Train a simple model (or use a pre-trained one) 3. Log it to MLflow's model registry 4. Serve it via MLflow's built-in serving API 5. Make a prediction request using curl This 30-minute exercise will give you a feel for model packaging, versioning, and serving. The core of MLOps workflows. I will cover this in detail in a separate blog post. ## Conclusion This is my first blog in the MLOps series. As many of you may know, the MLOps space is growing very fast, with new open-source tools and continuous improvements in ML models. In the upcoming MLOps blogs, we will cover core ML concepts and provide hands-on guides to help you understand the ML development workflow in detail. Overall, if you can commit some time, you can learn all the core MLOps concepts without much difficulty. Over to you. Are you planning to get started with MLOps? What is your current understanding of MLOps? Do you think MLOps feels like an extension of your existing DevOps work? Share your thoughts in the comments below. ### Set Up Kubeflow Pipelines on Kubernetes: Step-By-Step Guide URL: https://devopscube.com/setup-kubeflow-pipelines-kubernetes/ Last updated: 2026-09-07T15:17:22.000Z [Kubeflow](https://www.kubeflow.org/?ref=devopscube.com) project is a complete stack that comes with different tools for different use cases like Data engineering, [ML model training](https://devopscube.com/kubeflow-trainer/), serving, monitoring and managing GenAI application lifecycle. In this guide will focus on setting up Kubeflow Pipelines(KFP) standalone in a Kubernetes cluster. 💡 ****Important Note:** If you want to understand the complete architecture and core concepts of Kubeflow Pipelines, read our [Kubeflow Pipelines](https://devopscube.com/kubeflow-pipelines/) guide first. At the end of this guide, you will learn the following. - Setting up Kubeflow Pipelines - Create and trigger a Kubeflow Pipelines run using Kubeflow SDK. Let get started. ## Setup Prerequisites Below are the prerequisites for this guide. - [Kubernetes](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) cluster with dynamic PV provisioner - [Kubectl](https://devopscube.com/kubectl-aliases/) - [Kustomize](https://devopscube.com/kustomize-tutorial/) 💡 We deployed and tested this on an AWS EKS cluster with three nodes of instance type t3.large. ## Fork and Clone Repository We have pushed every code file we are going to use in this guide into our GitHub repository. Fork and clone our [repository](https://github.com/techiescamp/mlops-for-devops.git?ref=devopscube.com) to get it. ```bash git clone https://github.com/techiescamp/mlops-for-devops.git cd mlops-for-devops ``` You will see the following folder structure of Kubeflow Pipelines. ```bash . ├── phase-2-enterprise-setup │ └── kubeflow-pipeline │ └── components │ │ ├── evaluate.py │ │ ├── preprocess.py │ │ └── train.py │ ├── config.py │ └── pipeline.py └── platform-tools └── kubeflow-pipeline └──kustomization.yaml ``` In this, - `phase-2-enterprise-setup/kubeflow-pipeline` contains the Python code (DAG) files. - `platform-tools/kubeflow-pipeline` contains the Kustomize patch file. ## Steps to Set up Kubeflow Pipeline To deploy Kubeflow Pipeline, we will be using Kustomize, so make sure you have Kustomize installed before starting this section. Also, we will be removing the cache-deployer pod and using [Cert Manager](https://devopscube.com/nginx-ingress-with-cert-manager/) to create and manage TLS certificates for KFP. Because the cache-deployer requests the Kubernetes CSR API to generate TLS certificates. But, in managed services like [AWS EKS](https://devopscube.com/create-aws-eks-cluster-eksctl/) and Azure AKS, there are strict security rules to approve CSR requests only from Kubelet. Since EKS denies it, the Cache-deployer keeps crashing, and this causes the cache-server to crash. To prevent this, you have to disable cache-deployer and use cert-manager to create and manage certificates. ### Step 1: Install Cert Manager Lets start with installing Cert Manager. This is required to create and manage TLS certifications for Kubeflow Pipeline. Before installing Cert Manager, first check the [latest version](https://cert-manager.io/docs/releases/?ref=devopscube.com). Then, use the following command to install Cert Manager with the latest version. ```bash kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.0/cert-manager.yaml ``` This will create a new namespace `cert-manager` and install all its resources. Once the installation command is finished, run the following command to check if the Cert Manager pods are up and running. ```bash $ kubectl get po -n cert-manager NAME READY STATUS RESTARTS AGE cert-manager-66487b786-dxf8k 1/1 Running 0 44s cert-manager-cainjector-65fdc9b9d7-csnjh 1/1 Running 0 44s cert-manager-webhook-7d96469bf8-ll9x5 1/1 Running 0 43s ``` Move to the next section once the pods start running. ### Step 2: Deploy Kubeflow Pipelines CRD's Now, installing the cluster resources. ```bash kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=2.16.1" ``` This will create cluster-scoped resources like CRDs, ServiceAccount, and RBACs for the Kubeflow Pipelines and also the kubeflow namespace. ### Step 3: Create a Kustomize Patch File To modify the default installation values, we need to create a Kustomize patch file. It is similar to creating a custom Helm Charts Values file. We have created a Kustomize patch file and pushed it to our GitHub repository. It contains the custom values and URL of offical KFP manifest files. From the root directory of the cloned repository, move into the `platform-tools/kubeflow-pipeline folder`. ```bash cd platform-tools/kubeflow-pipeline ``` There, you can see the **`kustomization.yaml`** patch file. In the patch file, we have added the following patches: - Exposed Kubeflow Pipelines service as `NodePort 30088` to connect it from local to trigger pipeline runs for testing. - Exposed Kubeflow Pipelines UI in **`NodePort`** **`30080`** to access the UI. - Removed the **`default-allow-same-namespace`** and **`seaweedfs`** network policies to access UI from the browser. - Modified the seaweedfs server volume permission so it can write its data. - Removed cache-deployer and updated cache-server to get TLS certificates from cert-manager. ⚠️ We removed the network policy and exposed the services as nodeport in testing environment, for production enviornment use Ingress to access the services For more details, clone the official GitHub repo and check the Kustomize files. ```bash git clone https://github.com/kubeflow/pipelines.git ``` You can find the files inside `pipelines/manifests/kustomize`. ```bash cd pipelines/manifests/kustomize ``` ### Step 4: Deploy Kubeflow Pipelines using Kustomize 💡 If you are deploying in AWS EKS, mark one of your StorageClass as default because EKS does not have a default StorageClass kubectl patch storageclass gp2 -p '{"metadata": {"annotations":{"[storageclass.kubernetes.io/is-default-class":"true](http://storageclass.kubernetes.io/is-default-class%22:%22true?ref=devopscube.com)"}}}' Lets start deploying the Kubeflow Pipeline. We will be using the official Kustomize to install the pipeline with some modifications in the initial step itself. All the offical manifest URLs and custom values are present in the **`kustomization.yaml`** patch file. Now, lets apply the kustomize patch file. Ensure you are executinf this from the **`platform-tools/kubeflow-pipeline`** folder. ```bash kubectl apply -k . ``` Then, run the following command to check if all the pods are running. ```bash $ kubectl get po -n kubeflow NAME READY STATUS RESTARTS cache-server-5cff6d84c8-g784t 1/1 Running 0 metadata-envoy-deployment-6b867d6fd-pvqch 1/1 Running 0 metadata-grpc-deployment-7fc85ffd8f-qx7q4 1/1 Running 0 metadata-writer-6cdb9c7484-9qw4j 1/1 Running 0 ml-pipeline-85b759494b-jb7gc 1/1 Running 0 ml-pipeline-persistenceagent-fb57b55cf-77gkx 1/1 Running 0 ml-pipeline-scheduledworkflow-7fcb8d76f8-2vnbk 1/1 Running 0 ml-pipeline-ui-5fd7cb4cb6-8rdqj 1/1 Running 0 ml-pipeline-viewer-crd-7d584d5978-jrcnh 1/1 Running 0 ml-pipeline-visualizationserver-77d9bbcc85-dj2wg 1/1 Running 0 mysql-5bb7cf8b95-pp547 1/1 Running 0 seaweedfs-546d8465ff-kz8cj 1/1 Running 0 workflow-controller-6b89c5dd44-frjlf 1/1 Running 0 ``` ⚠️ Some pods may restart or crash until their dependency pod starts running You can see all these pods are created for the Kubeflow Pipeline, let's access the UI in the next section. ### Step 5: Access Kubeflow Pipelines UI Since we have added a block in the patch file to expose the Kubeflow pipelines service as a nodeport, we can access it using the URL `:30080`. To verify, use the following command. ``` $ kubectl get svc ml-pipeline-ui -n kubeflow NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ml-pipeline-ui NodePort 10.100.119.114 80:30080/TCP 4h16m ``` Use the URL in the browser you will get the following dashboard. ![kubeflow pipeline ui](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-110.png) Now, we can access the UI, let's trigger a test pipeline to verify if everything is working. ## Trigger Kubeflow Pipelines Run In this section, we will create sample machine learning runs in the Kubeflow Pipelines to check if everything is working properly. 💡 For testing we are triggering runs manually, but in actual environment runs are triggered using CI tools like Argo Workflows or GitHub Actions when a new change is made to GitHub. The pipeline codes are inside the `phase-2-enterprise-setup/kubeflow-pipeline` directory of the cloned repository. Assuming you are inside the `platform-tools/kubeflow-pipeline` directory. Run the following command to move into the `phase-2-enterprise-setup/kubeflow-pipeline` directory. ```bash cd ../../phase-2-enterprise-setup/kubeflow-pipeline ``` There, you can see the following structure. ```bash . │ ├── components │ ├── __init__.py │ ├── evaluate.py │ ├── preprocess.py │ └── train.py ├── config.py └── pipeline.py ``` In this, The `components` folder contains the files that have codes for each pipeline step. The `pipeline.py` is the main pipeline file, which calls all the component files and runs them in the Kubeflow pipeline using Kubeflow Pipelines SDK. `config.py` contains variables like base image, Kubeflow pipelines endpoints. 💡 Update your nodes IP in the `KFP_ENDPOINT` and `KFP_UI_ENDPOINT` before moving forward. Now, create an isolated environment to install the KFP SDK package to connect with Kubeflow Pipeline. ```bash python3 -m venv env source env/bin/activate ``` Then, run the following pip command to install the Kubeflow Pipelines SDK. ```bash pip install kfp ``` Now, open the `config.py` file and update your Kubeflows IP in `KFP_ENDPOINT`. Then, run the following command to trigger the pipeline. ```bash python pipeline.py ``` You will get output similar to the following when triggering the pipeline. ``` Experiment details: https://35.167.234.106:30088/#/experiments/details/11234f25-799e-46d9-bbcc-d26d2538a8a4 Run details: https://35.167.234.106:30088/#/runs/details/78807a6b-ce72-4840-a5d1-4a182b376df8 Run: 78807a6b-ce72-4840-a5d1-4a182b376df8 URL: https://35.167.234.106:30088/#/runs/details/78807a6b-ce72-4840-a5d1-4a182b376df8 ``` Check the UI, under Runs, you can see a new pipeline is triggered. ![new run is triggered in kubeflow pipeline](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-118.png) Select it, and you will see the steps in a graph and how each is connected. ![graph sturcture of all steps specified in the pipeline](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-119.png) ## Clean Up If you no longer need the step, run the following command from the same directory as the Kusztmize patch file to delete the resources created by it. ```bash kubectl delete -k . ``` And use the following command to delete CRDs installed. ```bash kubectl delete -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=2.16.1" ``` Then, delete the cert-manager you deployed. ```bash kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.0/cert-manager.yaml ``` ## Ways to Trigger Kubeflow Pipelines Runs The following are the ways you can trigger a Kubeflow Pipeline run. 1. **KFP SDK -** This is the method we did in the example using the KFP Python SDK and Python code. 2. **CI/CD -** In production, runs are triggered by CI/CD tools, not by manual trigger. 3. **UI -** You can also trigger runs from the KFP UI. But only compiled IR YAML is supported. 4. **Scheduled/Recurring Run** \- KFP supports scheduled runs in two types, they can be in a cron job or an interval based run. ## Kubeflow Log Persistence KFP does not have a default log persistence option, logs will get deleted once the run pods are deleted. To prevent this, you can configure external log aggregation tools like [Loki](https://devopscube.com/grafana-loki-architecture/), Elasticsearch, or AWS CloudWatch to save the logs. You can also configure KFP to save the log files in object storage like Amazon S3 or use SeaweedFS server, which comes as the default object storage of KFP. ## Monitoring & Observability KFP has its own UI to view the run details and status of each run. And use [Prometheus](https://devopscube.com/setup-prometheus-operator/) to monitor core pods like ml-pipeline, mysql database, SeaweedFS server, etc. If core pods are down, other pods start crashing. Also, write your pipeline in a way that exposes custom metrics. ## Cost Optimization For cost optimization, use spot nodes for your cluster and schedule the runner pods on them. Once the task runs are completed, even if the pods are deleted, it's not a problem. Set CPU and memory limits for each task based on their needs to prevent overuse of resources. ## Troubleshooting Kubeflow Pipelines Below is one of the common issues you may face in Kubeflow Pipeline. ### Seaweedfs Permission Issue The Seaweedfs container runs as a non-root user, which may cause the following write permission issue. ```bash please verify /data is writable, see https://github.com/seaweedfs/seaweedfs/issues/717: mkdir /data/m9333: permission denied ``` To solve this issue, we have added the following block in the patch file. ```yaml - target: kind: Deployment name: seaweedfs patch: | - op: add path: /spec/template/spec/securityContext value: fsGroup: 1000 runAsUser: 1000 runAsGroup: 1000 ``` This tells the container to run as user 1000(seaweed), which has permission to write in the /data location. ## Conclusion In summary, we have seen how to deploy KPF in managed services like EKS and the configuration changes needed for it. And finally, we also looked into the common issues you may face in KFP. Share your feedbacks in the comments. ### Helm Chart Tutorial: A Simple Guide for Beginners URL: https://devopscube.com/create-helm-chart/ Last updated: 2026-07-02T16:41:27.000Z Learn how to create a Helm chart with our easy-to-follow Helm Chart tutorial. This guide covers structure, components, and best practices. Helm is an open-source project under the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/?ref=devopscube.com). It is widely used by organizations to package and deploy Kubernetes applications. So if you want to learn Helm chart basics and get hands-on with creating a Helm chart from scratch, you will love this guide. ## Prerequisites To get started with Helm charts, you need to have the following. 1. A working [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) 2. [Helm installed](https://devopscube.com/install-configure-helm-kubernetes/) on your workstation 3. A valid [kubeconfig](https://devopscube.com/kubernetes-kubeconfig-file/) to connect to the cluster 4. Working [knowledge of Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) and YAML. 💡 Helm follows a client-only architecture. The `helm` CLI you install on your workstation is the Helm client. It connects directly to your cluster using your local [kubeconfig](https://devopscube.com/kubernetes-kubeconfig-file/) credentials ## What is Helm Chart? A Helm chart is a combination of [Kubernetes YAML manifest ](https://devopscube.com/create-kubernetes-yaml/)templates and Helm-specific files. You can call it a Helm package. Since the Kubernetes YAML manifest files can be templated, you don't have to maintain multiple Helm charts of different environments. Helm uses the [go templating engine](https://pkg.go.dev/text/template?ref=devopscube.com) for the templating functionality. **Why should we use Helm Charts?** For understanding, let's use a very basic example of a website frontend deployment using Nginx on Kubernetes. Let's assume you have four different environments in your project. **Dev, QA, Staging**, and **Prod**. Each environment will have different parameters for Nginx deployment. For example, 1. In Dev and QA you might need only one replica. 2. In staging and production, you will have more replicas with pod autoscaling. 3. The ingress routing rules will be different in each environment. 4. The config and secrets will be different for each environment. Because of the change in configs and deployment parameters for each environment, you need to maintain different Nginx deployment files for each environment. Or you will have a single deployment file and you will need to write custom shell or python scripts to replace values based on the environment. However, it is not a scalable approach. Here is where the helm chart comes into the picture. ![what is a helm chart](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/helm-chart-drawio-1.png) Click to view in HD You just need to have a **single Helm chart** and you can modify the Kubernetes deployment **parameters of each environment** by just changing a single values file. Helm will take care of applying the values to the templates. We will learn more about it practically in the next sections. At a high level, Helm Charts reduce the complexity, and kubernetes manifest redundancy of each environment `(dev, uat, cug, prod)` with only one template. ## Understanding Helm Chart Structure To understand the Helm chart, let's take an example of Nginx based Kubernetes deployment. To deploy Nginx on Kubernetes, typically you would have the following YAML files. ```bash nginx-deployment ├── configmap.yaml ├── deployment.yaml ├── ingress.yaml └── service.yaml ``` Now if we create a Helm Chart for the above Nginx deployment, it will have the following directory structure. ```bash nginx-chart/ |-- Chart.yaml |-- charts |-- templates | |-- NOTES.txt | |-- _helpers.tpl | |-- deployment.yaml | |-- configmap.yaml | |-- ingress.yaml | |-- service.yaml | `-- tests | `-- test-connection.yaml `-- values.yaml ``` As you can see, the deployment YAML files are part of the template directory (highlighted in bold) and there are helm-specific files and folders. Let’s look at each file and directory inside a helm chart and understand its importance. 1. **.helmignore:** It is used to define all the files that we don’t want to include in the helm chart. It works similarly to the `.gitignore` file. 2. **Chart.yaml:** It contains information about the helm chart like version, name, description, etc. 3. **templates:** This directory contains all the Kubernetes manifest files that form Kubernetes applications. These manifest files can be templated to access values from **`values.yaml`** file. It is similar to Ansible templates. 4. **values.yaml**: In this file, we define the values for the templates. For example, image name, replica count, HPA values, etc. 5. **charts:** We can add another chart’s structure inside this directory if our main charts have some dependency on others. By default this directory is empty. 6. **templates/NOTES.txt:** This is a plaintext file that supports Go templating to [print post installation instructions for the helm chart.](https://devopscube.com/helm-notes-txt-file/) 7. **templates/\_helpers.tpl:** There are scenarios where same logic gets repeated in Helm templates. For example, labels. In such cases you can maintain [**reusable template functions**](https://devopscube.com/%5Fhelpers-tpl-file-in-helm-charts/) to avoid repeating the same blocks again in your chart. 8. **templates/tests/:** We can define tests in our charts to validate that your chart works as expected when it is installed. ![Helm Chart Structure Illustration](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-32.png) ## Helm Chart Tutorial GitHub Repo The example Helm chart and manifests used in this Helm Chart Tutorial are hosted on the [Helm Chart GitHub repo](https://github.com/techiescamp/helm-tutorial?ref=devopscube.com). You can clone it and use it to follow along with the guide. ```bash git clone https://github.com/techiescamp/helm-tutorial.git ``` ## Create Helm Chart From Scratch To get hands-on with Helm chart creation, let's **create an Nginx Helm chart** from scratch. Execute the following command to create the chart boilerplate. It creates a chart with the name `nginx-chart` with default files and folders. ```bash helm create nginx-chart ``` If you check the created chart, it will have the following files and directories. ```bash nginx-chart │ ├── Chart.yaml │ ├── charts │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── deployment.yaml │ │ ├── hpa.yaml │ │ ├── ingress.yaml │ │ ├── service.yaml │ │ ├── serviceaccount.yaml │ │ └── tests │ │ └── test-connection.yaml │ └── values.yaml ``` Let's cd into the generated chart directory. ```bash cd nginx-chart ``` We'll **edit the files one by one** according to our deployment requirements. ### Chart.yaml As mentioned above, we put the details of our chart in `Chart.yaml` file. Replace the default contents of `chart.yaml `with the following. ```bash apiVersion: v2 name: nginx-chart description: My First Helm Chart type: application version: 0.1.0 appVersion: "1.0.0" maintainers: - email: contact@devopscube.com name: devopscube ``` 1. **apiVersion**: This denotes the chart API version v2 is for Helm 3 and above, and v1 is for previous versions. 2. **name:** Denotes the name of the chart. 3. **description:** Denotes the description of the helm chart. 4. **Type**: The chart type can be either ‘**application**’ or ‘**library**’. Application charts are what you deploy on Kubernetes. Helm Library charts are re-usable charts that can be used with other charts. A similar concept of libraries in programming. 5. **Version**: This denotes the chart version. 6. **appVersion**: This denotes the version number of our application (Nginx). 7. **maintainers:** Information about the owner of the chart. We should increment the `version` and `appVersion` each time we make changes to the application. There are some other fields like dependencies, icons, etc. ### templates There are multiple files in **`templates`** directory created by Helm. In our case, we will work on simple Kubernetes Nginx deployment. Let's remove all default files from the template directory. ```bash rm -rf templates/* ``` We will add our Nginx YAML files and change them to the template for better understanding. First `cd` in to the templates directory. ```bash cd templates ``` Create a **`deployment.yaml`** file and copy the following contents. ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: release-name-nginx labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx-chart image: "nginx:1.16.0" imagePullPolicy: IfNotPresent ports: - name: http containerPort: 80 protocol: TCP volumeMounts: - name: nginx-index-file mountPath: /usr/share/nginx/html/ volumes: - name: nginx-index-file configMap: name: index-html-configmap ``` If you see the above YAML file, the values are static. The idea of a helm chart is to template the YAML files so that we can **reuse them in multiple environments** by dynamically assigning values to them. To template a value, all you need to do is add the **object parameter** inside curly braces as shown below. It is called a **template directive** and the syntax is specific to the **Go templating** ```yaml {{ .Object.Parameter }} ``` First Let's understand what is an Object. Following are the three Objects we are going to use in this example. 1. **Release**: Every helm chart will be deployed with a release name. If you want to use the release name or access **release-related dynamic values** inside the template, you can use the release object. 2. **Chart**: If you want to use any values you mentioned in the **chart.yaml**, you can use the chart object. 3. **Values**: All parameters inside **values.yaml** file can be accessed using the Values object. To know more about supported Objects check the [Helm Builtin Object](https://helm.sh/docs/chart%5Ftemplate%5Fguide/builtin%5Fobjects/?ref=devopscube.com) document. The following image shows how the built-in objects are getting substituted inside a template. ![helm template directive substitution workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/helm-template-1.png) Click to view in HD First, you need to figure out what values could change or what you want to templatize. I am choosing **name**, **replicas, container name, image,** **imagePullPolicy** and **configMap Name** which I have highlighted in the YAML file in bold. 1. **name:** `name: {{ .Release.Name }}-nginx` : We need to change the deployment name every time as Helm does not allow us to install releases with the same name. So we will templatize the name of the deployment with the release name and interpolate **\-nginx** along with it. Now if we create a release using the name **frontend**, the deployment name will be **frontend-nginx**. This way, we will have guaranteed unique names. 2. **container name**: `{{ .Chart.Name }}`: For the container name, we will use the Chart object and use the chart name from the **chart.yaml** as the container name. 3. **Replicas:` ` `{{ .Values.replicaCount }}`** We will access the replica value from the **values.yaml** file. 4. **image:** `"{{ .Values.image.repository }}:{{ .Values.image.tag }}"` Here we are using multiple template directives in a single line and accessing the repository and tag information under the image key from the Values file. 5. **configMap Name:** `{{ .Release.Name }}-index-html-configmap.` Here we are adding the release name to the configmap. Similarly, you can templatize the required values in the YAML file. #### Create a deployment template Here is our final **`deployment.yaml`** file after applying the templates. Replace the deployment file contents with the following. ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }}-nginx labels: app: nginx spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: {{ .Chart.Name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - name: http containerPort: 80 protocol: TCP volumeMounts: - name: nginx-index-file mountPath: /usr/share/nginx/html/ volumes: - name: nginx-index-file configMap: name: {{ .Release.Name }}-index-html-configmap ``` #### Create a Service template In the same we will also create a **`service.yaml`** template with the following content. ```yaml apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }}-service spec: selector: app.kubernetes.io/instance: {{ .Release.Name }} type: {{ .Values.service.type }} ports: - protocol: {{ .Values.service.protocol | default "TCP" }} port: {{ .Values.service.port }} targetPort: {{ .Values.service.targetPort }} ``` In the **protocol template directive**, you can see a pipe `( | )` . It is used to define the default value of the protocol as TCP. It means, if we dont't define the protocol value in `values.yaml` file or if it is empty, it will take TCP as a default value for protocol. #### Create a Configmap template Create a **`configmap.yaml`** and add the following contents to it. Here we are replacing the default Nginx **index.html** page with a custom HTML page. Also, we added a template directive to replace the environment name in HTML. ```yaml apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-index-html-configmap namespace: default data: index.html: |

Welcome


Hi! I got deployed in {{ .Values.env.name }} Environment using Helm Chart

Linting ./nginx [INFO] Chart.yaml: icon is recommended 1 chart(s) linted, 0 chart(s) failed ``` To validate if the values are getting substituted in the templates, you can render the templated YAML files with the values using the following command. It will generate and display all the manifest files with the substituted values. ```bash helm template . ``` We can also use `--dry-run` command to check. This will pretend to install the chart to the cluster and if there is some issue it will show the error. If you are still inside the `nginx-chart`you're folder, move out of the folder and run the following command. ```bash helm install --dry-run my-release nginx-chart ``` If everything is good, then you will see the manifest output that will be deployed into the cluster. ## Deploy the Helm Chart When you deploy the chart, Helm will read the chart and configuration values from the `values.yaml` file and generate the manifest files. Then it will send these files to the Kubernetes API server, and Kubernetes will create the requested resources in the cluster. Now we are ready to install the chart. Make sure to run the Helm commands from a directory outside the `helm-chart` folder. Run the following Helm install command where **`frontend`** is release name and **`nginx-chart`** is the chart name. It installs **`nginx-chart`** in the default namespace ```bash helm install frontend nginx-chart ``` You will get the following output, once its deployed. ```bash NAME: frontend LAST DEPLOYED: Mon Jan 12 06:20:20 2026 NAMESPACE: default STATUS: deployed REVISION: 1 DESCRIPTION: Install complete TEST SUITE: None ``` Now you can check the release list using this command. ```bash $ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION frontend default 1 2026-01-12 06:20:20.865280236 +0000 UTC deployed nginx-chart-0.1.0 1.16.0 ``` You can also use `ls` instead of `list`Helm. Run the kubectl commands to check the deployment, services, and pods. ```bash kubectl get deploy,svc,cm,po ``` We can see the deployment **`frontend-nginx`**, **`nginx-service`** and pods are up and running as shown below. ```bash NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/frontend-nginx 2/2 2 2 22m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/frontend-service ClusterIP 10.106.34.74 80/TCP 22m service/kubernetes ClusterIP 10.96.0.1 443/TCP 24d NAME DATA AGE configmap/frontend-index-html-configmap 1 22m configmap/kube-root-ca.crt 1 24d NAME READY STATUS RESTARTS AGE pod/frontend-nginx-6ff9d468d5-5sts5 1/1 Running 0 22m pod/frontend-nginx-6ff9d468d5-rhkb5 1/1 Running 0 22m ``` We discussed how a single helm chart can be used for multiple environments using different **`values.yaml `**files. To install a Helm chart with an external `**values.yaml**` file, you can use the following command with the `--values` flag and path of the values file. ```bash helm install frontend nginx-chart --values env/prod-values.yaml ``` When you have Helm as part of your CI/CD pipeline, you can write custom logic to pass the required values file depending on the environment. ## Upgrade & Rollback Helm Now suppose you want to modify the chart and install the updated version, we can use the following command: ```bash helm upgrade frontend nginx-chart ``` For example, we have changed the replicas from 2 to 1\. You can see the revision number is 2 and only 1 pod is running. ![helm chart upgrade](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-8-15.png) Now if we want to roll back the changes that we have just done and deploy the previous one again, we can use the rollback command to do that. ```bash helm rollback frontend ``` The above command will roll back the Helm release to the previous one. ![helm chart rollback](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-10-18.png) After the rollback, we can see 2 pods are running again. Note that Helm takes the rollback as a new revision, that's why we're getting the revision as 3. 💡 All the ****release history** will be saved as Kubernetes secrets in the same namespace where you deployed the Helm chart If we want to roll back to the specific version we can put the revision number like this. ```bash helm rollback ``` For example, ```bash helm rollback frontend 2 ``` ## Uninstall The Helm Chart To uninstall the Helm release, use the uninstall command. It will remove all of the resources associated with the last release of the chart. ```bash helm uninstall frontend ``` If you have deployed the release in a specific namespace, you can pass the namespace flag with the uninstall command as given below. ```bash helm uninstall --namespace ``` ## Package the Helm Chart We can package the chart and deploy it to Github, S3, or any helm chart repository like [Artifact Hub.](https://artifacthub.io/?ref=devopscube.com) Execute the following command to package the **`nginx-chart`**. ```bash helm package chart-name/ ``` For example, ```bash helm package nginx-chart Successfully packaged chart and saved it to: /home/vagrant/helm-tutorial/nginx-chart-0.1.0.tgz ``` When you package it, it follows [semver 2](https://semver.org/?ref=devopscube.com) version guidelines. 💡 Modern Helm versions let you store and share packaged charts in OCI-compliant registries like GitHub Container Registry, Docker Hub or cloud-specific registries (ECR, ACR, GAR), the same way you push and pull container images. ## Debugging Helm Charts We can use the following commands to debug the helm charts and templates. 1. **`helm lint:`** This command takes a path to a chart and runs a series of tests to verify that the chart is well-formed. 2. **`helm get values:`** This command will output the release values installed to the cluster. 3. **`helm install --dry-run:`** Using this function we can check all the resource manifests and ensure that all the templates are working fine. 4. **`helm get manifest:`** This command will output the manifests that are running in the cluster. 5. **`helm diff:`** It will output the differences between the two revisions. ```bash helm diff revision frontend 1 2 ``` The helm diff command is not available by default, it's a plugin that you have to [install](https://github.com/databus23/helm-diff?ref=devopscube.com) to use it. ## Helm Repositories In the above example, we built a Helm chart and deployed it. But the official Helm charts of tools will be stored in Helm repositories, so we have to add the Helm repositories to our work environment and deploy the charts. Below are some of the commonly used Helm repository based commands. - To add a repository to your system, use the helm repo add command, it command stucture is given below. ```bash helm repo add ``` - To list all the available repositories added to your system ```bash helm repo list ``` - Respositories will be updated with new changes often, to sync the locally added repository with the official repository, you can use the update command. ```bash helm repo update ``` - And if you want to pull the entire chart package and untar it without installing, use the following command. ```bash helm pull / --untar ``` ## Helm Chart Possible Errors If you try to install an existing Helm package, you will get the following error. ```bash level=ERROR msg="release name check failed" error="cannot reuse a name that is still in use" Error: INSTALLATION FAILED: release name check failed: cannot reuse a name that is still in use ``` To update or upgrade the release, you need to run the upgrade command. If you try to install a chart from a different location without giving the absolute path of the chart, you will get the following error. ```bash Error: non-absolute URLs should be in form of repo_name/path_to_chart ``` To rectify this, you should execute the helm command from the directory where you have the chart or provide the absolute path or relative path of the chart directory. ## Helm Charts Best Practices Following are some of the best practices to be followed when developing a Helm chart. 1. Document your chart by adding comments and a **README** file as documentation is essential for ensuring maintainable Helm charts. 2. We should name the Kubernetes manifest files after the Kind of object i.e. deployment, service, secret, ingress, etc. 3. Put the chart name in lowercase only, and if it has more than one word, then separate them with hyphens (-) 4. In values.yaml file field name should be in lowercase. 5. Always wrap the string values between quote signs. 6. Use Helm version 4 for simpler and more secure releases. Check [this document](https://helm.sh/docs/overview?ref=devopscube.com) for more details Also, to learn more best practices, checkout the [Helm best practices](https://devopscube.com/helm-best-practices-essential-tips-to-know/) guide. ## Helm Cheat Sheet Here’s a quick reference list of common Helm commands you can use in your day-to-day Helm workflows. #### helm install Installs a Helm chart onto your Kubernetes cluster. ```bash helm install ``` #### helm upgrade Updates your existing Helm release with new chart changes or updated values. ```bash helm upgrade ``` #### helm rollback Rolls back a Helm release to a previous revision. ```bash helm rollback ``` #### **helm test** Runs the tests defined in the Helm chart’s `templates/tests` directory against your release. ```bash helm test ``` #### **helm lint** Checks a chart for possible issues like formatting or missing fields. ```bash helm lint ``` #### helm template Renders a chart to show the Kubernetes manifests without installing them. Useful for debugging your templates. ```bash helm template ``` #### **helm list (helm ls)** Lists all the currently installed releases in the specified namespace (defaults to the current namespace). ```bash helm list ``` #### **helm uninstall** Uninstalls a Helm release, removing all the associated Kubernetes resources from your cluster. ```bash helm uninstall ``` ## Helm Chart FAQ's ### What is a Helm Library chart? A library chart is a reusable chart that only contains template helpers. You cannot install it directly. Other charts import it as a dependency to avoid duplicating common template logic. ## Conclusion To summarize, 1. We discussed the Helm Chart and its structure in detail. 2. We created a Helm chart from scratch and deployed it. 3. Also learned how to upgrade, roll back, and uninstall it. Helm is a very useful package manager for Kubernetes. When you have different environments with custom deployment requirements, Helm provides a great way to templatize kubernetes manifests as per our needs. Helm-specific functionalities like chart dependencies and chart reusability make it one of the good kubernetes tools. Also, if you are preparing for [CKA](https://devopscube.com/cka-exam-study-guide/) or [CKAD certification](https://devopscube.com/ckad-exam-study-guide/), Helm is an important topic for the exam. An alternative to Helm is Kustomize. It does not use templating, but it uses the concept of overlays. Refer to the [Kustomize tutorial](https://devopscube.com/kustomize-tutorial/) to learn more. Also, if you check our[ learning kubernetes](https://devopscube.com/learn-kubernetes-complete-roadmap/) guide, we have mentioned Helm as a must-learn tool for Kubernetes package management. ### SLSA Provenance Creation using GitHub Actions URL: https://devopscube.com/slsa-provenance/ Last updated: 2026-06-16T05:21:37.000Z When it comes to supply chain security, [SLSA ](https://slsa.dev/spec/v1.2/provenance?ref=devopscube.com) (Supply-chain Levels for Software Artifacts) plays a key role. Higher the level, lower the probability of supply chain attacks. In this guide, you will learn to create an SLSA Provenance [build level 3](https://github.blog/enterprise-software/devsecops/enhance-build-security-and-reach-slsa-level-3-with-github-artifact-attestations/?ref=devopscube.com) for container images using **`slsa-github-generator`** At the end of this guide, you will have an understanding of the following: - What is slsa-github-generator - Using [GitHub Actions](https://devopscube.com/github-actions-self-hosted-runner/) to create SLSA Provenance for container images - How to verify a SLSA Provenance file - And what happens if the SLSA Provenance verification fails Lets get started. ## What is slsa-github-generator? The [slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator?ref=devopscube.com) is a collection of reusable workflows managed by the SLSA community. It helps in creating **SLSA Level 3 provenance** for your build artifacts. slsa-github-generator is based on [Build Your Own Builder (BYOB)](https://github.com/slsa-framework/slsa-github-generator/blob/main/BYOB.md?ref=devopscube.com) framework. It isolates the **provenance** generation from the user-controlle build logic. This way it prevents the tampering of provenance. The generator integrates the following three Sigstore tools for keyless signing. - [**Cosign**](https://docs.sigstore.dev/quickstart/quickstart-cosign/?ref=devopscube.com) \- Request signing certificate, signs the provenance attestation, and stores the signed attestation. - [**Fulcio CA**](https://docs.sigstore.dev/certificate%5Fauthority/overview/?ref=devopscube.com) \- It issues a short-lived certificate for signing for the request sent using GitHub Actions OIDC identities. - [**Rekor**](https://docs.sigstore.dev/logging/overview/?ref=devopscube.com) \- Records signing events in an immutable (append-only) transparency log for public verification. **`slsa-github-generator`** does these in an isolated ephemeral build system that is different from the actual build steps. This isolated build is a key requirement for achieving SLSA Build Level 3 provenance generation. For [container images](https://devopscube.com/docker-image-build-promotion-piepeline/), the provenance attestation **can be stored alongside the image in OCI-compatible registries** such as Amazon ECR and GitHub Container Registry (GHCR). It makes it easy to distribute and verify provenance together with the artifact. The provenance file will be pushed as an OCI image, so make sure to use an OCI registry or registries that support OCI images, like AWS ECR, GitHub Container Registry. In the next section, we will look at how GitHub Actions uses slsa-github-generator, to generate and sign SLSA provenance for build artifacts. ## SLSA Provenance Creation Workflow The followin diagram illustrates the complete workflow of SLSA Provenance Creation using Github Actions **`slsa-github-generator`**. ![SLSA provenance creation and verification workflow using Github Actions slsa-github-generator](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-169.png) Here is how the workflow works. 1. The build workflow first creates the software artifact (for example, a container image) and pushes it to the OCI registry or release location. 2. After the build completes, the workflow from `slsa-github-generator` is triggered to generate provenance. This workflow runs separately from the user-controlled build workflow to provide the isolation required for SLSA Build Level 3. 3. The provenance job runs as three separate jobs. **`detect-env`**, **`generator`** and **`final`**. These are user defined names. 1. The **`detect-env`** job collects details of the build with details such as repository and workflow information, source commit, builder identity, build environment information etc. 2. Then the **`generator`** job uses the details to create the provenance document and uses a GitHubs OIDC token to request certificates from Fulcio CA. 3. It uses the certificate to sign the provenance document, and the event is recorded in the Rekor log. 4. The signed provenance attestation is then stored along the container image in the registry. 5. And the **`final`** job does the cleanup and verifies if the provenance document is pushed to the container registry. ⚠️ In an a private environment, you cannot use the default slsa-github-generator because it relies on public Sigstore services such as Fulcio and Rekor. In such cases, use Cosign with self-hosted [Fulcio CA and Rekor](https://github.com/sigstore/helm-charts?ref=devopscube.com), or use key-based signing with services like AWS KMS. For verifying the provenance, you can use the [**SLSA Verifier**](https://github.com/slsa-framework/slsa-verifier?ref=devopscube.com)**.** It retrieves provenance from the registry and event logs from Rekor to verify that container image is originated from the expected source. ## Setup Prerequisites Following are the prerequisites for this guide. - GitHub Repository - [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/) configured - AWS ECR repository ( We have already created an ECR repository named web-app) - [AWS IAM](https://devopscube.com/aws-iam-role-instance-profile/) policy permission to create roles - [Github Actions configured with OIDC for AWS](https://devopscube.com/github-actions-oidc-aws/) ## GitHub Repository We have pushed the workflow file in this setup to our GitHub [repository](https://github.com/techiescamp/slsa.git?ref=devopscube.com). It contains the following files. ```bash . ├── Dockerfile | └── workflows | └── slsa-provenance.yaml ├── Dockerfile ├── README.md └── app.py ``` The workflow file runs 2 jobs. - One builds and pushes the image to ECR registry, - Other creates SLSA Provenance for the image build. Also, it contains source code for a demo Python Flask app and the related [Dockerfile](https://devopscube.com/create-dockerfile-using-docker-init/). ## How to Create SLSA Provenance with GitHub Actions? In this section, we will build an image, create SLSA Provenance, and push to the ECR registry. We will be using two jobs in the build pipeline, - One builds and pushes the container image to the AWS ECR registry - Second builds and pushes the SLSA provenance to the AWS ECR registry along with the container image ⚠️ Before moving forward, make sure you have configured GitHub Actions OIDC with AWS ### Update Environment Variables in the Workflow Clone the GitHub repository to your local and update the environment variables in the workflow file. ```yaml env: AWS_ROLE: AWS_REGION: AWS_ACCOUNT_ID: ECR_REGISTRY: .dkr.ecr..amazonaws.com IMAGE_NAME: web-app ``` In this update, the values include your AWS role ARN of GitHub OIDC connect, region, account ID, ECR registry URL, and image name. Once it's updated, push it to your registry. ### Triggering the Workflow The workflow only supports manual triggering. To trigger it, go to your repository -> Actions -> SLSA Provenance and toggle the **Run workflow** button and click the Run workflow button to trigger the workflow. ![steps to trigger a github actions workflow manually](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-159.png) Once the workflow is completed, you can see the jobs completed as shown below. ![github action workflow steps to build and push both container image and its provenance file](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-155.png) You can see the Provenance job **runs three additional jobs**. This is how the **`slsa-github-generator`** is designed to run. This distributed job makes it SLSA Level 3. Now, go to your ECR registry and check your image repository. ![Provenance file and container image pushed to AWS ECR](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-156.png) You can see the container image pushed with the tag based on the build number, and the provenance is pushed as **`SHA256 digest`**. ## How to Verify SLSA Using slsa-verifier Tool To verify SLSA, you need to install a tool called slsa-verifier. It will get the provenance document from ECR, check it with the event recorded on **`rekor.sigstore.dev`** over the internet, and check the provenance attestation as illustrated in the image below. ![how slsa-verifier checks provenance](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/SLSA6.png) Lets start with installing slsa-verifier. Use the following command to install it. ```bash curl -sL https://github.com/slsa-framework/slsa-verifier/releases/download/v2.7.1/slsa-verifier-linux-amd64 \ -o slsa-verifier chmod +x slsa-verifier sudo mv slsa-verifier /usr/local/bin/ ``` For more installation options, check the official [GitHub repository](https://github.com/slsa-framework/slsa-verifier?ref=devopscube.com#installation). Before verifying first, you need to log in to the registry locally. Since we are using ECR, use the following command to log in. ```bash aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 637423664276.dkr.ecr.us-west-2.amazonaws.com ``` ⚠️ In the below commands, update your provenance SHA ID, GitHub URL of from where you build and the branch you used before running it Once it's installed, use the following command to verify SLSA. ```bash slsa-verifier verify-image \ "637423664276.dkr.ecr.us-west-2.amazonaws.com/web-app@sha256:7a84ee120d8f9bdce973189826f954d7c6608a83cde358e3ebbfb291e06fbaff" \ --source-uri github.com/techiescamp/slsa \ --source-branch main ``` If nothing has changed, you will get a "***SLSA verification passed***" message similar to the one below. ```bash Verified build using builder "https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@refs/tags/v2.1.0" at commit 1d0e3b0c13dc9330fca55aac6130f320d007d4fd PASSED: SLSA verification passed ``` And, if you want to download the provenance file locally, use the same command with `--print-provenance` flag. ```bash slsa-verifier verify-image \ "637423664276.dkr.ecr.us-west-2.amazonaws.com/web-app@sha256:7a84ee120d8f9bdce973189826f954d7c6608a83cde358e3ebbfb291e06fbaff" \ --source-uri github.com/techiescamp/slsa \ --source-branch main \ --print-provenance | jq . > provenance-aws.json ``` You will get the provenance format as shown below. ![slsa provenance file sturcture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-157.png) 💡 Here we just verified on our local for learning, but in actual Kubernetes cluster, the verification is done by run-time verification tools like [Kyverno](https://kyverno.io/?ref=devopscube.com). It intercepts every deployment creation request and verify if the image has proper SLSA Provenance. What Happens if Verification Fails? Let's see what happens if the information is different from the information on provenance. For testing, we will use the same command but **change the source branch.** ```bash slsa-verifier verify-image \ "637423664276.dkr.ecr.us-west-2.amazonaws.com/web-app@sha256:7a84ee120d8f9bdce973189826f954d7c6608a83cde358e3ebbfb291e06fbaff" \ --source-uri github.com/techiescamp/slsa \ --source-branch feature-branch ``` It throws an error with a message showing what is changed. ```bash FAILED: SLSA verification failed: expected branch 'feature-branch', got 'main': branch used to generate the binary does not match provenance ``` Also, if the attestation does not match the artifact being verified, the verification will fail with a "no matching attestations" error as given below. ```bash FAILED: SLSA verification failed: no matching attestations ``` ## Conclusion In this blog, we have seen the hands-on part of how we can use GitHub Actions and slsa-github-generator to build and attach SLSA provenance. As attackers are focussing more on the software supply chain, it is essential for [DevOps engineers](https://devopscube.com/become-devops-engineer/) to implement SLSA in the CI/CD pipelines. This way you can be proactive in securing the infrastructure rather can being reactive to supply chain attacks. ### How to Back Up and Restore a WordPress Site on Bluehost URL: https://devopscube.com/backup-wordpress-site-on-bluehost/ Last updated: 2026-06-15T06:51:05.000Z In this blog, you will learn how to backup a WordPress site on Bluehost and how to restore it. I decided to write this guide because we have a [WordPress website that is hosted on Bluehost](https://devopscube.com/setup-wordpress-on-bluehost/). One day, the website's data, theme, content, pages, and everything else suddenly disappeared, and I couldn't figure out what had gone wrong. It may have been caused by a plugin issue or something else, but I was never able to identify the exact cause. That experience made me realize how important website backups are even if you are on a managed hosting plan. To avoid situations like this, you should always keep a backup of your [WordPress site](https://devopscube.com/migrate-wordpress-site-digital-ocean-cloud-server/). If something goes wrong, you can quickly restore your website and prevent data loss. In this guide, I will walk you through **two methods** for backing up your site. These are the same methods we now regularly use to create backups. Also I will provide the steps to restore the backups. Let's get started. ## Method 1: Create a Backup using Bluehost Dashboard This is the easiest method you can use. Follow each step below to generate a backup of your website. ### Step 1: Login to the Bluehost Dashboard Use the login credentials you created when setting up your account. Enter them and click login. ![Enter the credentials and login to the Bluehost dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-91.png) ### Step 2: Click the Manage button In the dashboard, locate the **Manage** button, click on it. ![In the Bluehost dashboard, click the Manage button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-92.png) ### Step 3: Go to the Backups tab Next, you will see several options. In that, click the **Backups** tab. ![Click the backups button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-93.png) ### Step 4: Choose File Backups and Database Backups You will see two backup options: **File Backups** and **Database Backups**. Actually, it is important to download both backups. Let me tell you why. ![Click the file backups and database backups](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-94.png) - **File Backups** contain your WordPress files, themes, plugins, images, media uploads, CSS files, JavaScript files, and configuration files. - **Database Backups** contain your posts, pages, comments, user accounts, settings, and other website data stored in the database. Both backups are essential because they work together to fully restore your website. ### Step 5: Download the Backups Select the backup date you want to download. Next, select the **Download** option and click **Continue**. ![Choose the backups date, select the download option, and clikc continue](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-99.png) The backup file will be downloaded to your local computer. Repeat the same process to download the **Database Backup** as well. ## Method 2: Create a Manual Backup using Bluehost cPanel [cPanel](https://www.cpanel.net/?ref=devopscube.com) is a the a web-based control panel for [Linux based server management](https://devopscube.com/monitor-linux-servers-prometheus-node-exporter/). It provides easy to use graphical use interface to manage every aspect of your wordpress website. You can access it via the Bluehost dashboard. Follow the steps carefully, and dont miss a single line. If you miss it, you will be confused. ### Step 1: Go to the Bluehost dashboard Log in to the Bluehost account. On the left side menu, you will see a **Hosting** option, click on it. ![THis is the Bluehost account dashboard. Click the hosting option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-61.png) ### Step 2: Open cPanel On the Hosting page, you will find the cPanel button. Click it. This will redirect you to the cPanel tools page. ![Click the cPanel button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-62.png) ### Step 3: Click the backup option You will find many tools in the Bluehost cPanel. Locate the **Backup** option and click it. You can find it under the **Files** section, as shown in the image below. ![This is a cPanel of Bluehost. Where there are many tools available. In that click the Backup option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-63.png) ### Step 4: Download a full account backup Now, you will see a heading named **Full Backup**. Under that, you can see the **Download a Full Account Backup** button, click it. ![Click the Download a full account backup](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-64.png) Next, select the **Home Directory** option, enter your email ID, and click **Generate Backup**. 💡 ****Note**: It will take few minutes to generate the backup. Once it is completed, you get a notification in your Email. ![Select the home directoru, enter the Gmail ID, and click generate backup to start the backup generation](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-65.png) Once completed, Bluehost will create a backup that includes your website files, themes, plugins, configurations, pages, and more. Next, lets create a manual backup of your website files. **Step 1:** Go to the Bluehost dashboard, and click the **websites** option from the left-hand menu. **Step 2:** Click the **File Manager** button, as shown in the image below. ![Find the file manager in the Bluehost dashboard under hosting section](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-86.png) **Step 3:** Click **Settings** in the top-right corner of the page. ![click the setting button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-87.png) Also, select **Home Directory**, and make sure the **Show Hidden Files (dotfiles)** is enabled so you can view all website files. ![select the home directory, and put tick mark on show hidden files(dotfiles0](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-88.png) **Step 4:** Select all files and folders, then click **Compress**. ![Click the select all option. after that click Compress button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-89.png) **Step 5:** Choose **Zip Archive** and click **Compress Files** to create the backup. ![Now choose Zip](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-90.png) That's it. Once the compression process is complete, the backup ZIP file will be available in the location you selected. ⚠️ If you have any doubts about this method, refer to [Bluehost's official documentation](https://www.bluehost.com/help/article/how-to-create-a-manual-backup?ref=devopscube.com). ## Restoring Wordpress Website Now, lets look at how to restore the backups you created. Just like the backup process, there are two methods you can use to restore your website ### Method 1: Restore a WordPress Site using Bluehost cPanel Lets get started. **Step 1:** Login to your Bluehost account, go to the **Hosting** page, and click the **cPanel** button. ![go to hosting section and click the cPanel button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-119.png) **Step 2:** Click the **Backup** button under the **Files** section. ⚠️ If you created your backup using the cPanel method, this is the best restoration method you should use. ![Click the backup button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-120.png) **Step 3:** Choose the ZIP file that you downloaded during the backup process. Once the file is uploaded, click the **Upload** button to begin the restoration process. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-121.png) That's it! Now, let's look at the second method. ### Method 2: Restore using Bluehost ⚠️ ****Note:** If you used the first backup method, this is the recommended way to restore your website. **Step 1:** Go to the Bluehost Dashboard, and click the **Manage** button. ![Go to the Bluehost dashboard and click the manage button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-123.png) **Step 2:** Go to **Backups** on that page, and scroll down until you find the **Restore** option. ![Click the backups option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-124.png) **Step 3:** Click on the **Restore** **Website** button to start uploading the backup file. ![Click the restore button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-125.png) **Step 4:** Upload the backup file in ZIP format. Once the database has been updated, click **Continue**. Your website should be restored within a few minutes. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-126.png) ⚠️ ****Note:** In some cases, the backup file is already stored in your Bluehost account, and may appear automatically in the restore section. **Step 5:** Once the website is restored, ensure you all the website urls and images accessible are for end users. Also, keep an eye on [Google search console](https://search.google.com/search-console/about?ref=devopscube.com) for any website errors after restoration. ## FAQs Here are the frequently asked questions regarding backup. ### 1\. Can I schedule automatic backups for my WordPress site on Bluehost? Yes, you can schedule automatic backups for your WordPress site on Bluehost. Bluehost is offering a free weekly automatic backup. ### 2\. Are there any Bluehost backup plugins recommended for WordPress users? CodeGuard, Jetpack, UpdraftPlus, BackWPup, and Duplicator plugins are Bluehost backup plugins recommended for WordPress users. ## Conclusion In this guide, you learned two simple methods to back up a WordPress site on Bluehost hosting and two methods to restore it. A Wordpress website can get corrupted for many reasons. It could be a bad plugin or a malware. So timely backups can help you restore the website without loosing the content. If you have any questions about this guide or the backup methods, feel free to leave them in the comments below. We will be happy to help! ### How to Create AWS EKS Cluster Using eksctl URL: https://devopscube.com/create-aws-eks-cluster-eksctl/ Last updated: 2026-06-04T09:08:42.000Z In this [Kubernetes tutorial](https://devopscube.com/kubernetes-tutorials-beginners/), you will learn to create an AWS EKS cluster using eksctl. I will also cover the important eksctl concepts. By the end of this guide, you will be able to: - Build a fully working EKS cluster. - Setup on‑demand and spot instances for the cluster. - Configure key add‑ons needed for EKS production. - Adding users/roles to eks cluster. - Deploy Metrics Server for HPA and VPA - Understand how eksctl works behind the scenes. - Troubleshoot common EKS problems. ## Setup Prerequisites To work with `eksctl` you need to have the following installed and configured on your workstation. 1. AWS CLI installed and configured with required IAM permissions to launch eks cluster. 2. `kubectl` should be installed. ## Install eksctl `eksctl` installation instructions for Linux and MAC systems are given below. For other platforms, please check the [official documentation](https://eksctl.io/installation/?ref=devopscube.com) for detailed instructions. For Linux based system, you can install **`eksctl`** using the following commands. ```bash # for ARM systems, set ARCH to: `arm64`, `armv6` or `armv7` ARCH=amd64 PLATFORM=$(uname -s)_$ARCH curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz" # (Optional) Verify checksum curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz sudo mv /tmp/eksctl /usr/local/bin ``` For Mac, Use the following command to install eksctl on mac ```bash brew tap weaveworks/tap brew install weaveworks/tap/eksctl ``` ## Create EKS Cluster Using eksctl You can launch an EKS cluster using eksctl in two ways. 1. Using eksctl CLI and parameters 2. Using eksctl CLI and YAML config. Using CLI and parameters is pretty straightforward. However I would prefer the YAML config as you can have the cluster configuration as a config file. Create a file named `eks-cluster.yaml` ```bash vi eks-cluster.yaml ``` Copy the following contents to the file. You need to replace the **VPC id, CIDR, and subnet IDs** with your own ids. Replace `techiescamp` with the name of your **keypair**. ```yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: eks-spot-cluster region: us-west-2 vpc: id: "vpc-0951fe2c76e36eab9" cidr: "10.0.0.0/16" subnets: public: us-west-2a: { id: subnet-01b8ff5eaa0b39c10 } us-west-2b: { id: subnet-0e5de906289149fc0 } us-west-2c: { id: subnet-0185f1eee8a1a6561 } managedNodeGroups: - name: ng-workers instanceType: t3.small labels: { role: workers } minSize: 2 maxSize: 4 ssh: allow: true publicKeyName: techiescamp tags: Name: ng-db - name: ng-spot instanceType: t3.medium labels: { role: builders } minSize: 3 maxSize: 6 spot: true ssh: allow: true publicKeyName: techiescamp tags: Name: ng-spot addons: - name: aws-ebs-csi-driver version: latest - name: eks-pod-identity-agent version: latest addonsConfig: autoApplyPodIdentityAssociations: true ``` The above config has the following. 1. Cluster VPC configurations with public subnet spanning three availability zones. 2. Two managed node groups. One with regular **on-demand instances** and one with **spot instances**. 3. There are two add-ons. There are required one when working in real projects. - **aws-ebs-csi-driver:** For managing EBS (Elastic Block Store) volumes - **eks-pod-identity-agent:** For managing pod identities. It allows pods to assume IAM roles directly, without the need for long-lived AWS credentials. It maps the Kubernetes service account to an AWS IAM role, giving any pod using that service account access to to interact with AWS services (like S3, DynamoDB, etc.) without embedding AWS credentials directly into the application code. Instead, permissions are managed through IAM roles associated with specific service accounts 4. `autoApplyPodIdentityAssociations: true` : With this option eksctl automatically resolves and applies the recommended IAM roles and pod identity associations for the add-ons. For example, the aws-ebs-csi-driver addon requires certain IAM privileges to create and manage EBS volumes. It gets automatically created by this option. Now that you have a config ready, deploy the cluster using the following command. It will take a while for the cluster control plane and worker nodes to be provisioned. ```bash eksctl create cluster -f eks-cluster.yaml ``` The following security groups get created during the cluster launch. ![eks security groups created by eksctl](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-14-21.png) This eksctl configuration creates two node groups, one with on-demand and the other with spot instance, you can use the [Cluster AutoScaler](https://devopscube.com/cluster-autoscaler/) to manage node scaling for both node groups automatically. ## Connect to EKS cluster Once the cluster is provisioned, you can use the following AWS CLI command to get or update the [kubeconfig file](https://devopscube.com/kubernetes-kubeconfig-file/). ```bash aws eks update-kubeconfig --region us-west-2 --name eks-spot-cluster ``` You should see the following output. ```bash ➜ public git:(main) ✗ aws eks update-kubeconfig --region us-west-2 --name eks-spot-cluster Added new context arn:aws:eks:us-west-2:936855596904:cluster/eks-spot-cluster to /Users/bibinwilson/.kube/config ``` Verify the cluster connectivity by executing the following kubectl commands. ```bash kubectl cluster-info kubectl get nodes kubectl get po -n kube-system ``` ![eks cluster validation using kubectl](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-16.png) Click to view in HD ## Allow NodePorts on Worker Node Security Group By default, EKS does not allow external traffic to connect with the services inside the cluster. If you want to expose the services as **`NodePort`** and access them from outside the cluster, you need to add the NodePort range **`30000–32767`** to your worker nodes security group. Lets add the NodePort range to your worker nodes security group. Once the cluster is finsied creating, get the security groups attached to your worker node. ```bash aws ec2 describe-instances \\ --filters "Name=tag:eks:cluster-name,Values=eks-spot-cluster" \\ --query "Reservations[0].Instances[0].SecurityGroups[*].{Name:GroupName,ID:GroupId}" \\ --output table ``` You will get the security groups attached as shown below. In that copy, the ID of the **`eks-cluster-sg-eks-spot-cluster-*`** security group. ![AWS CLI output to list security groups attached to eks worker nodes](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-59.png) Then update the security group ID in the below command and run it. ```bash aws ec2 authorize-security-group-ingress \\ --group-id \\ --protocol tcp \\ --port 30000-32767 \\ --cidr 0.0.0.0/0 ``` It will add the NodePort range open to all IP (0.0.0.0/0) to your nodes security group. Now, update your security group ID and run the following command to verify if the rule has been added. ```bash aws ec2 describe-security-groups \\ --group-ids \\ --query "SecurityGroups[0].IpPermissions" ``` You will get a similar output as below. ![AWS CLI output showing NodePort range 30000-32767 added to security group](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-58.png) This means the NodePorts are exposed in your cluster, and you can expose your service as a NodePort and access it outside the cluster. 💡 Use NodePort only for dev cluster, for production use LoadBalancer to expose services. Also, you can attach an existing security group to your node group while creating instead of modifying the default security groups. You can add a field **`securityGroups.attachIDs`** inside the node group block as shown below. ![Attaching a custom security group to a node group in eksctl yaml config](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-57.png) ⚠️ This **`securityGroups.attachIDs`** field only works for an existing security group. ## Add a Default StorageClass By default there will be a gp2 based storage class in the cluster. However, if you try to create any EBS based persistent volume for any pod without specifying the gp2 storage class, the pod will be in pending state. To avoid that, you can create one by setting the `storageclass.kubernetes.io/is-default-class: "true"` annotation to a storage class as given below. ```yaml kubectl apply -f - <` with your actual user or role ARN. ```yaml accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: type: STANDARD accessPolicies: - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster ``` Once you add the config, you can apply only the the `accessConfig` using the following command. ```bash eksctl create accessentry -f eks-cluster.yaml ``` You can follow the same method to add multiple users or roles with specific permissions in the cluster. ## EKS Capabilities We can even enable the AWS managed platform tools, such as ArgoCD, AWS Controllers for Kubernetes, and Kubernetes Resource Orchestrator, over the Eksctl manifest. ``` capabilities: - name: dev-argocd type: ARGOCD roleARN: arn:aws:iam::123456789012:role/ArgoCDCapabilityRole - name: dev-ack type: ACK roleARN: arn:aws:iam::123456789012:role/ACKCapabilityRole ackServiceControllers: - s3 - rds - name: dev-kro type: KRO roleARN: arn:aws:iam::123456789012:role/KROCapabilityRole ``` Change the Role to the appropriate one. These tools are not run inside your cluster instead AWS manage them on their own infra so as the scaling and security. ## Install Kubernetes Metrics Server By default the [metrics server](https://devopscube.com/setup-kube-state-metrics/) is not installed on the EKS cluster. It is required in the EKS cluster for HPA or VPA to work. Without the metrics server, you will get the following error if you try to get the pod or node metrics. ```bash $ kubectl top nodes error: Metrics API not available $ kubectl top pods error: Metrics API not available ``` You can install the metrics server using the following command. ```bash kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml ``` Validate the deployment using the following command. It will take a couple of minutes for the metrics server deployment to be in ready state. ```bash kubectl get deployment metrics-server -n kube-system ``` Now if you check the node metrics, you should be able to see it. ```bash $ kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% ip-10-0-19-135.eu-west-2.compute.internal 29m 1% 410Mi 28% ip-10-0-3-139.eu-west-2.compute.internal 27m 1% 381Mi 26% ``` ## How Does eksctl Work? Now that we have deploying a working eks cluster using eksctl, lets understand how it works behind the scenes. This understanding will help you troubleshoot issues when working in real-world production setup. When you create an EKS cluster using eksctl (either via YAML configuration or command line parameters), it translates your specifications into CloudFormation templates. It then deploys the generated **Cloudformation template to** provision the necessary AWS resources for EKS**.** So, ideally, even though you deploy the YAML file using eksctl, behind the scenes, the **Cloudformation templates deploy** the clusters. **eksctl** is just a wrapper for Cloudformation. Once you execute the eksctl cluster create command and if you look at the AWS Cloudformation dashboard, you can see all the Cloudformation stacks deployed for creating the EKS clusters. Here is an example. ![eksctl eks cloudformation stacks](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-15-12.png) Also, when you update the cluster configs, it again creates a Cloudformation stack to update the new configs. ## Increase EKS Pods Per Node You can host **110 Pods per node** is in a standard Kubernetes cluster. However, For EKS by default, there is a **pod per node limitation** based on the instance type. You can increase this limit by setting **`maxPodsPerNode`** parameter in the YAML For example, If you dont parameter, the default and recommended pods per node for `t3.medium` instance is `17`. For testing purposes, I am giving the value `110`, so that I can create more than `17` pods in each node. If you want to calculate the recommended pods for your node, then first download this script. ``` curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh ``` Giving executable permission for this script ``` chmod +x max-pods-calculator.sh ``` Before you run the script, you need two things, one is **instance type** and the other one is the **cni version.** You know the instance type, so we have to find the **cni version**. for that, use the following command. ``` kubectl describe daemonset aws-node --namespace kube-system | grep Image | cut -d "/" -f 2 ``` You will get a similar output ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-34-8.png) Here, `1.15.3-eksbuild.1` is the cni version. Now, we can run the script. ``` ./max-pods-calculator.sh --instance-type t3.medium --cni-version 1.15.3-eksbuild.1 ``` If you are also using the `t3.medium` instance, then it will give the output is `17`. To create a cluster using the above configuration, use the following command. ``` eksctl create cluster -f eks-cluster.yml ``` After the cluster creation, use the following command to enable more IPs for the network interface. ``` kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true ``` ## Specifying Kubernetes Version in eksctl There are scenarios where you need to deploy a specific version on Kubernetes in EKS eksctl supports version parameter to specify the required supported version. Here is an example. ```yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: eks-spot-cluster region: us-west-2 version: "1.31" ``` ## Delete & Recreating Node Group If you want to change the instance type of a node group, you will have to delete the node group and recreating it again. For example, ```bash eksctl delete nodegroup \ --cluster \ --name ``` When you try to delete a node group, you might get the following *`pods are unevictable`* error. ```bash 2025-11-16 16:43:38 [!] 1 pods are unevictable from node ip-172-31-43-101.us-west-2.compute.internal ``` To rectify this, you can use the --disable-eviction flag with eksctl as shown below. ```bash eksctl delete nodegroup \ --cluster \ --name \ --disable-eviction ``` ## Possible eksctl Errors Based on my hands-on experience with eksctl, I've documented common issues and their solutions to save you troubleshooting time. This section contains regularly updated solutions for challenges I've encountered in different environments. Let's look at some of the possible eksctl errors. ### Stack Already Exists Error If you try to create a NodeGroup using **`eksctl`** with an existing Cloudformation stack, you will get the following error. ``` creating CloudFormation stack "stack-name": operation error CloudFormation: CreateStack, https response error StatusCode: 40, AlreadyExistsException: Stack [stack-name] already exists ``` To rectify this, Go to the Cloudformation dashboard and delete the cloud formation stack for the NodeGroup. ### Subnet Autoassign Public IP Error ``` Resource handler returned message: "[Issue(Code=Ec2SubnetInvalidConfiguration, Message=One or more Amazon EC2 Subnets of [subnet-0eea88c0faa8241d4, subnet-05ff592bd0095ad75] for node group ng-app does not automatically assign public IP addresses to instances launched into it. If you want your instances to be assigned a public IP address, then you need to enable auto-assign public IP address for the subnet ``` To rectify this error, go the subent settings and enable "**`Enable Autoassign Public IPv4 Address`"** Option. ![EKS Subnet Autoassign Public IP Error](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-12.png) Click to view in HD ### invalid apiversion “client.authentication.k8s.io Error This error primarily happens due to IAM RBAC issues. We have created a detailed blog explaining the solutions for this issue. Please refer [client.authentication.k8s.io Error](https://devopscube.com/invalid-apiversion-client-authentication-k8s-io/) blog for more information. ### Latest EKS version is not available in eksctl If you are trying to deploy the latest Kubernetes version with eksctl, you might get the following error. ``` Error: invalid version, supported values: 1.23, 1.24, 1.25, 1.26, 1.27, 1.28, 1.29, 1.30 ``` To set up the latest Kubernetes versions in EKS, ensure you have the most recent version of the `eksctl` utility. Check for updates and upgrade it to the latest version if necessary. Then you will be able to deploy the latest version available in EKS. ## Cleanup EKS Resources When you finish testing your EKS setup, make sure you clean up the cluster and all related AWS resources. This helps avoid unwanted charges. Use the following command to delete the cluster. ```bash eksctl delete cluster --name eks-spot-cluster --region us-west-2 ``` This removes Control plane, Managed node groups and CloudFormation stacks ## Conclusion We have looked into AWS EKS cluster creation using eksctl CLI. When it comes to production deployment, ensure you follow the [kubernetes cluster best practices.](https://devopscube.com/key-considerations-kubernetes-cluster-design-setup/) You can also use tools like [Amazon Q CLI](https://devopscube.com/set-up-amazon-q-cli/) to manage EKS clusters. If you are planning for [Kubernetes certification](https://devopscube.com/best-kubernetes-certifications/), you can use eksctl to deploy test clusters very easily. Also, check out the kubernetes certification coupon to save money on CKA, CKAD, and CKS certification exams. ### Set Up WordPress on Bluehost in 9 Minutes (Detailed Beginners Guide) URL: https://devopscube.com/setup-wordpress-on-bluehost/ Last updated: 2026-06-15T06:57:06.000Z In this guide, you will learn to purchase the Bluehost hosting, setup WordPress website on Bluehost, create a website from scratch, and install the essential plugins for WordPress. According to [WordPress](https://wordpress.com/blog/2025/04/17/wordpress-market-share/?ref=devopscube.com), WordPress holds around **61.4%** of the CMS market share, and more than **65,000+ plugins** are available. Also, based on the [Bluehost](https://www.bluehost.com/?ref=devopscube.com) report, more than **5 million** WordPress websites worldwide are hosted on Bluehost. In fact, Bluehost is **officially recommended** by [WordPress.0rg](https://wordpress.org/?ref=devopscube.com), making it one of the best options for hosting a WordPress website. That is why we are using Bluehost for one of our Wordpress websites and recommending it to you as well. **We documented all the steps** involved from purchasing a hosting plan to making it production-ready. So by the end of this guide, you will have a fully operational production ready Wordpress website with recommended settings. Lets get started. ## Purchase a Bluehost Hosting Plan The first step in getting started with Bluehost is purchasing a hosting plan for Wordpress website. Follow these steps given below very carefully. If you miss any step, you may get confused. ### Step 1: Visit the Bluehost official site First, go to the [Bluehost official website](https://www.bluehost.com/special/homenew?ref=devopscube.com). On the homepage, you will see the '**View WordPress Plans'** option, click on it. ![Bluehost WordPress first page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-21.png) ### Step 2: Choose your Plan Select a plan based on your needs. If you are confused about which plan is right for you, here is a simple breakdown to help you choose. - **One site** \- Best for beginners, personal blogs, or anyone creating their first website. If you are starting your first website, this is a great plan to begin with. - **Starter** \- Similar to the One Site plan, but it allows you to host up to 10 websites and provides more resources. If you are migrating from another hosting provider and your website gets around 40K monthly visitors, this plan is a better choice. - **Business essentials** \- It is for growing websites that need better performance, more power, and additional resources. - **eCommerce Essentials** \- It is best for online stores. If you want to sell products online, this is the best plan for you. Now, lets continue the purchasing process. In my case I am choosing the **One Site** plan. Click the '**Choose Plan'** button to proceed. ![These are the WordPress bluehost plans ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-22.png) ### Step 3: Enter your domain Bluehost **offers free domain name** with each hosting purchase. So if you don’t have a domain yet, enter your preferred domain name and click **Search for Domain.** You will then see whether your desired domain is available. ⚠️ ****Note:** Sometimes, your preferred domain may not be available. So, it is better to check availability before finalizing your site name. This will save you time. ![This is the bluehost page for searching for new domain or user can enter their existing domain](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-23.png) If you already have a domain, simply enter your domain name and click the **Use this domain name** button. In my case I already own the mlopshub.com. So am going ahead and using it. ![If user has existing domain. They should enter the domain and click use this domain name](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-24.png) ### Step 4: Create your account Next you need to create your account. For that you can sign up using your Email, Apple ID, or GitHub account. You will also see some recommended add-ons. If you need them, you can select them. Otherwise, leave them unchecked, as they will add extra cost. Then, scroll down. ![TO create the account, user have to enter their Gmail, Apple ID, or GitHub ID. Also there is a add-ons, if the user needs it, they can put a tick mark](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-25.png) ### Step 5: Enter billing address Bluehost offers multiple payment methods, including credit/debit cards, PayPal etc.. For example, if you choose to pay using a credit card, enter your card details along with your billing address. ![User need to enter the billing address](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-26.png) Once you are done with the billing address, next, choose your hosting term monthly, 1 year, 2 years, 3 years, or 4 years. 💡 If you plan to use Bluehost for the long term, choosing a 3-year plan can help you ****save a whopping 78%** on hosting charges. What none tells you is that the ****renewal rates are usually higher** than the initial price. So, locking the maximum discount when possible. ![User need to choose their term based on their preference](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-27.png) ### Step 6: Submit Payment Tick the terms and conditions checkbox and click the **Submit Payment** button. ![Click submit payment to purchase Bluehost](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-28.png) Thats it! Your Bluehost hosting purchase is complete, and your account is now ready. The next Step is connecting your domain if you have the domain in different providers like [GoDaddy](https://www.godaddy.com/?ref=devopscube.com), [Cloudflare](https://www.cloudflare.com/?ref=devopscube.com), or any other platform where you purchased your domain. Dont skip this step, it is very important. ## Steps to Map Bluehost Server To a Domain Name 📌 ****Important Note:** Ignore this section, if you have purchased the free domain along with the hosting. Becuase Bluehost will automatically like the domain name to the default Wordpress setup. No lets look at how to connect the Bluehost server to a domain name in a few steps. ⚠️ ****Note:** We chose Cloudflare for our domain. Based on your DNS providers the settings would change a bit. But overall steps remain the same. ### Step 1: Open the Bluehost dashboard First, log in to your Bluehost account. Once you log in, on the left side menu, you will see the **Websites** option, click on it. ![click the websites option from the Bluehost dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-29.png) Now, click the **Manage** button on the right side. ![Click the manage button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-30.png) ### Step 2: Open the domains tab On the website's page, click the **Domain** tab. This section allows you to connect a domain to your Bluehost hosting account. ![Click the domains option and open the page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-31.png) ### Step 3: Start the Domain Mapping Process Now, under the domain section, you will see a button named **Finish Connection**. Click it. Bluehost now starts to guide you through the domain mapping process step by step. ![Now click the Finish Connection](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-32.png) Next, Bluehost will ask the following question, answer it based on your configuration. 👉 These questions help Bluehost understand, where your domain is registered, which DNS provider your are using, and how your domain should connect to the hosting server. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-33.png) After answering the questions, Bluehost will show a warning popup which is shown in the image below. ![click the continue button to continue the process](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-34.png) Basically, this warning is normal and explains that the DNS settings will be updated by Bluehost for you. Click **Continue** to move to the next step. ### Step 4: Choose your DNS provider Next, Bluehost will ask you to select your DNS provider. ![choose Godaddy or other provider](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-35.png) If your provider is not shown first, then click **select a different provider,** which will show more DNS providers, and choose the provider that you are using. ![User have to select the provider, where they purchase the domain from](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-36.png) My DNS provider is CloudFlare, so I selected it, and Bluehost asked for authorization from Cloudflare to finish the domain mapping. ### Step 5: Authorize DNS access So, after selecting the DNS provider, it will ask permission to access your DNS, and it is a one-time process. ![Click the authorize with Cloudflare button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-37.png) Once the authorization is completed, Bluehost will automatically configure the required DNS records. ![Click authorize button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-38.png) After the setup is finished, you will see a message that your configuration is successful, which is shown in the image below. ![The mlopshub domain is authorized](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-39.png) Now, just go to the domain page, and you see your domain, type, DNS status, and SSL status, as shown in the image below. ![check the domain status. This is the page to check the domain status such as its type, DNS status and SSL status](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-40.png) Thats it, the domain mapping is completed. ## Create Your First Wordpress Website in Bluehost Now, let me walk you through creating your website in Bluehost using WordPress. ### **Step 1:** Open the WordPress admin dashboard In your Bluehost dashboard page, you will see a button called **WordPress Admin** that helps you login and setup a wordpress website**.** Click on it. ![Click the WordPress admin](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-60.png) This will redirect you to the WordPress setup section. Here, you can either import your existing WordPress site or create a new site in seconds with the help of AI in Bluehost. ![User can choose either site creator or import an existing WordPress site](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-61.png) Since we are creating a new website from scratch, choose **Site Creator**. ### **Step 2:** Enter your website details Bluehost will ask for your website information such as site title, site type, and description. Once it is completed, click the **next** button. ![User have to enter the site details such as site title, site type, describr your site, and click next](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-62.png) ### **Step 3:** Upload or create a logo Now you have to upload the logo of your site or you can create with AI. ⚠️ ****Note:** I would suggest you to create your own logo. Dont use this in-built AI to create it because it is in beta version and it won't be that accurate. ![uplaod the site logo or create using Bluehost AI](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-63.png) It will take a few minutes to create your website. ![Bluehost is taking time is create a website](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-64.png) Oops! Something went wrong. If you something appear like this, no need to worry about this. Just click the back button. ![there is a error caused while creating website. But it is not a problem](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-65.png) ### **Step 4:** Access the WordPress dashboard You will see your WordPress dashboard. This is the main control panel of your site, and you can start creating your website from here. There are many pre-templates available, let me show you. In the menu bar, go to Appearance and select **themes**. ![Select themes from the WordPress dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-66.png) There are four simple free templates available. If you are ok with this template, you can go with it. If you want more premium templates, just click **Add Theme** as shown in the image below. ![This is the WordPress's theme page. User can click add theme and integrate new themes for their website](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-67.png) You will find 60+ free themes that you can use on your site based on your website category. For example, if you want to create a blogging website, you can choose a blogging theme like [**Blog Gen**](https://ascendoor.com/themes/blog-gen-pro/?ref=devopscube.com) or any similar blog-focused template. Click the install button, to install the theme. ![once the theme is selected, click install button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-68.png) Once it is installed, it will show the activate button, click it. ![once the theme is installe, click the activate button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-69.png) Yes, now you have this template, and it is activated for my website. ### **Step 5:** Customize your website ![Now, click the customize button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-70.png) In the customization page, you can edit the site identity, colors, header image, widgets, and more. ![This is the dashboard to customize the website page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-71.png) It is very simple, because it is just drag and drop. So, this is how the site looks, once you start publishing the blog. ![This is one of the template of WordPress for blogging site](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-72.png) Thats it. Now you have to install a few plugins, which would be very helpful for your site, while writing blogs and all. ### **Step 6:** Install the Required & Recomended Plugins When it comes to Wordpress, there are essential plugins you should have in your website. For example, for SEO, spam protection, website security, website performance etc. ⚠️ I recommend installing all the plugins listed below because I have been personally using them for the past 10+ years in my Wordpress setup. Here are the recommended free plugins. 1. [Rank Math SEO](https://rankmath.com/?gad%5Fsource=1&gad%5Fcampaignid=20674891642&gbraid=0AAAAAqYXFywNDrCODCeAx6v-CHjOeCebm&gclid=CjwKCAjw5s%5FQBhAdEiwADD%5FgBn6rGbyxcwiNxOEvzcmESdGUEQLhn3dnYiSy7%5FGO1XI2tHSIX4HyjRoCzvkQAvD%5FBwE&ref=devopscube.com) \- This tool helps with SEO optimization. It is a must have plugin. 2. [WP Fastest Cache](https://wordpress.org/plugins/wp-fastest-cache/?ref=devopscube.com) \- It will handle caching, and database optimization, which will improve the website's performance. It is essential for [passing the google core web vitals](https://developers.google.com/search/docs/appearance/core-web-vitals?ref=devopscube.com) 3. [Akismet Anti-spam](https://wordpress.org/plugins/akismet/?ref=devopscube.com) \- Protects your blog from spam comments and spam contact form entries. 4. [WPForms](https://wordpress.org/plugins/wpforms-lite/?ref=devopscube.com) \- It is for creating contact forms, survey forms, and other types of forms. 5. [Jetpack](https://wordpress.org/plugins/jetpack/?ref=devopscube.com) \- It is for website, analytics, security, performance, and marketing tools. 6. [WPS Hide Login](https://wordpress.org/plugins/wps-hide-login/?ref=devopscube.com) \- A very light plugin that helps you create custom login URLs and hide the default wp-admin login page. To install a plugin follow the steps given below. In the dashboard, go to **Plugins**, and click Add **Plugin**. ![Click the add plugins from the WordPress dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-73.png) For example, if you want to install the **Rank Math SEO plugin**, simply type the plugin name in the search bar, and it will automatically appear in the results. Now, click the **install** button. ![browsing page for WordPress plugins](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-83.png) Next, go back to the **Plugins** page. You will see the installed plugin there. Click the **Activate** button to enable it. ![Activate the pluging](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-84.png) That’s it. The plugin is now activated on your website. The same steps apply to all the plugins you want to install. ⚠️ ****Important Note:** Many users make the mistake of installing so many plugins. Too many plugins can make your **website bloated* and make your website load slow. So do not install **random plugins.* Always verify if the plugin is light weight and if you really need it. See if the plugin is **being updated* by the developer. If not it could also introduce **security vulnerabilitie*s in your website. ## Bluehost Wordpress Login Once your entire setup is complete, there are two ways to log in to your Bluehost WordPress website. ### Method 1: Using Wordpress Login URL The login URL for the WordPress site is your domain name folllwed by **`/wp-admin`** For example, in our case its **`mlopshub.com/wp-admin`** So open your web browser and enter `https://yourdomain.com/wp-admin`, as shown in the image below. ![ways to login to wordpress directly](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-5.png) It open up the admin login page. Enter your WordPress username and password. You can also check the **Remember Me** option so that you dont have to log in frequently. Once you have entered your credentials, click the **Log In** button as shown below. ![Enter the wordpress login credentials and click login](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-6.png) That's it! You have successfully logged in to your WordPress website directly without logging in to your Bluehost account. ![WordPress dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-7.png) Now, lets look into, how you can Login to WordPress using Bluehost. ### Using Bluehost Wordpress Login **Y**ou can also login to Wordpress using the Bluehost account Open your web browser and search for **Bluehost Login**. Click the first result that appears in Google. ![Click the Bluehost website to enter into the site](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-8.png) Once you are on the Bluehost website, click the **Log In** button located in the top-right corner. ![This is the Bluehost page. Click the login button to login](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-9.png) **Step 2:** Enter your Bluehost credentials Enter your Bluehost username and password, then click **Log In**. ![Enter the credentials Bluehost account](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-10.png) **Step 3:** Go to Websites, and click WordPress Admin After logging in to your Bluehost dashboard, click **Websites** from the left-hand menu. You will see a **WordPress Admin** button next to your website. Click it to access your WordPress dashboard. ![This is the Bluehost dashboard. Go to the websites page, and click WordPress Admin button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-11.png) Thats it! This is another way to log in to your WordPress website through your Bluehost account. ![Bluehost dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/06/image-12.png) ## Wordpress Backup & Restore A key part in managing the production Wordpress website is backup and restore. You can call it "***Day 2 Operations***". You need to perform timely backups so that you can restore the website in case something goes wrong. We have a published a detailed guide that explains how to [backup and restore Wordpress website on Bluehost.](https://devopscube.com/backup-wordpress-site-on-bluehost/) ## Conclusion In this blog, I have explained the complete end-to-end process of creating a [WordPress website](https://devopscube.com/wordpress-installation-guide/) using Bluehost. Whether you are a beginner or someone with experience, I would say this is one of the best and most budget-friendly options to get started with. If you a small or medium business looking for [cloud based scalable Wordpress ](https://devopscube.com/setup-wordpress-on-cloudways/)hosting, you can look at Cloudways. You can read our detailed [Cloudways review here.](https://devopscube.com/cloudways-review/) If you have any doubts or questions about this guide, feel free to leave them in the comments section. We will be happy to help you out. ### FinOps X Conference Discount Code 2026 (Limited Offer) URL: https://devopscube.com/finops-x-conference-discount-code/ Last updated: 2026-06-01T12:20:13.000Z The [**FinOps**](https://www.finops.org/?ref=devopscube.com) **X conference** is the largest FinOps event in the world, which is organized by the FinOps Foundation. To help you save costs on the conference registration, we have listed a discount code that allows you to get the maximum savings for FinOps X 2026. ## \[Save 25%\] FinOps X Conference Ticket Discount Code (Few Days Left) Currently, you can get up to a 25% discount on FinOps X tickets. Use the code at checkout to claim the offer. [Get the Discount](https://x.finops.org/register/?ref=devopscube.com) **Coupon**: Use Code **COMTECHIESX26** at checkout Here is the before and after discount price of the ticket. | Ticket Type | Price | Savings | | ----------------- | ----- | ------- | | Regular Ticket | $1199 | — | | Discounted Ticket | $899 | $300 | **Dates:** June 8-11, 2026 **Location:** San Diego, California **Venue:** [The Marriott Marquis, San Diego](https://x.finops.org/venue/?ref=devopscube.com) 💡 ****Tip:** Register early or go with your team to get discounts ## Steps to Claim the Discount Let us walk you through the step-by-step process to get your ticket discount. ### Step 1: Visit the official FinOps X website Go to the search and type [**FinOps X website**](https://x.finops.org/?ref=devopscube.com)**.** ### Step 2: Click on Register On the first page itself, you will see the **Register For FinOps X** button, click it. ![Click the register now button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-56.png) ### Step 3: Choose your ticket type In the ticket type, choose **End-user practitioners and member vendors,** and scroll down. ![choose End-user practitioners and member vendors](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-57.png) You can also save up to 68% on the FinOps Certifications as an attendee addon. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-68.png) 68% off on the FinOps Certifications for FinOps X attendees ⚠️ ****Note:** If you are an end-user practitioner from government agencies with a government email address, choose the second option. (It's a fixed price) If you are an SME from a vendor service that is not a member organization, choose the third option (fixed price). ### Step 4: Fill your details Now you have to fill in the details such as name, work email address, phone no, country, LinkedIn bio, job title, emergency contact name, and dietary requirements. ![Fill the register to attend the conference.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/Untitled-design--22-.png) Once you have filled in the details, put a tick mark and click the **Continue Application** button for the next step. ![put a tick mark and click the Continue Application button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-58.png) ### Step 5: Apply promo code At the checkout page, enter the promo code **COMTECHIESX26** and click Apply. ![enter the promo code COMTECHIESX26](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-60.png) You can see here, you **saved $300**, which is 25% OFF. ![Saved $300 using the coupon code](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-61.png) ### Step 6: Complete the Payment Enter your debit/credit card details, and **Click Pay** Now button. ![enter the card details](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/Untitled-design--23-.png) You will receive an OTP, and complete the payment. That's how you will get a conference ticket with a discount. ## **Conference Agenda** We have listed the [agenda](https://x.finops.org/agenda/?ref=devopscube.com) of this conference in the table below. | Date | Time | Agenda Item | | ------------- | ------------------- | ------------------------------------------------------- | | June 7, 2026 | 4:00 PM – 7:30 PM | Early Registration & Badge Pickup | | June 8, 2026 | 7:00 AM – 7:00 PM | Registration & Badge Pickup | | June 8, 2026 | 8:00 AM – 4:00 PM | Pre-Con Event (Pre-Con Ticket Required) | | June 8, 2026 | 9:30 AM – 11:00 AM | Practitioner Re-Certification (Pre-Con Ticket Required) | | June 8, 2026 | 9:30 AM – 11:00 AM | FinOps Framework Chalk Talk (Pre-Con Ticket Required) | | June 8, 2026 | 12:00 PM – 7:00 PM | FinOps Exec (Invite Only) | | June 8, 2026 | 12:45 PM – 2:15 PM | Pre-Con Networking Lunch (Pre-Con Ticket Required) | | June 8, 2026 | 2:15 PM – 3:45 PM | ITFM Chalk Talk (Pre-Con Ticket Required) | | June 8, 2026 | 4:00 PM – 7:00 PM | Welcome Reception (All Badged Attendees) | | June 9, 2026 | 7:00 AM – 8:15 AM | Breakfast in the Expo Hall | | June 9, 2026 | 8:20 AM – 10:00 AM | Day 1 Keynote | | June 9, 2026 | 10:00 AM – 10:30 AM | Snack Break in the Expo Hall | | June 9, 2026 | 10:30 AM – 11:15 AM | IBM Cloudability Customer Breakout | | June 10, 2026 | 7:00 AM – 8:15 AM | Breakfast in the Expo Hall | | June 10, 2026 | 8:20 AM – 10:00 AM | Day 2 Keynote | | June 10, 2026 | 10:00 AM – 10:30 AM | Snack Break in the Expo Hall | | June 10, 2026 | 6:00 PM – 10:00 PM | FinOps X Closing Party | | June 11, 2026 | 8:00 AM – 11:00 AM | Closing Networking Breakfast | ## About FinOps X Conference? The **FinOps X Conference** is basically a flagship global event, which is organized by the FinOps Foundation. This is focused entirely on cloud cost optimization, financial operations (FinOps), and technology value management. This is the conference where professionals who manage cloud spending come together to, - Learn how to optimize cloud and AI costs - Share real-world FinOps strategies and frameworks - Explore tools and technologies that improve cost efficiency - Network with industry experts and practitioners In this conference, more than **2,500 professionals** will participate, 150+ sessions, and leading cloud vendors & practitioners will be there. ## Who Should Attend FinOps X? If you are the person who is asking questions like, 1. Why is our cloud bill increasing every month? 2. How can we reduce infrastructure cost without breaking things? 3. Are we using cloud resources efficiently? Then, this conference is literally for you to attend. ## FAQs Here are the frequently asked questions about the FinOps X conference. ### 1\. What is the FinOps ticket price? Here are the breakdowns of three ticket pricing. - $1199 for End-user practitioners and member vendors - $499 for Government employees - $1999 for Non-member vendor SME ### 2\. Is there a FinOps X discount code? Yes, use **COMTECHIESX26** code and get upto 25% discount. You will save around $300\. This discount is only applicable to end-user practitioners and the member vendors' option. ### 3\. Is FinOps X worth attending? Of course. Especially if you are working with cloud infrastructure and cost optimization. One idea from the conference can help you optimize your cloud costs. ### 4\. What is included in the ticket? Your ticket includes a welcome reception, meals, the official party, and often a discount on FinOps Foundation certifications. ## Conclusion If cloud cost is part of your work, FinOps X is one of those events that can genuinely change how you think about spending in the cloud. Because you will gain strategies and ideas from the event, it can save you more when it comes to cloud cost optimization. So, if it aligns with your goals, it’s worth attending. Grab your discounted ticket before prices go up. 🎁 If you are planning to take the [Kubernetes certification](https://devopscube.com/best-kubernetes-certifications/), then use the [Linux Foundation coupon](https://devopscube.com/linux-foundation-coupon/) to get a discount and reduce the pricing. ### What is Helm NOTES.txt and How Do You Create One? URL: https://devopscube.com/helm-notes-txt-file/ Last updated: 2026-05-25T05:04:07.000Z When you install a [Helm Chart](https://devopscube.com/create-helm-chart/), at the end of the deployment you usually see operational instructions in your terminal like what to do next, commands to check the service health, Chart repository, etc. This is done by via NOTES.txt in Helm chart. In this blog, you will learn about: - What is Helm Notes.txt - How it works and its use cases - How to view notes before and after chart installation. - Simple hands-on guide to show the Notes.txt functionality. - How to suppress notes output Lets get started. ## What is NOTES.txt in Helm Chart? Lets understand NOTES.txt with a use case. Lets say you are developing a Helm chart to deploy a backend application. After the chart deployment, you want to print the the key details about the deployment like its configured DNS endpoint, API paths etc.. **`NOTES.txt`** solves this. **`NOTES.txt`** is an **optional text file** in the Helm chart that contains the **post install instructions** that is displayed in the terminal after a successful Helm deployment or upgrade command. We need to add **`NOTES.txt`** under templates as shown below. ```bash web-app/ ├── Chart.yaml ├── values.yaml └── templates/ ├── deployment.yaml ├── service.yaml └── NOTES.txt ``` **`NOTES.txt`** is processed with **Helm rendering engine** even though it is text file. So it supports **GO templating.** Instead of sending anything to [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) API, it just **prints the rendered output to the terminal** with the operational instructions you added to it. With Go templating support, it can get dynamic values like release name, namespace used, Chart.yaml, values.yaml, etc.. You can also make use of values from the [\_helpers.tpl named templates](https://devopscube.com/%5Fhelpers-tpl-file-in-helm-charts/). This way the outputs can add more value to chart users. ![image illustrating the helm notes.txt workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-58.png) ## NOTES.txt Example The best way to understand **`NOTES.txt`** is through community Helm Charts. If you download any **community Helm charts**, you can find this file under **`/templates`** folder with other template files. For example, Grafana's Helm charts NOTES.txt file gives you the post install [kubectl](https://devopscube.com/kubectl-set-context/) commands to get the admin password as shown below. ![example helm output based on the context in notes.txt](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-43.png) Here is a custom **`NOTES.txt`** example for your reference. It is a combination of plain text instructions and Go templates to get the rendered chart values dynamically. ```bash 1. Get the application URL: {{- if .Values.ingress.enabled }} http://{{ .Values.ingress.host }} {{- else }} export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} \ -l "app.kubernetes.io/name={{ .Chart.Name }}" \ -o jsonpath="{.items[0].metadata.name}") kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080 {{- end }} 2. Get the admin password: kubectl get secret --namespace {{ .Release.Namespace }} {{ .Release.Name }} \ -o jsonpath="{.data.password}" | base64 --decode ; echo 3. Check the pod status: kubectl get pods -l app.kubernetes.io/name={{ .Chart.Name }} \ -n {{ .Release.Namespace }} ``` It prints the following. - Ingress URL - How to get the admin password. - How to validate deployment by checking the pod status. Now that you have an understanding of how NOTES.txt works, let's do a simple hands-on in the next section. ## Viewing Notes Before Installation If you want to render the post installation instruction from the Notes.txt before the chart installation, you need to perform a dry run. For example, here is the command that displays the notes of the [Prometheus helm chart.](https://devopscube.com/setup-prometheus-helm-chart/) ``` helm install prometheus prometheus-community/prometheus \ --dry-run --debug ``` Post installation there is a helm command to render the notes that we will look at it in the next section. ## Helm NOTES.txt Hands-on Example In this section, we will create a Helm chart boilerplate with NOTES.txt and modify it to print the custom information we add to it. ### Step 1: Create a Helm Boilerplate Run the following command to create a boilerplate. ```bash helm create web-app ``` ### Step 2: Modify the Existing NOTES.txt file Open the NOTES.txt file in an editor. ```bash vi web-app/templates/NOTES.txt ``` Replace the default notes with the following content. It contains plain text and Go template to get the Dynamic chart information. ```bash Release "{{ .Release.Name }}" deployed to namespace "{{ .Release.Namespace }}". ------------------------------------------------------- Get the secret your app uses: kubectl get secret {{ .Release.Name }}-secret \ -n {{ .Release.Namespace }} \ -o jsonpath="{.data.password}" | base64 --decode This decodes and prints the password your app is reading from Kubernetes Secrets. ------------------------------------------------------- Check if your app is healthy: kubectl get pods -l app.kubernetes.io/name={{ .Chart.Name }} \ -n {{ .Release.Namespace }} This lists all pods for this release. STATUS should show "Running" and READY should show "1/1" before you send any traffic. ------------------------------------------------------- ``` You can validate the Notes using the following dry-run command. ```bash helm install web-app ./web-app -n frontend --create-namespace --dry-run --debug ``` ### Step 3: Deploy the Helm Chart Now, run the following command to deploy the chart. ```bash helm install web-app ./web-app -n frontend --create-namespace ``` After installation, you will see the information in the **`NOTES.txt`** file in the output as shown below. ```bash NAME: web-app LAST DEPLOYED: Wed May 20 11:15:17 2026 NAMESPACE: frontend STATUS: deployed REVISION: 1 DESCRIPTION: Install complete NOTES: Release "web-app" deployed to namespace "frontend". ------------------------------------------------------- Get the secret your app uses: kubectl get secret web-app-secret \ -n frontend \ -o jsonpath="{.data.password}" | base64 --decode This decodes and prints the password your app is reading from Kubernetes Secrets. ------------------------------------------------------- Check if your app is healthy: kubectl get pods -l app.kubernetes.io/name=web-app \ -n frontend This lists all pods for this release. STATUS should show "Running" and READY should show "1/1" before you send any traffic. ------------------------------------------------------- ``` ### Step 4: View Helm Notes After the chart installation, you can use the following command to view the notes again in the terminal. ```bash helm get notes web-app -n frontend ``` This will list only the notes, as shown below. ```bash NOTES: Release "web-app" deployed to namespace "frontend". ------------------------------------------------------- Get the secret your app uses: kubectl get secret web-app-secret \ -n frontend \ -o jsonpath="{.data.password}" | base64 --decode This decodes and prints the password your app is reading from Kubernetes Secrets. ------------------------------------------------------- Check if your app is healthy: kubectl get pods -l app.kubernetes.io/name=web-app \ -n frontend This lists all pods for this release. STATUS should show "Running" and READY should show "1/1" before you send any traffic. ------------------------------------------------------- ``` ## Suppressing Notes When you use CI/CD tools like [Github actions](https://devopscube.com/docker-image-build-promotion-piepeline/) or [Jenkins](https://devopscube.com/jenkins-2-tutorials-getting-started-guide/), you might not want to clustter the output logs with notes output. In such scenarios you can suppress the notes using output redirection. Here is an example. ``` helm install web-app ./web-app -n frontend --create-namespace > /dev/null ``` 💡 In Helm 3, you can hide chart notes using the `--hide-notes` flag. However, [Helm 4](https://devopscube.com/install-configure-helm-kubernetes/) removed/deprecated this flag. So if you are using Helm 4, you need to use shell redirection as given above. ## Conclusion In this guide we looked at what is NOTES.txt and how to setup post installation instructions using NOTES.txt. If you are using community chart, pull the charts to local, modify the NOTES.txt as per your requirements and then deploy it. By doing this, you can remove all the unwanted information from the output and keep only the information that helps in moving forward smoothly. ### Deploy ML Model on Kubernetes with KServe (Step-by-Step Guide) URL: https://devopscube.com/deploy-ml-model-kubernetes-kserve/ Last updated: 2026-07-23T11:10:57.000Z In this guide, you will learn how to deploy a machine learning model on a Kubernetes cluster using **KServe** model serving. Here is what we will cover in this guide. - What is Kserve? - Deploying KServe on Kubernetes - Deploying a sample scikit-learn ML model using KServe - Test the deployed model using its inferencing endpoint. 🎯 ****Learning Focus**: The goal of this guide is to understand how to deploy ML models with KServe, not how to build ML models. We have given a simple model so you can concentrate on the Kubernetes and KServe deployment concepts. Anyone can try this guide without AI/Ml background. ## What is KServe? When we train a machine learning model, the next step is to **serve** it so others can use it for predictions. Serving means loading the trained model, running it inside an inference server, and exposing an endpoint for apps or users to send requests and get results. 💡 Inference in machine learning means using a trained model to make predictions on new and unseen data. You cannot deploy an ML model on Kubernetes the same way you deploy regular workloads. Models need an inference server that handles prediction requests. KServe makes this process simple. [KServe](https://kserve.github.io/website/?ref=devopscube.com) is an open-source ML model serving tool for [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), which helps you serve your ML models on a Kubernetes cluster with minimal effort. You can deploy Kserve in two modes. 1. **Knative (default mode):** This mode reqires Knative components and this is particularly good for advanced setups. 2. **RawDeployment mode:** If you plan to deploy your models in a simple setup RawDeployment is the best option. In this guide, we will focus on the Kserver installation using the RawDeployment mode and show you how to serve a simple ML model on Kubernetes. ## Kserve Model Serving Workflow To get started with Kserve, we are going to use the following Kserve workflow to serve a model. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/kserve-3.png) Here is how in works. 1. The KServe controller running in the Kubernetes cluster continuously looks for **`InferenceService`** resources that are created. 2. When a user creates the **`InferenceService`** resource, KServe detects it and creates the following required objects. - A Deployment with a **Pod** to run the model server. - A **Service** to expose the Pod as an endpoint. - **HPA** toscale up/down based on load. 3. The Pod then pulls a SKlearn model server **image** from the **container registry**. This image contains the libraries to serving the model. 4. The pod then uses the PVC URI to access the model.pkl file. 5. As explained in second point, KServe automatically exposes a **Kubernetes Service** endpoint. This becomes the URL where clients can send **API requests** for predictions. 6. Finally, you or an app can send data to the **Model Endpoint** for inferencing. In Kserver, you can store your model in following ways: 1. It can be stored in an object storage like [AWS S3](https://devopscube.com/configure-loki-s3/) or Azure Blob Storage. 2. Store it as a [container image](https://devopscube.com/build-docker-image-kubernetes-pod/). 3. Store it in your clusters [Persistent Volume](https://devopscube.com/provsion-persistent-volume-on-eks/). For other storage options, refer the [offical documentation](https://kserve.github.io/website/docs/model-serving/storage/overview?ref=devopscube.com). 💡 In this guide, we are going to store the ****model in a PVC** and use it for the deployment. ## ML Model Details & Context For this setup, We will use a sample model that is a [**scikit-learn**](https://scikit-learn.org/stable/?ref=devopscube.com) **text classification** pipeline that categorizes words into three types. - **Animals** (label: 0) - **Birds** (label: 1) - **Plants** (label: 2) You give a word to the model and it tells you whether that word represents an animal, bird, or plant. This is a common type of machine learning problem called **supervised learning classification**. 💡 The pre-trained `model.pkl` file is already included in the GitHub repository, so you don't need to create or train any model yourself. This model is provided ****purely for learning purposes** to demonstrate KServe deployment concepts. ## Setup Prerequisites Following are the pre-requisites to follow this setup. 1. [Kubernetes Cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) 2. [Kubectl](https://devopscube.com/kubectl-set-context/) 3. [Docker](https://devopscube.com/what-is-docker/) 4. [Helm](https://devopscube.com/install-configure-helm-kubernetes/) Lets get started. ## Install KServe in Kubernetes Follow the steps below to install KServe on your Cluster. ### Step 1: Install Cert Manager Let's start with installing Cert Manager, which is essential for creating and managing [TLS certificates](https://devopscube.com/configure-ingress-tls-kubernetes/) for KServe. You refer to the official site for the [latest version](https://cert-manager.io/docs/releases/?ref=devopscube.com). Run the following command to install [Cert Manager](https://devopscube.com/nginx-ingress-with-cert-manager/). All the components gets deployed in the **`cert-manager`** namespace. ```bash kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.0/cert-manager.yaml ``` Ensure all the three cert-manager components are in running state. ```bash kubectl get po -n cert-manager ``` ### Step 2: Install KServe CRDs Once the Cert Manager is installed, install KServe. First, start by installing the required CRDs of KServe using helm. To install the CRDs, run the following command. It also creates the kserve namespace where the **`kserve`** controller will be deployed. ```bash helm install kserve-crd oci://ghcr.io/kserve/charts/kserve-crd --version v0.18.0 -n kserve --create-namespace ``` Now, verify the kserver CRD's ```bash kubectl get crds | grep kserve ``` ### Step 3: Deploy KServe Controller Now run the following command to install the KServe controller. ```bash helm install kserve oci://ghcr.io/kserve/charts/kserve-resources --version v0.18.0 \ --set kserve.controller.deploymentMode=Standard \ -n kserve ``` In the above command, you can see a flag that specifies the deployment mode to `Standard`. Verify if the kserve controller is in a running state. The controller pod runs **`kube-rbac-proxy`** and the controller containers. ```bash $ kubectl get po -n kserve NAME READY STATUS RESTARTS AGE kserve-controller-manager-59d84566d-grswq 2/2 Running 0 103s ``` ### Step 4: Install Runtimes KServe has build in runtimes that give the details to serving pod to serve a model. Use the following command to deploy them. ```bash helm install kserve-runtime-configs oci://ghcr.io/kserve/charts/kserve-runtime-configs \ --set kserve.servingruntime.enabled=true \ --version v0.18.0 ``` Then use the following command to check if they are created. ```bash $ kubectl get clusterservingruntimes NAME DISABLED MODELTYPE CONTAINERS AGE kserve-huggingfaceserver false huggingface kserve-container 6s kserve-huggingfaceserver-multinode false huggingface kserve-container 6s kserve-lgbserver false lightgbm kserve-container 6s kserve-mlserver false sklearn kserve-container 6s kserve-paddleserver false paddle kserve-container 6s kserve-pmmlserver false pmml kserve-container 6s kserve-predictiveserver false sklearn kserve-container 6s kserve-sklearnserver false sklearn kserve-container 6s kserve-tensorflow-serving false tensorflow kserve-container 6s kserve-torchserve false pytorch kserve-container 6s kserve-tritonserver false tensorrt kserve-container 6s kserve-xgbserver false xgboost kserve-container 6s ``` Apart from built-in runtimes, you can also create custom runtimes as per your need. Now that the setup is done, let's move on to the model deployment. ## KServe Sample Project Repository All the files and model we are going to use in this guide are from our GitHub repository. Run the following command to clone the repository. ```bash git clone https://github.com/devopscube/predictor-model.git ``` You can see the following directory structure. ```bash predictor-model ├── Dockerfile ├── README.md ├── inference.yaml ├── job.yaml └── model └── model.pkl ``` 1. **Dockerfile** \- For dockerizing the model. 2. **inference.yaml** \- Manifest file to create a [kubernetes resource](https://devopscube.com/kubernetes-resoruces/) that hosts the model on Kubernetes using KServe. 3. **job.yaml** \- Manifest that create a PVC and a job that copies the model into the PVC. CD into the `predictor-model` directory and follow the steps below. ```bash cd predictor-model ``` ## Deploy a Sample ML Model with KServe Follow the steps given below to deploy the model. ### Step 1: Dockerize the Model (Optional) ⚠️ Use this section if you are going to create your own container image. If you dont want to build your own image, use our `devopscube/predictor-model:1.0` image to follow the tutorial. The Dockerfile used to Dockerize the model is given below. ```Dockerfile FROM alpine:latest WORKDIR /app COPY model/ ./model/ ``` Here is the [Dockerfile](https://devopscube.com/create-dockerfile-using-docker-init/) explanation. 1. The Dockerfile uses the `alpine:latest` as the base image. 2. It sets the `/app` directory as the work directory and copies the model directory and the model file inside it to the `/app` directory. Now, run the following command to dockerize the model. ⚠️ Update your Docker registry name in below command or use our image. ```bash docker build -t devopscube/predictor-model:1.0 . ``` Once it's built, run the following command to push the image to the registry. ```bash docker push devopscube/predictor-model:1.0 ``` 💡 In real-world production setups, models are usually stored in ****cloud storage**. This is because ML models can be very large (hundreds of MBs or even GBs), and storing them in object storage allows for better scalability and retrieval. Another Kubernete native ML feature called [imageVolumes](https://devopscube.com/oci-image-volume-kubernetes-pods/) let you package models as contianer image and mount as volumes in Pods. ### Step 2: Store the Model in PVC To copy the model into a PV, we are going to create a PVC and a [job](https://devopscube.com/create-kubernetes-jobs-cron-jobs/) that copies the model to the PVC Here is the **`job.yaml`** with PVC manifest. ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: predictor-model-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi --- apiVersion: batch/v1 kind: Job metadata: name: predictor-model-copy-job spec: ttlSecondsAfterFinished: 10 backoffLimit: 1 template: spec: restartPolicy: OnFailure containers: - name: model-writer image: devopscube/predictor-model:1.0 command: [ "/bin/sh", "-c" ] args: - | echo ">>> Copying model to PVC..."; cp -r /app/model/* /mnt/models/; echo ">>> Verifying contents in PVC..."; ls -lh /mnt/models; echo ">>> Verification complete. Job finished."; volumeMounts: - name: model-storage mountPath: /mnt/models volumes: - name: model-storage persistentVolumeClaim: claimName: predictor-model-pvc ``` This file creates a PVC, a Job that copies the model into a PV, and the pod gets deleted after 10 seconds once the job is completed. Run the following to apply the manifest ```bash kubeclt apply -f job.yaml ``` If you check the logs of the pod you will get the following output. ```bash $ kubectl logs job/predictor-model-copy-job >>> Copying model to PVC... >>> Verifying contents in PVC... total 4K -rw-r--r-- 1 root root 1.7K Sep 16 06:57 model.pkl >>> Verification complete. Job finished. ``` ⚠️ If the job pod is stuck in Pending state, check PVC and storage class and ensure the PVC is created and in bound state. ### Step 3: Deploy InferenceService Resource To deploy the model, we are going to apply the **`inference.yaml`** file to create KServe's inference resource on the cluster. ```yaml apiVersion: serving.kserve.io/v1beta1 kind: InferenceService metadata: name: model spec: predictor: sklearn: storageUri: pvc://predictor-model-pvc resources: requests: cpu: 500m memory: 1Gi ``` In the above manifest, - The `spec.predictor` section defines how the model will be served - Since the model we are using is based on scikit-learn, we are using **sklearn** framework. - `storageUri: pvc://predictor-model-pvc` means the model files are stored on a Persistent Volume Claim (PVC) named "predictor-model-pvc". 💡 Since we are using the `sklearn` predictor block, KServe knows that we want to use the ****built-in SKLearn model server image**. KServe will pull the default **`kserve/sklearnserver:`** and run the model in it. Run the following command to apply the inference service manifest. ```bash kubectl apply -f inference.yaml ``` Then run the following command to check if the related objects are created by the inferenceService object. ```bash kubectl get po,svc,hpa,inferenceservice ``` You will get the following output. ![verifing if the objects are created](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-12.png) ⚠️ If the model-predictor pod is stuck in Pending state check the node CPU and memory resources. Ensure atleast 1 GB memory is present in the nodes. The internal endpoint will be: ```bash http://model-predictor.default.svc.cluster.local/v1/models/model:predict ``` In the above endpoint: - **model-predictor.default.svc.cluster.local** \- Internal DNS of the service attached to the [pod](https://devopscube.com/kubernetes-pod/). - **v1/models/** \- API version - **model** \- Name of the inference service - **predict** \- It's a standard endpoint for predictor models. ## Test the KServe Inference Endpoint To test the model, we are going to port forward the deployment service and send a request to it using curl. Run the following command to port-forward the service. ```bash kubectl port-forward service/model-predictor 8000:80 ``` Then, run the following command to send the request for prediction. ```bash curl -X POST \ -H "Content-Type: application/json" \ -d '{ "instances": [ "sparrow", "elephant", "sunflower" ] }' \ "http://localhost:8000/v1/models/model:predict" ``` You will get the following output. ![checking output from the curl request](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-10.png) In the prediction model, `0` is for animal, `1` is for bird, and `2` is for the plant. And the predictor output is correct based on the input. Thats it! You have deployed a model using Kserver and made a inference request! ## Kserve FAQ's Following are some of the frequently asked questions about Kserve. ### What is the difference between KServe RawDeployment and Knative mode? RawDeployment is lightweight and easier deployment option for beginners. While, Knative mode supports advanced use cases with autoscaling and networking functionalities. ### How can I test a deployed KServe model? The easiest way is to port-forward the inference service and send test requests with `curl` or a program to the inference endpoint. ### Can I deploy models other than scikit-learn with KServe? Yes. KServe supports TensorFlow, PyTorch, XGBoost, ONNX, and more. ### What should I do if my KServe pod is stuck in Pending state? Check PVC storage, node CPU and memory, and controller logs. Ensure at least 1 GB memory is available while deploying simple models. ### Is KServe used by companies in production? Yes. Companies like Bloomberg, IBM, Red Hat, Gojek, and Cisco use KServe in their production environments. ## Conclusion You have just taken your first step into MLOps. The practice of deploying and maintaining machine learning system. In summary, you have learned how to serve ML models using KServe and how to check if the model is served successfully by sending a curl request to it. Give it a try and if you have any doubts or face any issues, drop a comment below. We will help you out. Also, if you want to know more about AI/ML features of Kubernetes, refer the [Kubernetes AI/ML features](https://devopscube.com/kubernetes-ai-ml-features/) blog. ### Pass the CKA Certification Exam: The Ultimate Study Guide URL: https://devopscube.com/cka-exam-study-guide/ Last updated: 2026-10-15T06:08:26.000Z Prepare for the Certified Kubernetes Administrator (CKA) exam with our comprehensive study guide. It has expert tips, syllabus wise guides and essential resources earn your CKA certification and advance your career in Kubernetes administration. Certified Kubernetes Administrator (CKA) is one of the [best kubernetes certifications ](https://devopscube.com/best-kubernetes-certifications/)from the Linux Foundation. You could even say it is the top **DevOps certification** right now. It is aimed at engineers interested in setting up and managing Kubernetes clusters. In this CKA Certification learning path, we cover everything you need to know about the CKA certification. The official CNCF certification page says: The purpose of the Certified Kubernetes Administrator (CKA) program is to provide assurance that CKAs have the skills, knowledge, and competency to perform the responsibilities of Kubernetes administrators. As one of the highest velocity open source projects, Kubernetes is exploding. In this scenario - the demand for skilled [DevOps Engineers](https://devopscube.com/become-devops-engineer/) with Kubernetes cluster administration knowledge is growing. 💡 As per the [cncf annual report](https://www.cncf.io/reports/cncf-annual-report-2025/?ref=devopscube.com), in 2025 Certified Certification exam hit ****291,000** enrollments (16% increase from 2024). Therefore, passing the CKA certification can increase your chances of career growth in a wide range of companies and organizations that use Kubernetes. ## Register for the CKA Certification Exam \[Save 35% Today\] To begin your journey of becoming a Certified Kubernetes Administrator, start by registering for the exam on the Linux Foundation portal. > **Note:** Save 35% Today on CKA certification using the Voucher code given below. This code expires soon. [Redeem CKA Discount ](https://devopscube.com/recommends/cka-exam/) **CKA Exam Voucher:**: Use Code **OCT26NONCYBERCT** at checkout If you're also planning to take the CKS exam, consider buying it as a bundle to **save 40%** [Save 40% on CKA+CKS Bundle ](https://devopscube.com/recommends/cka-cks/) **Note:** Use coupon **OCT26NONCYBERCT** at checkout Here are some things to keep in mind regarding the exam. 1. The CKA exam is taken online and proctored remotely. 2. A score of 66% or above must be earned to pass. 3. CKA Certification is valid for two years. 4. After registration, you get one year to schedule the exam. 5. After registration, you get a maximum of 2 attempts to take the test. If you miss a scheduled exam for any reason, your second attempt is nullified. ****Note:** You can always check the [latest Kubernetes Certification Coupon Codes](https://devopscube.ghost.io/kubernetes-certification-coupon/?ref=devopscube.com) to save costs on the CKA, [CKAD](https://devopscube.com/ckad-exam-study-guide/), [CKS](https://devopscube.com/cks-exam-guide-tips/), [KCNA](https://devopscube.com/kcna-study-guide/) and [KCSA](https://devopscube.com/kcsa-exam-study-guide/) certification registration ## CKA Certification Preparation Guide This section will go over resources and links that can help you prepare for the CKA exam and pass the CKA certification with very good score. ## CKA Exam Prerequisites CKA does not require any candidate to have any other certification before they can appear for the CKA exam. The only thing required to clear the exam is a conceptual and practical understanding of Kubernetes's components and native objects. Also a **lot of hands-on practice.** ## CKA Exam details The following table shows the key CKA exam details. | Exam Duration | 2 hours | | --------------------------- | ---------------- | | Pass Percentage | 66% | | CKA Exam Kubernetes Version | Kubernetes v1.36 | | CKA Validity | 2 Years | | Exam Cost | $445 USD | The CKA exam is an open-book exam i.e. you can use the following websites while you are taking the exam. 1. [https://kubernetes.io/docs/](https://kubernetes.io/docs/?ref=devopscube.com) 2. [https://kubernetes.io/blog/](https://kubernetes.io/blog/?ref=devopscube.com) and their subdomains. This includes all available language translations of these pages (e.g. [https://kubernetes.io/zh/docs/)](https://kubernetes.io/zh/docs/home/?ref=devopscube.com) 3. [https://helm.sh/docs/](https://helm.sh/docs/?ref=devopscube.com) 4. [https://gateway-api.sigs.k8s.io/](https://gateway-api.sigs.k8s.io/?ref=devopscube.com) ## CKA Exam syllabus The following table has the domains and competencies part of the current syllabus along with their respective weightage. | Domain | Weight | What to Focus On | | -------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Storage | 10% | • Implement storage classes and dynamic volume provisioning• Configure volume types, access modes and reclaim policies• Manage persistent volumes and persistent volume claims | | Troubleshooting | 30% | • Troubleshoot clusters and nodes• Troubleshoot cluster components• Monitor cluster and application resource usage• Manage and evaluate container output streams• Troubleshoot services and networking | | Workloads & Scheduling | 15% | • Understand application deployments and how to perform rolling updates and rollbacks• Use ConfigMaps and Secrets to configure applications• Configure workload autoscaling• Understand primitives for robust, self-healing application deployments• Configure Pod admission and scheduling (limits, node affinity, etc.) | | Cluster Architecture, Installation & Configuration | 25% | • Manage role based access control (RBAC)• Prepare underlying infrastructure for installing a Kubernetes cluster• Create and manage Kubernetes clusters using kubeadm• Manage the lifecycle of Kubernetes clusters• Implement and configure a highly-available control plane• Use Helm and Kustomize to install cluster components• Understand extension interfaces (CNI, CSI, CRI, etc.)• Understand CRDs, install and configure operators | | Services & Networking | 20% | • Understand connectivity between Pods• Define and enforce Network Policies• Use ClusterIP, NodePort, LoadBalancer service types and endpoints• Use the Gateway API to manage Ingress traffic• Know how to use Ingress controllers and Ingress resources• Understand and use CoreDNS | ## CKA Practice Labs The best way to prepare for the CKA Certification exam is to get a clear understanding of the concepts involved and **do a lot of hands-on practice.** Even if you are actively working in [Kubernetes production](https://devopscube.com/production-ready-kubernetes-cluster/) environments, you will still need to practice to pass the exam. The important part is, the CKA exam **doesn't include multiple-choice questions**, so hands-on practice is very important. The following setups will give you a Kubernetes cluster where you can do all the required practice. The exam expects you to solve problems on a live cluster. ****Note**: I would highly recommend setting up a Kubeadm based cluster first. The actual exam also uses kubeadm based clusters. Once you understand the configurations better, move on to browser based lab setups. 1. [Kubernetes Setup using Kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) \[Self hosted setup based on CKA requirements. This is the recommended setup for learning\] 2. [Killercoda](https://killercoda.com/killer-shell-cka?ref=devopscube.com) (Browser Based CKA playground) 3. [Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/?ref=devopscube.com) 4. [Kubernetes Vagrant Setup using Kubeadm](https://devopscube.com/kubernetes-cluster-vagrant/) \[ Checkout the [Github Repo](https://github.com/techiescamp/cka-certification-guide/tree/main/lab-setup?ref=devopscube.com)\] 5. [GKE Cluster](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) using free Google Cloud Credits 6. [EKS Service on AWS](https://aws.amazon.com/eks/?ref=devopscube.com) using a Free tier program 7. [AKS service on Azure](https://azure.microsoft.com/en-in/services/kubernetes-service/?ref=devopscube.com) using free cloud credits 8. Kubernetes Cluster on Digital Ocean\[ [Get $100 Digital Ocean Free Credits](https://devopscube.com/get-free-digital-ocean-credits/)\] ## Kubectl Aliases & Shortnames Once you have the CKA practice lab setup ready, set the following aliases in your practice lab terminal. You can add them to your `.bashrc` or `.zshrc` file (depending on your shell), and then run `source ~/.bashrc` or `source ~/.zshrc`. ```bash alias k='kubectl' alias kdr='kubectl --dry-run=client ``` If you want to use any aliases other than **`k`** during exams, you need to **start practicing with aliases from day one**. Whenever you choose a topic to learn, use the aliases during practice sessions. Also, in the **exam terminal you will have the kubectl alias set by default**. You can choose to create others if you want to. Also, dont overcomplicate aliases. My suggestion is to use just the default available aliases in the exam terminal. 💡 ****Important Note:** Command examples give in this guide use [kubectl alias](https://devopscube.com/configure-kubectl-with-kuberc/) and object short-names to make your practice easier. For example, ```bash k get po --all-namespaces ``` To know all the available **object short names** execute the following command. ```bash kubectl api-resources ``` ![kubernetes object shortnames for CKA exam practice.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-24-10.png) Now that you have all the setup ready for the learning, let's dive into exam syllabus topics and related official resources and tasks. ## Guide to CKA Exam: A Syllabus-Based Approach Here, we will be discussing the **CKA syllabus-wise** official and useful resources that can be used to prepare for each topic of the CKA exam. ## Cluster Architecture, Installation & Configuration \[ 25% \] This section primarily deals with cluster setup, configuration and management. It is very important to understand the [Kubernetes architecture](https://devopscube.com/kubernetes-architecture-explained/) before moving on to hands-on labs. ### Manage role-based Access Control (RBAC) Role-based access control is a method of managing access levels to applications or individual users. It's a handy tool in the hands of an administrator to give fine-grained controls to others. | RBAC essentials | [Check RBAC Documentation ](https://kubernetes.io/docs/reference/access-authn-authz/rbac/?ref=devopscube.com) | | --------------- | ------------------------------------------------------------------------------------------------------------- | ### Prepare underlying infrastructure for installing a Kubernetes cluster For Kubernetes to work, you need to have the following. 1. Certain system configurations 2. Container runtime (CRI-O, Containerd, or Docker) 3. kubeadm 4. kubelet and 5. kubectl During kubeadm cluster installtion you will go through all these configurations. To setup a cluster, the adminstratror should ensure the all the required settings are available in the **init configuration**. These configurations are stored in a YAML file called **init config**, where you define details such as networking, node information and registration configuration. | Kubeadm Init | [Kubeadm Init Documentation ](https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/?ref=devopscube.com) | | ------------ | ------------------------------------------------------------------------------------------------------------------------ | ### Create and manage Kubernetes clusters using kubeadm **For the exam:** Create a cluster using kubeadm - Practice and use the official documentation as a reference during the exam. This section focuses on the [setting up of a cluster](https://devopscube.com/kubernetes-cluster-vagrant/) using the kubeadm tool. The candidate must have a clear understanding of the underlying components of Kubernetes such as etcd, Kube API servers, SSL certificate management, etc. ****Note:** Ensure swap is disabled on all nodes before deploying the Kubeadm cluster. | Learn About Kubeadm | [Kubeadm Documentation ](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/?ref=devopscube.com) | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | Tutorial | [Kubeadm Cluster Setup Guide ](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) | Here is what you need to focus on for the exam 💡 ****Exam Tip:** From the official documentation, practice the kubeadm cluster create commands and its associated yaml configurations.. ### Manage the lifecycle of Kubernetes clusters Kubernetes is a continuously improving tool. Every now and then, a new version comes up with improvements and features. It is the duty of the administrator to take care of version upgrades. | Kubeadm Upgrade Task | [Kubernetes Version Upgrade Use Kubeadm ](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/) | | -------------------- | ----------------------------------------------------------------------------------------------------- | You need to learn and practice etcd backup and restore using the etcdctl utility. Etcd is a key-value store of the cluster. All the cluster configuration and information regarding pods, services, etc. are stored here in key-value format | Reference Task | [etcd Backup & Restore Operations ](https://devopscube.com/backup-etcd-restore-kubernetes/) | | -------------- | ------------------------------------------------------------------------------------------- | 💡 ****Exam Tip:** Usually you dont get the scenarios around these concepts. The upgrade tasks are now part of CKS exam. However, learn it to ensure you know the administrative side of cluster management. ### Implement and configure a highly-available control plane Even though there will not be any questions related to HA for the CKA exam, it is good to know about the high availability architecture. One of the duties of a Kubernetes administrator is to ensure the high availability of the cluster. This involves proper maintenance tasks on the cluster as well as managing the worker nodes. | HA Kubernetes Cluster | [HA cluster setup using Kubeadm ](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/?ref=devopscube.com) | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | Most clusters today are created on AWS, Azure, or GCP where the respective cloud providers take responsibility for cluster availability. However, it is important to understand the logic behind the HA kubernetes cluster. ### Use Helm and Kustomize to install cluster components **Helm** and **Kustomize** are tools used to package applications to deploy it in the Kubernetes cluster and to manage them more easily. In the exam, you may be asked to modify the deployment configurations and use one of these tools to deploy and manage the application in the Kubernetes cluster. | Helm | [Helm Charts Tutorial ](https://devopscube.com/create-helm-chart/) | | --------- | ------------------------------------------------------------------ | | Kustomize | [Kustomize Tutorial ](https://devopscube.com/kustomize-tutorial/) | ### Understand extension interfaces (CNI, CSI, CRI, etc.) Kubernetes extentions are plugins that allow cluster to connect with external systems. ![CRI Vs CNI Vs CSI visually explained.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-10.png) - **CNI (Container Network Interface)** \- Manage the networking inside cluster for pods, services. This handles to assign IPs, connection between services. - **CRI (Container Runtime Interface)** \- Allow the Kubernetes to run the container. - **CSI (Container Storage Interface)** \- The cluser to connect with the storage systems so that the workloads gets the persistent storages. | CNI | [Network Plugins Documentation ](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/?ref=devopscube.com) | | --- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | CSI | [Container Storage Interface ](https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/?ref=devopscube.com) | | CRI | [Container Runtime Interface ](https://kubernetes.io/docs/concepts/architecture/cri/?ref=devopscube.com) | 💡 ****Exam Tip:** In the exam, you might be asked to configure CNI or troubleshoot the extensions to make the cluster work as expected. So ensure you go through all the configurations of these extensions that are part of the kubeadm cluster. ### Understand CRDs, install and configure operators **Custom Resource Definitions (CRDs)** are like the Kubernetes objects such as Pods or Deployments, but they are not inbuilt. But Kubernetes allows them as like the default objects, so which ofter useful to easily deploy something. CRDs mostly works with custom **controllers**. These controllers watch the custom resource creation and changes and then perform the required actions. | Custom Resources | [Custom Resources ](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/?ref=devopscube.com) | | ---------------- | ----------------------------------------------------------------------------------------------------------------------------- | To manage these CRDs, Kubernetes uses controllers known as Operators. These Operators watch for these CRDs and create or update resources accordingly. | Argo CD | [Installation Guide ](https://devopscube.com/setup-argo-cd-using-helm/) | | ------- | ----------------------------------------------------------------------- | 💡 ****Exam Tip:** In the exam, you might be asked to install operators or configure the custom resources. So ensure you have hands on experience managing operators like [ArgoCD](https://devopscube.com/argo-cd-architecture/) etc. ## Workloads & Scheduling \[ 15% \] ### Learn About Static Pod Static pod in Kubernetes is a concept of deploying pod on specific nodes using Kubelet. These pods are not directly managed by the API server. These are primarily used for cluster bootstrapping purposes to bring up the cluster components that run as a pod. | Static Pod Task | [Create a Static Pod ](https://devopscube.com/create-static-pod-kubernetes/) | | --------------- | ---------------------------------------------------------------------------- | ### Understand Deployments and How to Perform Rolling Update and rollbacks [Kubernetes Deployment](https://devopscube.com/kubernetes-deployment-tutorial/) ensures a minimum number of application replicas are running at all times. In case a replica goes down, the [Kubernetes API](https://devopscube.com/kubernetes-api-access-service-account/) ensures that a new one is created within minutes. ****Imperative commands:** These are commands which let you create [Kubernetes objects ](https://devopscube.ghost.io/kubernetes-objects-resources/?ref=devopscube.com)via a CLI. Meaning they remove the need to write the whole YAML. Knowing imperative commands can help you save time in the exam. I highly recommend them! **Kubectl commands:** Here is the imperative command to create deployment YAML using dry-run flag. ```bash k create deploy web-deployment \ --image=nginx \ --dry-run=client -o yaml > deployment.yaml ``` And, before are some of other imperative commands to create a deployment and scale the deployment. ```bash k create deploy --image= //create deployment k create deploy --image= -- sleep 300 //with command arguments k scale deploy --replicas=4 //scale up or down ``` | Reference | [Kubernetes Deployment Concepts ](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/?ref=devopscube.com) | | --------- | --------------------------------------------------------------------------------------------------------------------------- | Sometimes, you may want to rollback a Deployment; for example, when the Deployment is not stable, such as a crash loopback error, you can roll back the Deployment **Kubectl commands:** Below are some of the kubectl commands you can use to change the image, check the status of the rollout, and rollout. ```bash kubectl set image deployment = // update image kubectl rollout status deployment //see status kubectl rollout history deployment //see history ``` | Reference | [Kubernetes Rolling Update ](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/?ref=devopscube.com#rolling-back-a-deployment) | | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ### Use Config Maps and Secrets to Configure applications Kubernetes Configmaps are useful to store non-critical data in key-value pair format. They can also be used to inject env vars into pods. | Reference | [Kubernetes ConfigMap Concepts ](https://kubernetes.io/docs/concepts/configuration/configmap/?ref=devopscube.com) | | --------- | ----------------------------------------------------------------------------------------------------------------- | **Kubectl Commands for Configmaps:** ```bash kubectl create cm --from-file=hello.txt kubectl create cm --from-literal=key1=value1 ``` Secrets are useful to store sensitive data in key-value pair format. They can also be used to inject env vars into pods. | Reference | [Kubernetes Secrets Concepts ](https://kubernetes.io/docs/concepts/configuration/secret/?ref=devopscube.com) | | --------- | ------------------------------------------------------------------------------------------------------------ | **Kubectl commands for secrets:** ```bash kubectl create secret generic --from-file=hello.txt kubectl create secret generic --from-literal=key1=value1 ``` ### Know How to Scale Applications Kubernetes provides different ways to scale applications. You can use deployment objects and increase the number of replicas of your application. Horizontal Pod Autoscalers (HPAs) can also be used to increase the number of replicas based on application metrics. | Task | [Working With Horizontal Pod Autoscaler ](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/?ref=devopscube.com) | | ---- | ---------------------------------------------------------------------------------------------------------------------------------------- | ### Understand the Primitives Used to Create Robust, Self-healing, Application Deployments This section is mostly conceptual, for any self-healing application you should use deployments or stateful sets so that whenever pods go down, Kubernetes recreates them instantly. Deployments also give you the option to keep track of all the changes you make. You can also roll back to a previous state very easily. ```bash kubectl set image deployment = // update image kubectl rollout status deployment //see status kubectl rollout history deployment //see history ``` ### Understand How Resource Limits Can Affect Pod Scheduling Cluster management also involves the management of workloads, as an admin - you should ensure that each pod is able to get resources based on its needs. In Kubernetes, you can assign each pod a minimum and maximum amount of CPU and memory usage. | Reference 01 | [Manage Container Resources ](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/?ref=devopscube.com) | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Reference 02 | [Pods with Resource Requests ](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/?ref=devopscube.com#how-pods-with-resource-requests-are-scheduled) | ### Configure Pod admission and scheduling (limits, node affinity, etc.) Pod admission act as a security gate for pods. It will check Pod's settings for the validation, and make changes if required or reject if the validation fails. Only then the pod schedules on a node. | Admission Control in Kubernetes | [Pod Admission ](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/?ref=devopscube.com) | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------- | The pod scheduling will be decided by the Kube Scheduler. This component will decide which node is suitable to for the pod to run. Scheduler will score the nodes based on certain principles. | Requests | [Kubernetes Requests Documentation ](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/?ref=devopscube.com#requests-and-limits) | | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Limits | [Kubernetes Limits Documentation ](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/?ref=devopscube.com#requests-and-limits) | | Node Selector | [Kubernetes NodeSelector Documentation ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/?ref=devopscube.com#nodeselector) | | Affinity and Anti-Affinity | [Kubernetes Affinity and Anti-Affinity Documentation ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/?ref=devopscube.com#affinity-and-anti-affinity) | | Node Affinity | [Kubernetes Node Affinity Documentation ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/?ref=devopscube.com#node-affinity) | | Pod Affinity and Anti-Affinity | [Kubernetes Pod Affinity and Anti-Affinity Documentation ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/?ref=devopscube.com#pod-affinity-and-anti-affinity) | | Taints and Tolerations | [Kubernetes Taints and Tolerations Documentation ](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/?ref=devopscube.com) | ### Init Containers Learn about init containers. You might be asked to create an init container to perform specific actions or files required for the main container inside the pod. | Official Task | [Configure Pod Initialization ](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/?ref=devopscube.com) | | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ## Services & Networking \[ 20% \] ### Understand host networking configuration on the cluster nodes Kube-proxy is the component required on each worker node for the pods to communicate with each other. Networking between nodes involves Kube proxy participation as well. Kubelet is how a worker node is in-network with the master node. All these concepts are required for understanding networking inside kubernetes. | Reference | [Kubernetes Networking ](https://kubernetes.io/docs/concepts/cluster-administration/networking/?ref=devopscube.com) | | --------- | ------------------------------------------------------------------------------------------------------------------- | ### Understand the Connectivity Between Pods [Kubernetes Pods](https://devopscube.com/kubernetes-pod/) communicate with each other using services. Kube proxy is the component that makes this possible. | Reference | [Understand Kube Proxy ](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/?ref=devopscube.com) | | --------- | -------------------------------------------------------------------------------------------------------------------------- | ### Define and enforce Network Policies Network Policies in Kubernetes control the communication between the Pods. | Network Policies | [Network Policy ](https://kubernetes.io/docs/concepts/services-networking/network-policies/?ref=devopscube.com) | | ---------------- | --------------------------------------------------------------------------------------------------------------- | ### Understand ClusterIP, NodePort, LoadBalancer service types and endpoints Understanding each service type along with their use cases is very important. Special attention should be paid to understanding how pods can be added under a service. | Reference | [Kubernetes Service Explained ](https://kubernetes.io/docs/concepts/services-networking/service/?ref=devopscube.com) | | --------- | -------------------------------------------------------------------------------------------------------------------- | ### Know how to use Ingress controllers and Ingress resources Ingress resources are how external entities are assigned access to internal cluster services. Ingress controllers are load balancers that make it possible. | Reference 01 | [Kubernetes Ingress ](https://kubernetes.io/docs/concepts/services-networking/ingress/?ref=devopscube.com) | | ------------ | --------------------------------------------------------------------------------------------------------------------------------- | | Reference 02 | [Kubernetes Ingress Controller ](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/?ref=devopscube.com) | | Blog | [Ingress Tutorial for Beginners ](https://devopscube.com/kubernetes-ingress-tutorial/) | | SSL Blog | [Ingress TLS/SSL Setup ](https://devopscube.com/configure-ingress-tls-kubernetes/) | ### Use the Gateway API to manage Ingress traffic The Kubernetes GatewayAPI is the advanced version of the Ingress which simplifies the canary and method based routing. | Gateway API | [Gateway API ](https://kubernetes.io/docs/concepts/services-networking/gateway/?ref=devopscube.com) | | ----------- | --------------------------------------------------------------------------------------------------- | ### Know How to Configure and Use CoreDNS CoreDNS is a flexible, extensible DNS server that can serve as the Kubernetes cluster DNS. Like Kubernetes, the CoreDNS project is hosted by the [CNCF](https://cncf.io/?ref=devopscube.com). | Task | [Using CoreDNS for Service Discovery ](https://kubernetes.io/docs/tasks/administer-cluster/coredns/?ref=devopscube.com) | | ---- | ----------------------------------------------------------------------------------------------------------------------- | ### Choose an appropriate container network interface plugin CNI stands for Container Networking Interface and its goal is to create a generic plugin-based networking solution for containers. There are a lot of solutions such as Flannel, Calico, etc. This section explores some of them. | Reference | [Kubernetes Network Plugins ](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/?ref=devopscube.com) | | --------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ## Storage \[ 10% \] ### Understand Storage Classes, Persistent Volumes, Persistent Volume Claims **StorageClasses:** StorageClass provides a way to describe the "classes" of storage available. **PersistentVolume:** It is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using StorageClasses. They are created over StorageClasses. **PersistentVolumeClaim:** It is a request for storage by a user. They are created over PersistentVolumes. | Reference | [Kubernetes Persistent Volumes ](https://kubernetes.io/docs/concepts/storage/persistent-volumes/?ref=devopscube.com) | | --------- | -------------------------------------------------------------------------------------------------------------------- | ### Understand Volume Mode, Access Modes, and Reclaim Policies for volumes **Volume modes:** Kubernetes supports two types of volume modes: Filesystem & Block. **Access modes:** Kubernetes supports three types of access modes: ReadWriteOnce, ReadOnlyMany & ReadWriteMany. **Reclaim Policy:** Kubernetes supports three policies: Retain, Recycle & Delete | Reference | [Kubernetes Volume Modes ](https://kubernetes.io/docs/concepts/storage/persistent-volumes/?ref=devopscube.com#volume-mode) [Kubernetes Volume Access Modes ](https://kubernetes.io/docs/concepts/storage/persistent-volumes/?ref=devopscube.com#access-modes) | | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ### Know How to Configure Applications With Persistent Storage Application pods can use persistent storage by mounting a PVC. | Task | [Configure Kubernetes Volume in Pod ](https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/?ref=devopscube.com) | | ---- | -------------------------------------------------------------------------------------------------------------------------------------------- | ## Troubleshooting \[ 30% \] ### Evaluate Cluster and Node Logging & Managing Logs Application logs can help in understanding the activities and status of the application. The logs are particularly useful for debugging problems and monitoring cluster activity. Going through logs of kubernetes control plane components like etcd, the scheduler can also be very helpful. There are certain flags in kubectl commands which can help speed up your debugging cases, they are given below. **Kubectl Command To Check Logs**: ```bash kubectl logs deployment/ kubectl logs deployment/ --tail=10 kubectl logs deployment/ --tail=10 -f ``` | Reference | [Kubernetes Logging ](https://kubernetes.io/docs/concepts/cluster-administration/logging/?ref=devopscube.com) | | --------- | ------------------------------------------------------------------------------------------------------------- | ### Understand How to Monitor Applications Monitoring applications can be done by storing logs and studying the application's metrics. Tools like [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) & [Grafana](https://devopscube.com/setup-grafana-kubernetes/) are popular as they make the management of metrics very easy. Very often, sidecar containers are used as metrics exporters of the main application container. ### Troubleshoot Application Failure Administrators are also required to help users debug applications that are deployed into Kubernetes and not behaving correctly. | Reference | [Understanding Kubernetes Logging ](https://kubernetes.io/docs/concepts/cluster-administration/logging/?ref=devopscube.com) | | --------- | --------------------------------------------------------------------------------------------------------------------------- | | Task | [Debug Kubernetes Objects ](https://kubernetes.io/docs/tasks/debug-application-cluster/?ref=devopscube.com) | ### Troubleshoot Cluster Component Failure Cluster components need to be debugged and perform troubleshooting for failures when users are sure that their application has everything perfectly set up. | Task | [Debug Kubernetes Cluster ](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/?ref=devopscube.com) | | ---- | ------------------------------------------------------------------------------------------------------------------------- | ### Troubleshoot services and networking There can be scenarios where things are going wrong on the network end such as some incorrect configuration in ingress resources etc. ## CKA Mock Exams Once you learn all the CKA exam concepts, the final step is to give the mock exams. When you purchase the subscription, you will get free access to [https://killer.sh/cka](https://killer.sh/cka?ref=devopscube.com) exam simulator. You get access to two free mock exams. You can make use of the simulator to give the CKA practice exam. Also, you can use the following Mock exam to practice for the CKA exam before appearing for the exam. 1. [CKA Killer coda scenarios](https://killercoda.com/devopscube-kubernetes/?ref=devopscube.com) 2. [Certified Kubernetes Administrator (CKA) Mock Exams](https://devopscube.com/recommends/cka-mock-exam/) Also you can make use of the CK-X Simulator. It is a self hosted environment that provides a realistic CKA exam-like experience. All you need to have to 4 GB RAM and 4vCPU workstation or a server with [Docker installtion.](https://devopscube.com/how-to-install-and-configure-docker/) **Try it Here:** [CK-X Simulator](https://github.com/sailor-sh/CK-X?ref=devopscube.com) ## Some Unofficial Useful CKA Resources 1. [Understand kubernetes SSL certificates](https://jvns.ca/blog/2017/08/05/how-kubernetes-certificates-work/?ref=devopscube.com) 2. [Vim shortcuts](https://devhints.io/vim?ref=devopscube.com). This will help you save time on exams. 3. Hands-on CKA practical question bank[ on Github](https://github.com/StenlyTU/K8s-training-official?ref=devopscube.com) 4. [Tips to Create Kubernetes YAML Quickly](https://devopscube.com/create-kubernetes-yaml/) ## CKA Exam DOs Following are the things you should do for CKA Certification. 1. Get the CKA Candidate Handbook and read all the instructions carefully. 2. Start the pre-exam process 30 minutes before the scheduled time. The process includes PSI browser setup, exam environment verification, etc. Overall the pre-exam process takes anywhere between 10-15 minutes. 3. While giving CKA practice exams, try to wrap up 15 minutes before the deadline - it will give you additional time to revise the solutions. 4. Give a couple of practice exams, identify your weak topics, and spend more time on those. 5. If any particular question will take more than 6-7 mins to solve, flag/mark it to solve for later and come back once you solve the rest. 6. Ensure you have very good and stable internet connectivity while appearing for the exam. For some reason, if you lose the connectivity you will have to go through the verification process again. That will give you less time to solve the CKA tasks. 7. On exam day, try to keep an alternative internet source handy in case of Wi-Fi internet goes down. We don't want all our handwork to be wasted, do we? ## Common Mistakes and How to Avoid Them CKA is a challenging exam. So it is very important to avoid mistakes people often make so you can avoid them. Here are some of the common mistakes and tips on how to avoid them. 1. Do not rush through questions. Read each question carefully and understand it before you start answering them. 2. Do not spend too much time on one question. Move on to the next question and come back later after solving other questions. 3. After finishing each question, take a moment and double-check the answers. For example, the file path where you have redirected the output. 4. Under exam pressure, there are high chances you might even forget the basic commands. So practice all the basic commands repeatedly and make them stick to your memory. 5. You need to stay calm during the exam. If you are not able to solve a question, don't panic. Move on to the next one. Nervousness will lead to careless errors. 6. Even if you are someone working on Kubernetes daily, it is very important to get plenty of hands-on practice for the exam. Test your skills repeatedly using labs and real-world scenarios. 7. Most people don't even use an alias. So no need to overwhelm yourself with an `alias` for everything. 8. Don’t schedule the exam on the last day of the expiration. The idea is to give it in a pressure-free environment. ## CKA Exam Day Checklist Let's look at what you need to prepare and what you should expect when taking the exam. The last thing you want is to feel stressed out because you forgot something important for the exam. This checklist helps you keep track of all the things you need for the exam and be prepared to focus only on the exam aspects. First Ensure you have completed the exam preparation checklist in the Linux Foundation exam portal. ![CKA Exam Preparation Checklist](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-43-6.png) The following are the key items that should be part of your CKA exam checklist. 1. Ensure you have a stable internet connection. It is recommended to have an alternative connection ready. 2. Ensure you have the computer camera working. 3. Double-check that you have all the necessary system requirements. Run the System check as recommended by the Linux Foundation. 4. Have a clutter-free desk and room because the examiner checks for the surroundings through the camera. Linux Foundation has strict rules on the CKA exam environment. 5. Ensure you have a comfortable seating setup as the exam takes 2 hrs to complete. 6. Have your ID ready for verification. 7. Keep some water nearby to keep you hydrated and energized. [This video ](https://fast.wistia.net/embed/iframe/5kidxdd0ry?ref=devopscube.com)shows the PSI Online Proctoring Experience. It shows all the process involved in the certification including ID verification, web cam verification etc. ## Can I use an Extended Monitor For the CKA Exam? Yes. An extended monitor connected to a single computer is supported provided you have the camera attached to it. Also, you should be able to show around the room using the attached camera. You can **use only one screen at a time**. If you want to use the extended screen of a laptop, you need to close the laptop and use only the extended screen with an active webcam. Also, extended monitor is a great option becuase you will get a lot of real-estate to work on the tasks. For example, the following image shows the exam UI. As you can see, with the good wide monitor you will can adjust the terminal and browser as per your preference. ![CKA exam UI reference.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-206.png) ## CKA Preparation Courses Investing in a course will help you understand all the concepts for the exam in an easier manner. If you are a beginner, we strongly suggest you invest some time and money in a course of your choice. We have the following recommendation. 1. [DevOpsCube CKA Comprehensive course:](https://courses.devopscube.com/p/cka-complete-prep-course-practice-tests?ref=devopscube.com) It has detailed concept explanations supported by illustrations , quzzes and practice questions. 2. [CKA preparation course by Mumshad](https://devopscube.com/recommends/cka/): It includes many quizzes and hands-on labs. If you want to know more about CKA preparation courses, check out the [best CKA courses](https://devopscube.com/best-cka-courses/) guide. It will help you pick the right course the preparion. ## CKA Exam Updates The new PSI environment for the CKA exam is being rolled out. Few users reported geting the the new PSI environment for the exam. In the old environment you will have to execute the context for each task. In the new exam environment you will have to **SSH in to different nodes** to perform each tasks. ## CKA Exam FAQs ### Is there any active coupon code or discount voucher for the CKA exam in 2026? Yes. You can use code **DCUBE30** at [kube.promo/devops](http://httpskube.promo/devops?ref=devopscube.com) to redeem a 30% discount on CKA exam registration ## Conclusion This **CKA exam study guide** will help you understand cluster components and their management in a much better way and help in your career progression. If you are aiming to become a DevOps engineer, having a CKA certification is a great asset. Its importance is growing every year. So give your best and prepare well! This guide has given you all the resources, tips, and methods to help you prepare. we will keep updating it with new tools and resources. Best of luck with your preparations.. Also, check out [Kubernetes beginners tutorials](https://devopscube.com/kubernetes-tutorials-beginners/) to learn more about Kubernetes. If you want a structured roadmap, check out the [Kubernetes learning path.](https://devopscube.com/learn-kubernetes-complete-roadmap/) If you are interested in DevOps certifications, check out our comprehensive guide on the best [devops certifications](https://devopscube.com/devops-certifications/). ### How to Create Reusable Helm Templates Using _helpers.tpl URL: https://devopscube.com/_helpers-tpl-file-in-helm-charts/ Last updated: 2026-05-11T12:13:50.000Z If you are working with [Helm charts](https://devopscube.com/create-helm-chart/), you might have seen a `_helpers.tpl` file inside the `/templates` folder. Most people ignore it without understanding what it is used for while deploying a chart. It is key feature to create reusable helm templates. In this guide, we will look at. - What `_helpers.tpl` is and how it works. - Hands-on example demonstrating its usage. Lets get started. ## What is \_helpers.tpl? **`_helpers.tpl`** is a reusable block that can be used in the Helm template files inside the **`/templates`** folder. For example, [Kubernetes resources](https://devopscube.com/kubernetes-objects-resources/) such as [Deployments](https://devopscube.com/kubernetes-deployment-tutorial/), Services, and other objects often use the same labels. For example, ```bash app.kubernetes.io/name: web-app app.kubernetes.io/managed-by: Helm app.kubernetes.io/instance: web-app-{release} app.kubernetes.io/component: frontend app.kubernetes.io/version: 1.0.0 ``` Usually we add the same labels in every resource template file. Now, lets say you want to add or remove a label. For this you have to update the it in every template file. What if you define the label in one place and it gets updated in all the templates? It is what **`_helpers.tpl`** solves. You just need to declare the block in **`_helpers.tpl`** file using the define field as shown below. ``` {{- define "web-app.labels" -}} app.kubernetes.io/name: {{ .Chart.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end }} ``` In Helm terms, **you call that block as a named template or a partial.** It simply means reusable template snippets. Next, the reusable block can be called by other resource templates like `deployment.yaml`, `service.yaml` etc using the **`include`** field as shown below. ```yaml metadata: labels: {{- include "web-app.labels" . | nindent 4 }} ``` 💡 The indent 4 field is used to place the labels after 4 indentation. This way, even **if you need to change something**, just update it in the **`_helpers.tpl`** file and it gets applied to all the templates that references it. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-8.png) Another interesting features is **you can substitute values** from `chart.yaml` and `values.yaml` files in the `_helpers.tpl`. For example, you might want to add the image name, version and app details dynamically to the object metadata. Here is an example. ```bash {{- define "web-app.labels" }} app.kubernetes.io/name: {{ .Chart.Name }} app.kubernetes.io/version: {{ .Chart.Version }} app.kubernetes.io/managed-by: {{ .Release.Service }} environment: {{ .Values.env }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" {{- end }} ``` The following image illustrates the high-level flow of how **`_helpers.tpl`** works in a Helm chart. ![image illustrating the high-level flow of how _helpers.tpl works in a Helm chart.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/05/image-6.png) It is somewhat similar to [Jenkins shared library](https://devopscube.com/jenkins-shared-library-tutorial/) or GitHub Actions reusable workflows, but scoped to a helm chart. In short, **`_helpers.tpl`** is a recommended file to **store template partials.** 💡 ****Key Insight:** Helm treats files starting with `_` as helper/partial files and does not render them as [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) manifests. However, you can use the defined block in any chart template. Same logic applies to `_helpers.tpl` ## helpers.tpl Hands On Example Now lets look at a hands on example on how we can use `_helpers.tpl` for partials in a Helm chart. Here is what we are going to do. - We will create a **`_helpers.tpl`** which defines the labels used in the deployment and services templates. - Also, it gets label values from `chart.yaml` and `values.yaml` files. - During installation, the label block will be included in both the deployment and services templates. Lets get started. ### Step 1: Create a Helm Boilerplate To start, lets create a Helm boilerplate with the following command. ```bash helm create web-app ``` This will create a Helm chart directory structure, from that remove the values file and files inside the /templates folder, which we will create with the TPL file. ```bash rm -rf web-app/templates/* rm web-app/values.yaml ``` ### Step 2: Create a values.yaml file Run the following command to create the values file. ```bash cat > web-app/values.yaml << 'EOF' replicaCount: 1 image: repository: nginx tag: "1.25" service: type: ClusterIP port: 80 env: stage EOF ``` In here, we added an env field, which we will be using in a label block with the .tpl file. ### Step 3: Write the \_helpers.tpl File Lets create a simple **`.tpl`** file using the following command. ```bash cat > web-app/templates/_helpers.tpl << 'EOF' {{- define "web-app.labels" -}} app: {{ .Release.Name }} version: {{ .Chart.AppVersion }} managed-by: Helm env: {{ .Values.env }} {{- end }} EOF ``` In this partial, we defined four labels. - **app name** \- This will be based on the Helm release name - **version** \- Uses the app version in the Charts.yaml file - **managed-by** \- This is static and specified as Helm - **env** \- This label will be used from the values file 📌 In this TPL file, we only added the label block. What you want to add depends upon your specific use case. ### Step 4: Create a Deployment and Service Template With Partials In this step we will create a deployment and service template that includes the partial from the helper file. Lets create a deployment Helm template with the label partial. ```bash cat > web-app/templates/deployment.yaml << 'EOF' apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }} labels: {{- include "web-app.labels" . | nindent 4 }} spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: app: {{ .Release.Name }} template: metadata: labels: {{- include "web-app.labels" . | nindent 8 }} spec: containers: - name: nginx image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" ports: - containerPort: 80 EOF ``` Now run the following to create a service template file with the label partial. ``` cat > web-app/templates/service.yaml << 'EOF' apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }} labels: {{- include "web-app.labels" . | nindent 4 }} spec: type: {{ .Values.service.type }} selector: app: {{ .Release.Name }} ports: - protocol: TCP port: {{ .Values.service.port }} targetPort: 80 EOF ``` In both files we created, you can see that we **called the `.tpl` file using `include "web-app.labels"`.** The partial we defined inside the `.tpl` file will be substituted here. ### Step 5: Validate the Helm Chart Before installing the chart, lets render it and see if all labels are adding correctly. ```bash helm template web-app ./web-app ``` You will get an output of the YAML files with the labels rendered from the partial in **`_helper.tpl`** For example, the label block will be like this. ```bash labels: app: web-app version: 1.16.0 managed-by: Helm env: stage ``` ### Step 6: Install the Chart Now that the rendering checks if it runs without any issue, let's install the chart. ```bash helm install web-app ./web-app ``` You will get an output as follows. ```bash NAME: web-app LAST DEPLOYED: Tue Apr 28 14:41:52 2026 NAMESPACE: default STATUS: deployed REVISION: 1 DESCRIPTION: Install complete ``` And, check the labels of the deployment, you can see all the labels added to it that we defined in the partial. ```bash $ kubectl get deploy web-app --show-labels NAME READY UP-TO-DATE AVAILABLE AGE LABELS web-app 1/1 1 1 46s app.kubernetes.io/managed-by=Helm,app=web-app,env=stage,managed-by=Helm,version=1.16.0 ``` ### Step 7: Clean Up To uninstall Helm use the following command. ```bash helm uninstall web-app ``` ## Conclusion In summary, **`_helpers.tpl`** is a simple file that helps you avoid duplicating blocks in Helm templates. Instead of copying the same block in multiple files, just define the block in the `_helpers.tpl` file and call it using the include field inside the templates. Here are the key things to remember. - It should be used for **reusable template logic**, not for putting large amounts of application configuration or complicated business logic. - Dont turn Helm into a programming language with deeply nested or complex logics in partials. ### From 3.17 GB to 354 MB: How I Reduced My Kubeflow Docker Image by 89% URL: https://devopscube.com/kubeflow-docker-image-optmization/ Last updated: 2026-05-02T06:12:53.000Z In this blog, I shared how I reduced a Kubeflow pipeline Docker image from **3.17 GB down to 354 MB** (an 89% reduction) and the reasoning behind every change I made. A little backstory. As part of our [MLOps](https://devopscube.com/devops-to-mlops/) workflow, I took over an existing Kubeflow pipeline developed by a different ML engineer. While working on the pipeline, when I checked the image size, it was 3.17 GB. During the discussion with the DevOps team, we agreed this was unacceptable for a pipeline that runs on every model retrain. So my only goals were, - To [reduce the size of the Docker image](https://devopscube.com/reduce-docker-image-size/) significantly - Make sure the pipeline still runs without errors Here is what I learned along the way including a few things I wish I had known before I started. ## The Starting Point: A Bloated 3.17 GB Docker Image For running my Kubeflow pipeline, I need to install the following packages and dependencies, which are contained in my **`requirements.txt`** file. This was the **`requirements.txt`** file before optimization. ```python # training scikit-learn numpy pandas pandera matplotlib seaborn boto3 python-dotenv # (optional) pyarrow joblib # Feast/pandas can read s3:// URLs: s3fs # kubeflow kfp kfp-kubernetes kubernetes kubeflow kubeflow-training # mlflow mlflow # API / Serving flask flask-cors # feast-feature-store feast feast[redis] feast[postgres] torch ``` And, this was the **`Dockerfile`** before optimization. ```YAML FROM python:3.11-slim # Install system dependencies RUN apt-get update && apt-get install -y git && apt-get clean # Set working directory WORKDIR /app # Copy entire project COPY . . # Install dependencies RUN pip install --no-cache-dir -r requirements.txt # Install your project as a package RUN pip install --no-cache-dir . ``` When I ran the Docker build command, it built an image of **3.17 GB.** And also it took a time of nearly **800 seconds ( 13 minutes )** to build the image. ```bash $ docker images IMAGE ID DISK USAGE CONTENT SIZE kubeflow_pipeline:v1 09e88c766290 9.47GB 3.17GB ``` ``` [+] Building 797.2s (12/12) FINISHED ``` ## Audit packages and dependencies Let's see the history of the image build, So that we can **understand at which layer of the build it took more of the size**. And remove what packages we dont need at runtime. For we need to run the command. ```bash docker history kubeflow_pipeline:v1 --no-trunc --format "table {{.Size}}\t{{.CreatedBy}}" ``` Here is the output. ```Bash $ docker history kubeflow_pipeline:v1 --no-trunc --format "table {{.Size}}\t{{.CreatedBy}}" SIZE CREATED BY 319kB RUN /bin/sh -c pip install --no-cache-dir . # buildkit 5.98GB RUN /bin/sh -c pip install --no-cache-dir -r requirements.txt # buildkit 10.3MB COPY . . # buildkit 8.19kB WORKDIR /app 138MB RUN /bin/sh -c apt-get update && apt-get install -y git && apt-get clean # buildkit 0B CMD ["python3"] ``` As you can see that the `requirements.txt` layer in the docker file takes the most size. 💡 ****Always remember:** If your Docker image size is huge, do not start with the [Dockerfile](https://devopscube.com/create-dockerfile-using-docker-init/), start with optimizing your packages and dependencies. Now, Let's go through the strategies for Image Optimization step by step: ## Two Strategies for Image Optimization To reduce the size of my Docker image, I followed a few key steps. 1. Packages and dependencies optimization 2. Multistage build (separate build artifacts from runtime) 3. `dockerignore` file ### Step 1: Packages and dependency Optimization During development stages, the ML engineer added many dependencies to `requirements.txt` file. From an analysis, I found many package are not required for the kubeflow training pipeline. So, from the `requirements.txt` file, I removed many unwanted and duplicate packages and dependencies. Now you might wonder. How do I analyse, that a specific package is not needed in my project? There are 2 ways to find out: We can use the `grep` command to find whether the installed packages from the requirements.txt file is used in our project or not ```Bash kubeflow-training-pipeline % grep -R "import numpy". ``` You will get an output ``` ./src/model_development/_09_evaluation.py:import numpy as np ``` This tells us that, the installed package `numpy` is imported and used at the specific path In this way, I removed some of the unwanted packages from the requirements.txt file like `torch` But we should not rely on the `grep` command, Because when we run the grep command on `kfp-kubernetes` It shows no output. So don't remove the `kfp-kubernetes` from the requirements.txt file. Because, some packages are needed for: - pipeline compilation - kubernetes execution - SDK behavior That are not necessarily imported in `.py` files Here comes the next method . **Validation method:** In this method, we will remove a package from the `requirements.txt` file, Rebuild the [container](https://devopscube.com/run-docker-containers-as-non-root-user/), Run the pipeline Like, I remove the `kfp-kubernetes` , I rebuild the container and Run the pipeline. If I see any errors like: - Component not found - Kubernetes configuration issues - Pipeline execution failed In this way I can understand that, the `kfp-kubernetes` package is mandatorily needed for our Kubeflow pipeline. Now let's see What Packages and dependencies were removed for the optimization, and why? Lets go through it step by step : - I removed `torch` because Torch alone can get up to a size of nearly **700 MB to 2 GB** - If the pipeline component is only responsible for **data preprocessing**, **model evaluation**, or orchestration, a [GPU](https://devopscube.com/setup-gpu-operator-kubernetes/) training package like Torch is not needed inside the image 💡 You can check this [link](https://download.pytorch.org/whl/cpu?ref=devopscube.com) to see which GPU packages are installed by torch. - `matplotlib` and `seaborn`belong are data visualization libraries, visualizations belongs in the notebooks or a separate analysis step. Removing them saves space since matplotlib carries several heavy dependencies inside. - `kubeflow` and `kubeflow-training` are also not needed, the `kfp` and `kfp-kubernetes` already gives us everything we need to define, compile, and run the Kubeflow pipelines. The Kubeflow and Kubeflow-training packages are high-level SDKs used for training operators like PyTorchJob or TFJob - `flask` and `flask-cors` , these are web frameworks used for serving the API's. A Kubeflow-training pipeline container is not an API server. It just runs a job and exits. - Before optimization `feast` was duplicated into separate 3 lines. ``` feast feast[redis] feast[postgres] ``` We made it to one line `feast[redis,postgres]` Because, multiple lines of the same package can cause conflicts and redundant installs. And after optimization, my final requirements.txt file looks like this: ``` numpy pandas scikit-learn joblib pandera python-dotenv s3fs boto3 botocore kfp kfp-kubernetes kubernetes mlflow feast[redis,postgres] pyarrow fsspec ``` After I checked my Docker image size: ```Bash $ docker images IMAGE ID DISK USAGE CONTENT SIZE kubeflow_pipeline:test 09e88c766290 1.8GB 410MB ``` And the build time reduced nearly half **400 seconds ( 6 minutes )** ``` [+] Building 402.9s (12/12) FINISHED ``` 💡 ****Key Takeaway:** In a MLOps environment, package auditing is the first line of defense against bloated images in pipelines. ### Step 2: Implementing Multi-Stage Build After removing the unwanted dependencies. Next is to create a **multi-stage** Dockerfile. Its not an application, its just a base image for a pipeline, so why should I use multi-staging? The answer is, it is not mandatory, but its really useful. As you know, multi-stage means build one stage, copy only what we need, and run on a clean stage. So I rewrote my Dockerfile to multi-stage: ```Docker # Stage 1: Build FROM python:3.11-slim AS builder WORKDIR /install COPY requirements.txt . RUN pip install --prefix=/install --no-cache-dir -r requirements.txt # Stage 2: Runtime (lighter) FROM python:3.11-slim WORKDIR /app COPY --from=builder /install /usr/local COPY setup.py . COPY src/ ./src/ COPY _feast/ ./_feast/ COPY _kubeflow/ ./_kubeflow/ COPY _mlflow/ ./_mlflow/ RUN pip install --no-cache-dir . ``` Stage 1 is a temporary stage (or) workspace. It installs the [Python](https://devopscube.com/python-for-devops/) dependencies from `requirements.txt` into a separate `install` folder. This stage is cleaned away after the build, so it never ends up in your final image. The second stage is the actual final image**,** where it starts with a clean [Py](https://devopscube.com/python-numpy-tutorial/)[thon](https://devopscube.com/python-numpy-tutorial/) environment and only copies the installed packages from Stage 1, which means, no build tools, no cache, no junk. Then it copies your project folders into the `/app`directory inside the container. Finally, It runs the `pip install` command which ensures that the project folder is globally recognized within the container. ```bash $ docker images IMAGE ID DISK USAGE CONTENT SIZE kubeflow_pipeline:v2 09e88c766290 1.59GB 353MB ``` As you can see, after multi-stage building my Docker image, the size was reduced from **410Mb to 353Mb** , ie **60MB** **reduction**. That is not much but still helpful. But the build time is reduced to just **200 seconds ( 3 minutes )** ``` [+] Building 197.4s (12/12) FINISHED ``` ### Step 3 : Docker ignore The Docker ignore file acts as a Control center, that decides what are the files and folders that should not go inside our docker image. In our previous docker file, we can see a line: ```Docker COPY . . ``` When this line runs from your docker file, It not just only copy files into the image. It sends your entire project directory to your Docker daemon, we call it as build context. ### What if there is no dockerignore file? Without a **`dockerignore`** file, Docker includes each and everything inside your project directory. - `.git` - virtual environments (`venv/` , `.venv/`) - environment files ( `.env` ) - cache files (`__pycache__`) Even if we dont use them, they will still get uploaded and copied to our image. ### Verify dockerignore is working We have a command to verify, the **`dockerignore`** file. ```Bash docker build --no-cache --progress=plain -t test . ``` This command will give us an output, ``` => => transferring context:249B ``` This is we looked for, If we see another output like: ``` Sending build context to Docker daemon 847MB ``` This means Large files are being sent, it includes the directories that I mentioned early ( `.git` , virtual environments, etc ) So we should recheck our dockerignore file before [building the Docker image.](https://devopscube.com/build-docker-image/) ## Final Results The following table shows the final before and after optmization results. | What Improved | Before | After | | ------------- | --------------------------- | ---------------------------- | | Image Size | 3.17 GB | 354 MB (↓ 89%) | | Build Time | 13 minutes | 3 minutes (↓ 75%) | | Dependencies | Unused + duplicate packages | Minimal required packages | | Dockerfile | Single-stage | Multi-stage | | Build Context | Large | Optimized with .dockerignore | ## Real World Impact The image size is reduced, But does this matter? Yes it does. - **Reduced Build time:** As you can see, the more smaller the image the less time it takes to build, We reduced the build time **from 13 minutes to just 3 minutes.** - **Faster pulls:** We will get faster pull time in new EKS nodes - Avoids unwanted registry storage costs. ## Conclusion By combining multi-stage Docker builds with a leaner, deduplicated `requirements.txt`, I reduced the image size from 3.17 GB to just 354 MB, **almost a 89% reduction.** The key takeaway is simple, as a developer, **only include what your pipeline actually needs** at runtime. So image optimization is a colloaborate effort between Data Scientists, Developer and a [DevOps engineer.](https://devopscube.com/become-devops-engineer/) A smaller image means faster builds, quicker deployments, and a cleaner production environment, all without sacrificing functionalities. ### How to Setup Feast Feature Store on Kubernetes URL: https://devopscube.com/setup-feature-store-feast-on-kubernetes/ Last updated: 2026-09-07T15:27:21.000Z In this step-by-step guide, you will learn to setup and validate Feast Feature store on Kubernetes using Feast Operator. Feature Store is the core component of [MLOps](https://devopscube.com/devops-to-mlops/) and [Feast](https://feast.dev/?ref=devopscube.com) is the widely used feature store for ML projects. By the end of this guide, you will have a clear understanding of: - What is Feast? - Key Feast components - Feast Operator setup on Kubernetes - Deploy Feast using CRD and configure offline and online stores. - Use a simple Python script to verify feature serving Lets get started. ## What is Feast? Feast is an open source feature store used by teams to store, manage, and serve ML features for both [training](https://devopscube.com/kubeflow-trainer/) and [inference](https://devopscube.com/deploy-ml-model-kubernetes-kserve/). Feast acts as a centralized storage for features that will be used by different teams. The following image illustrates the Feast architecture on [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). ![Architecture diagram of the Feast feature store on Kubernetes showing core components](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-112.png) The following are the key components of Feast. - **PostgreSQL Feature Registry**: It stores the definitions (schema) of the features. Eg,. age, name, etc. - **Redis Online store**: It is used to reduce the latency during inferencing. - **Offline store**: It is used to store historical features used for model training. - **Feast pod**: It serves latest features to ML model by reading from the registry and the online store. - **Feast CLI**: It is a tool used to connect Feast and to run Feast commands. It connects to feature registry, offline Store and online Store Lets get started with the setup. ## Setup Prerequisites Following are the prerequisites to follow this guide. - [Kubernetes cluster](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/) - [kubectl](https://devopscube.com/kubectl-set-context/) - Python 3+ - Pip ## GitHub Repository First, fork and clone the [MLOPs Github repository. ](https://github.com/techiescamp/mlops-for-devops.git?ref=devopscube.com) ``` https://github.com/techiescamp/mlops-for-devops.git ``` CD into the `mlops-for-devops` directory. ```bash cd mlops-for-devops ``` ****Note:** I have already pushed the required manifest file for PostgreSQL. Redis and Feast CR inside the `platform-tools/feast` folder of the repository that you cloned before. The files we are going to use in this guide are shown below. ```bash . ├── phase-1-local-dev │ └── datasets │ └── employee_attrition.csv ├── phase-2-enterprise-setup │ └── feast │ ├── csv_to_parquet.py │ ├── feature_store.yaml │ ├── feature_definitions.py │ └── smoke_test.py └── platform-tools └── feast ├── feast.yaml ├── psql.yaml └── redis.yaml ``` ## Setup Feast on a Kubernetes Cluster The first step is to setup Feast on a [Kubernetes cluster](https://devopscube.com/kubernetes-architecture-explained/) using the [Feast Operator.](https://github.com/feast-dev/feast/tree/master/infra/feast-operator?ref=devopscube.com) Here is what we are going to do. - Setup feast operator - Deploy Redis and [PostgreSQL](https://devopscube.com/deploy-postgresql-statefulset/) for the registry and Online store - Uses **`FeatureStore`** [Custom Resource](https://devopscube.com/kubernetes-objects-resources/) to create Feast feature store 💡 We will expose Redis, PostgreSQL, and Feast as NodePort, because we need to access it from local to store and get features. In actual setup, use [Ingress](https://devopscube.com/kubernetes-ingress-tutorial/) or [Gateway API ](https://devopscube.com/kubernetes-gateway-api/)to expose Feast externally. Lets get started. ### Step1: Install Feast Operator Use the following command to deploy the Feast Operator. It will deploy the operator on the `feast-operator-system` namespace. ```bash kubectl apply --server-side --force-conflicts -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/dist/install.yaml ``` Run the following command to verify if the operator is running and CRD is created. ```bash $ kubectl get pods -n feast-operator-system $ kubectl get crd featurestores.feast.dev ``` You should see the following output. ```bash NAME READY STATUS RESTARTS AGE feast-operator-controller-manager-482tt 1/1 Running 0 38s NAME CREATED AT featurestores.feast.dev 2026-01-08T10:32:38Z ``` ### Step 2: Create a Namespace for Feast Deployment We will be deploying the Feast pods on a dedicated namespace named **`feast`**. Create it using the following command. ```bash $ kubectl create namespace feast ``` ### Step 3: Setup PostgreSQL for Feast Registry We need to set up PostgreSQL as a registry for Feast. It stores the metadata of Feast. Assuming you are in the `**root**` directory, run the following command to move into the `platform-tools/feast` folder. ```bash cd platform-tools/feast ``` You will find the following files. ```bash . ├── feast.yaml ├── psql.yaml └── redis.yaml ``` The **`psql.yaml`** manifest, deploys a kubernetes **`secret`** that contains the PostgreSQL username, password, and database name as shown below. (**feast** as default) ![modify psql manifest file](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-12.png) It also contains manifest to deploy [PostgreSQL as a StatefulSet](https://devopscube.com/deploy-postgresql-statefulset/) and Service to expose PostgreSQL as Nodeport. Now, apply the PostgreSQL manifest using the following command. ```bash $ kubectl apply -f psql.yaml ``` Then run the following command to ensure the postgres [pod](https://devopscube.com/kubernetes-pod/) is up and running. ```bash $ kubectl get po -n feast NAME READY STATUS RESTARTS AGE postgres-0 1/1 Running 0 34s ``` ### Step 4: Setup Redis for Feast Online Store Next, we need to deploy **Redis Statefulset**. It will be the **online store for Feast.** The `redis.yaml` manifest creates a `secret` that contains the Redis password, Redis as StatefulSet, and a Service to expose Redis as Nodeport. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-14.png) Now, apply the manifest using the following command. ```bash $ kubectl apply -f redis.yaml ``` Then run the following command to ensure the redis pod is up and running. ```bash $ kubectl get po -n feast NAME READY STATUS RESTARTS AGE postgres-0 1/1 Running 0 1m redis-0 1/1 Running 0 8s ``` You can see a Redis pod along with the PostgreSQL pod. 💡 In this setup, we will be using a ****CSV file directory as offline store**. For production environment, the offline store would be usually on BigQuery, Snowflake, Redshift, and [others](https://docs.feast.dev/reference/offline-stores?ref=devopscube.com). ### Step 5: Deploy Feast Feature Store Now its time to deploy the Feast feature store using the **`FeatureStore`** CR. It tells the Feast operator to deploy the Feast pod, its service, and configure the backend storage. The `feast.yaml` manifest will create a secret that contains the **connection string of Redis and PostgreSQL**, along with the credentials to authenticate them. Additionally, it will also create an extra service to expose it as a NodePort. Apply the manifest using the following command. ```bash $ kubectl apply -f feast.yaml ``` Then run the following command to check if the Feast [deployment](https://devopscube.com/kubernetes-deployment-tutorial/) is up and running. ```bash $ kubectl get po -n feast NAME READY STATUS RESTARTS AGE feast-feast-tbn5k 1/1 Running 0 30s postgres-0 1/1 Running 0 3m redis-0 1/1 Running 0 2m ``` You can see that all three pods are running. ## Feature Repository The **`phase-2-enterprise-setup/feast`** directory which contains all the feast Python files to create, store, and retrieve features. It is called the **feature respository.** ```bash cd ../../phase-2-enterprise-setup/feast/ ``` Here is the structure of our feature repository. ```bash . ├── csv_to_parquet.py ├── feature_store.yaml ├── feature_definitions.py ├── smoke_test.py └──.feastignore ``` In this: - **`feature_store.yaml`** \- It is the configuration file that Feast CLI uses to read the Redis and PostgreSQL connection strings. It should be present in root of a feature repository - **`csv_to_parquet.py`** \- Contains logic to process the CSV file and convert it to a Parquet file. - **`feature_definitions.py`**\- It is the **schema/contract** for the feature store (feature registry definition file) . Meaning, it defines what features exist, where the data comes from, and how they should be served - **`smoke_test.py`** \- It is a smoke-test script that hits the Feast online feature store HTTP API and verifies that real-time feature retrieval is working end-to-end. - **`.feastignore`** \- Contains file and folder names that should be ignored by feast apply. ## Store Features into Feast feature store Now, our setup is ready. Now lets look at how to store features into Feast feature store. Both offline and online store. Lets get started. ### Step 1: Setup Feast CLI In the local environment, we need to install Feast CLI along with PostgreSQL and Redis packages. Run the following command to create a isolated virtual environment and install the Feast CLI with PostgreSQL and Redis packages. ```bash python3.11 -m venv env source env/bin/activate pip install --upgrade pip setuptools wheel pip install 'feast[postgres,redis]' ``` ### Step 2: Update NodePort IP to feature\_store.yaml Since we need to run the feast commands from our local workstations, we have exposed Feast as NodePort. So you need to update one of the cluster node IP in the **`feature_store.yaml`** file. To get the node IP, run the following command. ```bash kubectl get no -o wide ``` 💡 Ideally the feast endpoint would be a kubernetes service url if feast is running in the same cluster or a [ingress](https://devopscube.com/kubernetes-ingress-tutorial/) endpoint if it is in a different cluster. ### Step 3: Setup Offline Source (Convert CSV to Parquet) For model training, an offline store is used. For **file based feast offline store**, we need to **convert the CSV to Parquet format.** 💡 Feast's file-based offline store (local/S3/GCS) uses [****Parquet**](https://parquet.apache.org/?ref=devopscube.com) (A column-oriented data file format) & [Delta](https://delta.io/?ref=devopscube.com) as its source format. For other data warehouse-based offline stores like BigQuery and Redshift, Feast interacts with native tables and SQL queries. The **`csv_to_parquet.py`** has the code to generate the Parquet file by processing the data on the **`employee_attrition.csv`** file. ![code to generate the Parquet file by processing the data on the employee_attrition.csv file. ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-116.png) Here is high level overview of what the script does. - Reads `employee_attrition.csv` from your `phase-1-local-dev/datasets/` - Since ML models need numbers, it converts `Yes/No` columns (Overtime, Remote Work, etc.) to `1/0` - Feast expects `**snake_case**` column names. So it converts `Monthly Income"` to `"monthly_income` etc - Add Feast-required timestamp column like **`event_timestamp`** & **`created`** - Writes the final output to `data/employee_attrition_features.parquet` . This file becomes the **offline data source** that Feast reads from. Run the Python Script **`csv_to_parquet.py`** using the following command. ```bash python csv_to_parquet.py ``` Now, if you check the `/phase-2-enterprise-setup/feast/data` folder, you can see a `employee_attrition_features.parquet` file created. 💡 Now we are using the offline store in local environment under the **`/data`** folder. It is perfect for local development. During actual training, the feature data (Parquet file) is generated using data pipelines ( [Kubeflow](https://www.kubeflow.org/?ref=devopscube.com) or [Airflow](https://devopscube.com/apache-airflow-on-kubernetes/)) and stored on services like S3, GCS etc. ### Step 4: Register Features to Feast I already have a Parquet file. *So why do I need to register features in Feast?* Well, Parquet file only stores data. Feast needs a structured definition (schema, entity, source, and usage) to serve those features consistently across training and inference. Registering features involves two commands: - **feast apply** \- This reads the `feature_definitions.py` that has the feature definitions and registers them in its internal registry (In our case its [PostgreSQL](https://devopscube.com/deploy-postgresql-statefulset/)). - **feast materialize** \- This reads the definitions in PostgreSQL registry and Parquet file in the offline store and stores the values in Redis online store. 💡 Materilizing is the porcess of moving features from offline store to the online store The folloing image illustrates the feast apply and materialize workflows. ![image illustrating the feast apply and materialize workflows.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-114.png) Lets run the apply command. ```bash feast apply ``` You will get the following output if the apply command is successful. ```bash Applying changes for project employee_attrition Deploying infrastructure for employee_features ``` Now that the features are registered, you can view them using the following command. When a developer runs this, they immediately know exactly which features the model needs and in what order without asking a data scientist. ```bash feast feature-views describe employee_features ``` You will get an output as shown below. ```yaml spec: name: employee_features entities: - employee_id features: - name: age valueType: INT64 description: Employee age . . ``` Here, the **entity is the primary key**. So, when you fetch features at inference time, you dont have to fetch all the features. You say "*give me features for* `*employee_id*`. Feast uses `employee_id` as the lookup key to find the right row in the online store (Ex: Redis) ### Step 5: Setup Online Store (Redis) To setup the online store, we need to **run the materialize command** as shown below. ```bash feast materialize-incremental $(date -u +"%Y-%m-%dT%H:%M:%S") ``` You will get the following output if the materialization is successful. ```bash Materializing 1 feature views to 2026-04-02 12:49:12+00:00 into the redis online store. employee_features from 2025-04-02 12:49:39+00:00 to 2026-04-02 12:49:12+00:00: ``` In the feast command, `$(date -u +"%Y-%m-%dT%H:%M:%S")` means we are specifying the current UTC timestamp as the time features are materialized and stored in the registry for tracking. And, when you run the materialize-incremental command again, it will only save the changes from the last run. 💡 In production setup, the feature materialization happens through Kubeflow pipeline or an Airflow DAG. ### Step 6: Validate Feature Serving Now, the features have been added to the Feast feature store. Let's use simple Python script to validate if Feast is able to serve the features. The Python script **smoke\_test.py** we are going to use in the `phase-2-enterprise-setup/feast` folder. This script sends multiple requests to the Feast online API and measures the time taken to fetch features. It prints feature serving latency metrics such as **p50, p95, and p99**, which are commonly used in SRE and DevOps. 💡 Open the `smoke_test.py` and update your `node-ip` in `FEAST_ENDPOINT` Now, run the script using the following command. ```bash $ python smoke_test.py ``` You will get the following output. ```bash Feature Serving Latency (100 runs) Min: 491.81 ms p50: 513.82 ms p95: 674.24 ms p99: 732.57 ms Max: 732.57 ms Mean: 542.29 ms ``` These metrics help us understand real-time feature serving performance. It is particularly useful to define and validate [**SLOs**](https://sre.google/sre-book/service-level-objectives/?ref=devopscube.com) **(Service Level Objectives) as** an MLOps engineer. For example, you can set an SLO like *“p95 latency should be under 200 ms”* . 💡 In production these metrics are monitored using tools like [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) and [Grafana](https://devopscube.com/setup-grafana-kubernetes/) ## Clean Up If you no longer need the setup, run the following commands to delete it ```bash $ kubectl delete namespace feast $ kubectl delete -f https://raw.githubusercontent.com/feast-dev/feast/refs/heads/stable/infra/feast-operator/dist/install.yaml ``` ## Feast Troubleshooting Following are some of the issues you may face and their solutions. ### 1\. PVC Stuck in Pending State While creating PostgreSQL and Redis, their PVC might end up in pending state. To troubleshoot, check the following: - Dynamic PV creation is available in your cluster - Check if you have given the correct [StorageClass](https://devopscube.com/provsion-persistent-volume-on-eks/) name under the `volumeClaimTemplate` block. ### 2\. Missing CRD Error When you apply the feast.yaml manifest, you may get the following error. ```bash the server could not find the requested resource (post featurestores.feast.dev) ``` If you got this error, check if the Feast Operator pods are up and running. ```bash kubectl get pods -n feast-operator-system ``` If the pods are not running, delete and re-run the installation command. ## Conclusion You now have a production-style Feast setup running on Kubernetes, with the registry, online store, and feature serving all deployed through the Feast Operator. Most importantly, you have seen how `feast apply` registers schema in PostgreSQL, how `feast materialize` moves data from the offline store into Redis, and how the online API serves features. If you are a [DevOps engineer](https://devopscube.com/become-devops-engineer/), understanding feast architecture and its workflows will help you in MLOps projects as it is a core component in ML development. Another key area is monitoring feature freshness and serving latency as SLOs. We will cover it in detail in a separate blog. If you have any questions or face any issues during the setup, do let us know in the comments. ### Istio Architecture: The Definitive Guide to Ambient Mesh URL: https://devopscube.com/istio-architecture/ Last updated: 2026-07-02T15:17:26.000Z In this blog, we dive deep into Istio service mesh architecture, especially Ambient Mesh, which is expected to become the default service-mesh architecture. By the end of this blog, you will learn: - Why Istio needed a new architecture - Overview of Istio architecture - Deep dive into key components: Istiod, Ztunnel, Waypoint Proxy, and CNI - Is Ztunnel a single point of failure? - Business use cases of Ambient Mesh, including cost benefits. and more. Lets get started. ****Note:** Ambient mesh reached GA in Istio 1.24 (November 2024). ztunnel, waypoints, and all APIs are Stable and production-ready. ## Istio Architecture (Ambient Mesh) Istio Ambient Mesh consists of the following key components. 1. Istio Control Plane (Istiod) 2. Ztunnel (The Per-Node Layer 4 Proxy) 3. Waypoint Proxy (For Layer 7 Traffic Management) 4. Istio Gateway (To Handling External Traffic) 5. Istio CNI (Node agent) The following diagram illustrates the 1000-foot view of the Istio Ambient mesh. ![Detailed Istio Architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-83.png) 1000-foot view of the Istio Ambient mesh architecture Lets dive deep into each component and see how it works and how it fits into the overall mesh architecture. ## **Istiod (The Control Plane)** Think of Istiod as the brain of your service mesh. It doesn't handle any actual traffic. Instead, it tells all the [proxy](https://devopscube.com/setup-and-configure-proxy-server/) components (ztunnel, waypoint etc) on what rules to follow. Initially the Istio control plane was split into three separate services. 1\. Galley for config validation, 2\. Pilot for traffic management, and 3\. Citadel for security. Now they merged everything into a **single binary called Istiod** (the Istio Daemon). ![Istiod architecture (The Control Plane) ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-84.png) Here is what Istiod does. - Istiod watches Kubernetes for Istio custom resources (like `VirtualService`, `DestinationRule`, etc.) that are created, updated, or deleted. - It then validates the CRD configs. - It then **converts the routing and policy rules** from CRDs into detailed configuration, and pushes them to all proxy components (sidecars, gateways, ztunnel, waypoint) using the xDS protocol. - Istiod also does the certificate management for for mutual TLS (mTLS) inside the mesh so services can authenticate and communicate securely - If something changes in Kubernetes that affects the mesh (for example a [pod](https://devopscube.com/kubernetes-pod/) stops), Istiod detects the Endpoint change and immediately **pushes updated routing** **info** to all proxies so they stop sending traffic to the dead pod. ****What is xDS?** It is a set of APIs that Istiod uses to push configuration updates to proxies. If you want to understand more, please [read this edition.](https://newsletter.devopscube.com/p/xds-protocol?ref=devopscube.com) ## Istio Data Plane The data plane does the actual work. Every request between services passes through it. Data plane consists of lightweight proxies. All the incoming and outgoing traffic inside the cluster flows through these proxies. The control plane pushes routing rules and configurations to these proxies. Here is what the data plane handles. - Load balancing and [service discovery.](https://devopscube.com/service-discovery-explained/) - Traffic management(routing, retries, timeouts, canary releases, and traffic splitting) - It enforces mutual TLS (mTLS) between services, along with authentication and authorization. Your app does not need to manage certificates. - It collects **telemetry data**, such as metrics, logs, and distributed traces. - **It applies resiliency features** like circuit breakers, fault injection etc.. In Ambient mode, the data plane has two components. 1. Ztunnel (L4 proxy) 2. Waypoint ((L7 proxy) Lets look at each data plane component in detail. ### Ztunnel - Layer 4 Proxy Ztunnel stands for **Zero Trust Tunnel**. It is a **rust based proxy** and the core building block of Ambient Mesh. Instead of running a proxy inside every pod, Ztunnel runs as a [**DaemonSet**](https://devopscube.com/kubernetes-daemonset/) (one pod per node). All traffic from pods on that node flows through the Ztunnel on the same node first. Ztunnel **handles all Layer 3 and Layer 4** features like encryption, identity, and basic access control. It uses the HBONE protocol (HTTP-Based Overlay Network Environment) to create encrypted tunnels between services. The following diagram illustrates the traffic flow via Ztunnel in the mesh. ![Istio Ztunnel - Layer 4 Proxy architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-54.png) Here is how it works. - When traffic enters a node, **ztunnel intercepts it** **using iptables** by default ( You can also enable eBPF-based redirection) - Once intercepted it handles Layer 3 and 4 traffic - It then uses the [**HBONE protocol**](https://newsletter.devopscube.com/p/hbone?ref=devopscube.com) to create secure tunnels between services, ensuring zero trust communication. - It also enforces Layer 3 and 4 mTLS encryption, authentication, authorization policies covering identity, IP addresses, and ports. - Throughout this process, it **collects Layer 4 telemetry** including TCP metrics and connection logs. - Behind the scenes, ztunnel communicates with the Istio daemon using xDS APIs to receive configuration updates dynamically. 📈 ****Ztunnel Performance Benchmark** From Istio's 1.24 [official benchmark data](https://istio.io/latest/docs/ops/deployment/performance-and-scalability/?utm%5Fcampaign=istio-ambient-mesh-explained-with-diagrams&utm%5Fmedium=referral&utm%5Fsource=newsletter.devopscube.com): a single ztunnel at 1,000 req/sec consumes approximately 0.06 vCPU and 12 MB of memory. That is a 3x reduction per-proxy compared to sidecars Next, lets look at Waypoint proxy. ### Waypoint Proxy - Layer 7 Proxy Ztunnel only understands TCP. Meaning, it has no idea about HTTP headers, request paths, or retry logic. When you need **Layer 7 features** like HTTP routing, canary [deployments](https://devopscube.com/kubernetes-deployment-tutorial/), circuit breaking, rate limiting, or fault injection you need to implement an optional **Waypoint Proxy (envoy)**. Now, you may ask, *why Waypoint is an optional component?* Well, n**ot every service needs L7 features**. So use it only when you actually need HTTP routing, circuit breaking, rate limiting etc. (Its a design choice). Now, a key things to understand is, **Waypoint proxy works on top of Ztunnel**. It cannot function without Ztunnel being present. Ztunnel handles the L4 secure tunnel, Waypoint sits inside that tunnel and handles L7 logic. The following image illustrates the Waypoint proxy traffic flow. ![Istio Waypoint Proxy - Layer 7 Proxy architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-85.png) 💡 Waypoint proxy is an Envoy proxy built in C++, so it delivers very high performance by handling advanced L7 features. Here is how it works. - First, you need to **enable L7 policies by adding a label** to your Service or Namespace. - When any source ztunnel gets traffic from the labelled services, it knows from its xDS config to route to the waypoint address instead of directly to the destination ztunnel. - The ztunnel then **builds an HBONE tunnel** to the waypoint proxy. - The waypoint proxy (Envoy) performs L7 processing ( retries, traffic splitting etc) - After processing, the **waypoint forwards traffic via another HBONE** tunnel to the destination ztunnel, which delivers to the pod. ****Important Note:** There are different patterns for using waypoint. You can use it per namespace, per service, or multi namespace depending on the use case. ## Istio Gateway Ztunnel and Waypoint handle **east-west traffic**. It means internal service-to-service communication inside your cluster. *But what about traffic coming in from outside?* That's what **Istio Gateway** handles. It works similarly to a [Kubernetes Ingress](https://devopscube.com/kubernetes-ingress-tutorial/) controller. When you create an Istio Gateway object, it spins up an external Load Balancer. All traffic entering the cluster goes through this gateway first. The following image illustrates the high level Istio Gateway architecture. ![high level Istio Gateway architecture.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-88.png) Here is how it works. - External request hits the cloud **Load Balancer** - Load Balancer forwards traffic to the **Istio Gateway pod** - Istio Gateway applies ingress/egress rules (TLS termination, routing, etc.) - Traffic is forwarded to the correct internal service via Ztunnel 💡 Istio fully supports the [Kubernetes Gateway API](https://devopscube.com/kubernetes-gateway-api/) using the using the [GAMMA approach](https://devopscube.com/gateway-api-for-service-mesh/). (not just Istio's own Gateway resource). The Gateway API is more powerful and is the recommended approach for routing external traffic in modern [kubernetes clusters](https://devopscube.com/setup-kubernetes-cluster-kubeadm/). ## Istio CNI Your app doesn't know Istio exists. There is no proxy injected into the pod. *So how does traffic from your pods actually end up at Ztunnel?* Well, that is the **job of Istio CNI**. It is a DaemonSet that runs on every node and **creates iptables rules** inside your pod's network namespace to redirect traffic to the local Ztunnel. The following image illustrated how Istio CNI works. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-87.png) Image illustrating how Istio CNI works Here is how it works. - You label a namespace with `istio.io/dataplane-mode=ambient` to make it part of the mesh. - The Istio CNI node agent detects the label change - For every pod in that namespace on its node, the **CNI agent configures iptables rules** inside that pod's network namespace to redirect traffic to the local ztunnel. - Pods in unlabeled namespaces **get no iptables rules** and their traffic flows normally, outside the mesh. Does Istio CNI replace your [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) cluster CNI? No. It works together with your existing CNI like Calico or Cilium as a chaining plugin. Here is the key difference. When a pod starts, Kubernetes calls a CNI plugin to set up networking, assign an IP, create network interfaces, set up routes, etc. So it does the real networking work. Istio CNI then sets up iptables redirect rules. 💡 **Performance With eBPF** Instead of [iptables](https://devopscube.com/iptables-tutorial-beginners/), you can configure Istio CNI to use eBPF mode for lower latency and less CPU overhead. ## **Is Ztunnel a single point of failure (SPOF)?** If you compare this with the Istio architecture with sidecar more, one common question people ask is, *Is ztunnel a single point of failure? What happens if ztunnel goes down on a node?* Since ztunnel runs as **one pod per node**, it may sound like a single point of failure. If ztunnel goes down, traffic to the pods **on that specific node** will be affected. However, pods on **other nodes are not impacted**. Each node has its own healthy ztunnel instance. Because ztunnel runs as a **DaemonSet**, Kubernetes will automatically restart it, just like it does for any other daemonset pod. So, is ztunnel a SPOF? **Absolutely not.** The design assumes that nodes can fail, which is normal in distributed systems. Recovery is handled [automatically by Kubernetes.](https://kubernetes.io/docs/concepts/architecture/self-healing/?ref=devopscube.com) ## The Business Case for Ambient Mesh I used the [Ambient mesh cost calculator](https://ambientmesh.io/cost-savings-estimator/?ref=devopscube.com) for resource comparison between the traditional Istio Sidecar architecture and the Ambient Mesh architecture. The comparison is based on a large-scale cluster with **10,000 pods**, **50 namespaces**, and **100 nodes**. The following image illustrates the significant infrastructure savings both in terms of compute resources and monetary cost (up to **$432,674**) that organizations can achieve by switching to Ambient mode. ![ image illustrates the significant infrastructure savings both in terms of compute resources and monetary cost (up to $432,674) that organizations can achieve by switching to Ambient mode.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-9.png) In a sidecar model, every pod runs its own Envoy proxy. In this example, those 10,000 proxies consume a massive amount of CPU and RAM. Because Ambient Mesh uses a shared **Ztunnel** per node (only 100 proxies total in this scenario) instead of one per pod, the CPU requirements **drop from 1,000 vCPUs to just 20–74 vCPUs**. ## Conclusion When it comes to service mesh for microservices architectures, Istio is the defacto standard. As a [DevOps engineer](https://devopscube.com/become-devops-engineer/), it is very important to understand the key components and how the mesh works under the hood. This blog covered the key topics to understand the Istio Architecture (Ambient Mesh) Traditional service meshes required a sidecar proxy in every pod. Istio Ambient Mesh changes it by decoupling the data plane, **reducing memory overhead by up to 90%** and eliminating the need for pod restarts during upgrades. Essentially, it ends the **proxy bloat.** Now, the "*million-dollar question*". Do we still need the Sidecar in 2026? Well, before 2025, sidecars were the only way to get Istio features. However in 2026 and Beyond, **Ambient is the default**. You only move to sidecars if you have a specific technical requirement that Ambient cannot yet meet. If you want to get started with **Ambient** mesh, refer our [Istio Ambient mesh setup guide.](https://devopscube.com/setup-istio-ambient-mode/) Over to you! Have you tried Ambient Mode in a real cluster yet? Or are you still running sidecars in production. Let me know your experience in the comments. I would like to know what worked, what broke, and what is holding you back. 💡 If you want to understand how Kubernetes works under the hood, read my detailed [Kubernetes architecture](https://devopscube.com/kubernetes-architecture-explained/) blog. ### ElevenLabs Review 2026: Is the Voice Quality Worth Paying For? URL: https://devopscube.com/elevenlabs-review/ Last updated: 2026-04-24T05:00:23.000Z Looking for an ElevenLabs review? You are in the right place. My team and I have been using ElevenLabs for our content creation work for quite some time, and I decided to write a detailed review based on my real experience. In this review, I will cover ElevenLabs features, pricing, and who it is best suited for. By the end of this review, you will understand why many creators consider ElevenLabs as one of the [best content creation tools](https://devopscube.com/content-creation-tools/) going into 2026. ****Note:** As I am continuously testing new features like [Eleven v3](https://elevenlabs.io/v3?ref=devopscube.com) (alpha), I will keep this review updated based on my ongoing testing and results. ## What is ElevenLabs? [ElevenLabs](https://elevenlabs.io/?ref=devopscube.com) is an AI tool that converts text into realistic, human-like speech. You simply paste your text, choose a voice, and it generates audio that sounds natural, clear, and easy to listen to. Unlike many text-to-speech tools, ElevenLabs **avoids the robotic tone** that often sounds unnatural. Because of this, it is widely used to create natural-sounding voiceovers for digital content. One of the most **common use cases** is YouTube videos and short-form Instagram Reels. The key reason for ElevenLabs’ popularity is its **voice quality**. I noticed that the speech feels natural, expressive, and consistent, which makes it suitable for YouTube videos, audiobooks, podcasts, and more. At DevOpsCube, our team actively uses ElevenLabs to generate voiceovers for the [DevOpsCube YouTube channel](https://www.youtube.com/@devopscube?ref=devopscube.com)and [Instagram Reels](https://www.instagram.com/devopscube/?ref=devopscube.com), where clear pronunciation and a professional tone are important. It works well for our technical content, including complex terms and explanations. ElevenLabs is also used for audiobooks, narration, explainer videos, text-to-speech, and similar purposes. At the same time, it is **not suitable** for live conversations or real-time voice interactions. ![ElevenLabs.io](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-20.png) Now that you have a high-level idea of the platform, let me walk you through its key features. ## ElevenLabs Key Features Lets look into the features of ElevenLabs that make it one of the best voice- generating tools. ### 1\. Text-to-Speech ElevenLabs offers many high-quality voices that can generate speech within minutes. You can use default voices or your own cloned voice during generation. This feature is useful for both short-form and long-form content on platforms like YouTube, Instagram, TikTok, and more. ### 2\. Voice Cloning Voice cloning is one of the best and **most popular features** of ElevenLabs. Many creators choose Elevenlabs for this feature. Here is how it works. There are two types of Voice cloning: **IVC** and **PVC**. **Instant Voice Cloning (IVC)** creates a voice clone using about one minute of audio samples, but the result may not sound exactly like your real voice. If you want a more accurate clone, you should use **Professional Voice Cloning (PVC).** With PVC, you train the ElevenLabs model using your own voice samples. It can then generate speech that closely matches your real voice. This is especially **useful for content creators** who want to **scale content production** without recording their voice for every piece of content. We are actively using this feature, and we are very happy with the results. The following image illustrated the tech details of the voice cloning workflow. ![ElevenLabs Voice Cloning Workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/ElevenLabs-workflow.png) ⚠️ We have published a detailed guide on voice cloning here. Check it out --> [clone your voice in ElevenLabs](https://devopscube.com/clone-voice-in-elevenlabs/). ### 3\. Multilanguage Voice Support You can generate speech in multiple languages, which is useful if you target a global audience. The accent and tone remain consistent with the original voice. The language library has expanded from 32 to over **70+ languages**. 💡 ****Tip:** V3 is still in the Alpha stage, so it uses slightly more processing power. If you want simple and quick narration, use ****v2.5 Turbo** as it is faster. But, for emotional storytelling, V3 is the best choice. ### 4\. Sound Effects The sound effects section allows you to search for and download sound effects that can be added to your content. ### 5\. Voice Isolator Voice Isolator **removes unwanted background noise** from recordings. For example, if you are recording audio in a noisy place and want to remove that background noise to get a quality audio, then this feature will be very helpful. ### 6\. Voice Stability Control You can control voice stability based on your needs. Higher stability keeps the voice consistent, while lower stability adds emotion and variation. This helps make the audio sound more natural and expressive. ### 7\. API Access ElevenLabs provides API access for developers who want to generate speech programmatically. This is useful for apps, websites, games, and automation workflows. But, heavy usage can become expensive over time. Also, developers can use the **Flash v2.5 model**, which now offers **ultra-low latency of around 75 ms**. This makes it fast and well-suited for real-time assistants and gaming. ### 8\. Emotional Audio Tags Emotional audio tags in ElevenLabs help you control how a voice sounds, not just what it says. By using simple tags like **excited**, **sad**, **angry**, or **calm**, and you can guide the AI to deliver speech with the right emotion and tone. Actually, this is very helpful for our video production. So, instead of re-recording audio or manually adjusting it, you just add the emotion directly in the text. For example, the same sentence can sound confident, friendly, serious, or emotional just by changing the tag. This saves you a lot of time and helps you produce more engaging voiceovers without multiple recordings. If you want to know more details about the features, then [take a look here](https://try.elevenlabs.io/devopscube?ref=devopscube.com). ## Is ElevenLabs Voice Quality Good? Now the million dollar question. *Is ElevenLabs Voice Quality worth the subscription?* This is the main question most people have before buying ElevenLabs. We had the same doubts as you, so we decided to try it out. We used the PVC (Professional Voice Cloning) option and **trained our own voice model** using around **two hours of recorded audio**. The results were great, and the generated voice sounds almost identical to the original recordings. If you want proof, play the audio below. It was generated by ElevenLabs using our trained voice model. Proof Audio 0:00 /66.0375 1× I hope you got your answer after listening to the audio. You can improve the quality even more by **training ElevenLabs with additional voice samples**. The pronunciation, pitch, and tone are almost perfect, even for technical terms. This is one of the main reasons it works so well for DevOpsCube videos. That said, **no AI tool is 100% perfect**. In the beginning, it did **mispronounce** a few words for us. We fixed this by training the model with more voice data, and the results are now excellent. If you are still not convinced, leave a comment and we will share more real audio samples from our trained model. ## ElevenLabs V3 Model I tested this model, and here is a clear breakdown of its pros and cons. To be honest, one big advantage of this model is that you can add emotions and expressions directly into the script wherever you need them. You can see that in the image below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-89.png) Did you notice that, I have added the expression that expressions are added exactly where required. I’ve also included the audio output for reference. ElevenLabs 2026 04 24T04 54 36 Bibin pvc sp96 s100 sb100 v3 0:00 /53.629375 1× Pretty cool, right? But here’s the thing, it is still not better than the Multilingual V2 model. With V2, you get much better control over the voice. In the V3 model, that level of control is missing. Because of that, the generated voice can sometimes feel inaccurate or even a bit robotic. One feature I really like is the ability to insert expressions and emotions in between the script. When it works well, it actually makes the voice sound more natural, like a real person speaking. ## Pros and Cons of ElevenLabs Lets look into the pros and cons that I analysed while using it. ### Pros - The voice quality is realistic and human-like. - There are many voice options with different accents and languages. - Voice cloning works very well. - The platform is beginner-friendly and easy to use. - It is cheaper than hiring a professional voice artist. - API support allows easy integration into apps and tools. ### Cons - Higher-tier plans are expensive. - There are credit limitations. - Some pronunciations may need manual correction. ## My ElevenLabs Review I mostly use ElevenLabs to generate voiceovers for DevOpsCube YouTube videos and Reels, and the experience has been very good so far. The voice sounds clear, natural, and professional, which works well for educational and technical content. Most people cannot tell that the audio is AI-generated. We even shared the generated audio with our close circle, and no one identified it as AI. The text-to-speech feature **works well for both short and long scripts**. Pronunciation is mostly accurate, including technical terms, though a few words may need small adjustments. On the downside, the **editing options are basic**, and the pricing can feel high if you generate large volumes of audio. Overall, **ElevenLabs is a solid choice** if you want clean and natural-sounding voiceovers. ## ElevenLabs Pricing The following table shows the current ElevenLabs Pricing plans for monthly and annual costs. | **Plan** | **Monthly Price** | **Annual Price (Billed Yearly)** | | ----------- | ----------------- | -------------------------------- | | **Free** | $0 | $0 | | **Starter** | $5 / month | $48 / year | | **Creator** | $11 / month | $108 / year | | **Pro** | $99 / month | $1,068 / year | ****Note:** You can use the [ElevenLabs discount](https://devopscube.com/elevenlabs-discount/) to get upto 50% discount on creator plan. [Grab ElevenLabs With Discount](https://try.elevenlabs.io/devopscube?ref=devopscube.com) - **Starter** is suitable for beginners and includes a commercial license, instant voice cloning, and 30,000 credits per month. - **Creator** is ideal for creators who post content regularly and includes professional voice cloning with 100,000 credits per month. - **Pro** is designed for heavy users producing long-form content and offers 500,000 credits per month. The truth is, even with paid plans, **there are limits on how many words** you can generate in standard mode. For longer projects, ElevenLabs recommends using its **Studio** feature. ## Elevenlabs Trend Data I was interested to know how ElevenLabs is being used in enterprise and how it is doing as a company. Here are some interesting facts I found. - According to [ElevenLabs](https://elevenlabs.io/blog/series-b?ref=devopscube.com), their technology is used by **41% of Fortune 500 companies** in 2026. - Based on multiple reports, ElevenLab has crossed [$330 million](https://www.startupresearcher.com/news/elevenlabs-surpasses-usd330-million-in-annual-revenue-with-ai-voices?ref=devopscube.com) in annual recurring revenue. - ElevenLabs is highlighted as one of the most promising AI companies, which features on the [Forbes AI 50 list](https://en.wikipedia.org/wiki/ElevenLabs??ref=devopscube.com). - It received around [45 million visits](https://www.semrush.com/website/elevenlabs.io/overview/?ref=devopscube.com) in a recent months, showing the strong demand and growing popularity of ElevenLabs. ## FAQs Here are some of the frequently asked questions about ElevenLabs when I discuss about it in the community. ### 1\. Is ElevenLabs free? Yes, ElevenLabs offers a free plan with 2,500 credits per month, but it does not include a commercial license. ### 2\. Can ElevenLabs clone my voice? Yes, you can clone your voice by training the model with voice samples. More training data improves accuracy. ### 3\. Is the ElevenLabs API free? The API is available on the free plan, but usage is limited by credits. Once credits are run out, you need to upgrade. ### 4\. How much is ElevenLabs? The Starter plan costs **$5 per month**, the Creator costs $11 per month, and the Pro costs $99 per month. ### 5\. Is ElevenLabs the best text-to-speech tool? Yes, it is one of the top text to speech tool. Many creators are using it and recommending other creators to use it to save a lot of time. ### 6 Is ElevenLabs creator plan worth it? Yes, it is worth it, if you are a creator who is consistently posting videos on YouTube, Instagram reels, and other platforms. At DevOpsCube, we are also using the Creator plan, and we strongly recommend it. ### 7\. Is ElevenLabs Generative AI? Yes, it is a highly advanced generative AI system that generates audio from text. ## Conclusion In this review, I have explained and provided my user review of ElevenLabs, along with its features, pricing, and limitations. I hope this helps you decide whether it fits your needs. If you can afford the subscription, I recommend ElevenLabs to creators who need high-quality voiceovers and want to save time. For our team, choosing this tool has been a good decision to scale our content production and creating technical tutorial videos. Over to you! Are you using any text-to-speech tools? Are you planning to use Elevenlabs for your projects? Do let us know in the comments. ### How to Deploy Llama 3 with Docker and vLLM (Full Optimization Guide) URL: https://devopscube.com/deploying-llama-with-docker-and-vllm/ Last updated: 2026-04-18T13:11:54.000Z Managing GPU resources is a core challenge in [MLOps](https://devopscube.com/devops-to-mlops/). In traditional web services, when a web service runs out of CPU or RAM, you can add or swap the disk itself for cheap. But **VRAM on a GPU** is different you cannot simply add, it has a fixed capacity. The model either fits or it doesn't. At 16GB of weights for a llama 3 8B (FP16) model, on a 20 GB card, there is almost no room for anything else without experimenting. Here is what this blog will cover. - GPU Environment setup (Docker + NVIDIA runtime) - Model deployment with llama & vLLM - Three optimization experiments (memory tuning, FP8 quantization, and continuous batching) ****End result:** 2.2× throughput (1.62 to 3.64 req/s), 3x faster time to first token, 5 to 20+ concurrent users on the same hardware. Let's get started. ## Prerequisites The following are the prerequisites to follow this guide. - A Linux VM with an NVIDIA GPU attached - [Docker Installed on the VM](https://devopscube.com/how-to-install-and-configure-docker/) The GPU type used in this guide is NVIDIA RTX 4000 GPU provisioned on [Digital Ocean](https://devopscube.com/get-free-digital-ocean-credits/). ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-40.png) ## Environment setup Start by SSH into your [VM](https://devopscube.com/kubernetes-cluster-vagrant/). The following and confirming the driver is visible: ```bash nvidia-smi ``` You will see a table as below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-73.png) The drivers are visible. On my device it showed the RTX 4000 Ada with 20,475 MiB total VRAM which means the GPU is visible. 💡 In most GPU VMs on cloud platforms like DigitalOcean, AWS, etc, the driver will be pre-installed. You can see your GPU details from the start. If you don't see your GPU details you need to fix or install the driver before doing anything else. Refer [NVIDIA container toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html?ref=devopscube.com) page to install it. ## Deploying the first model **I used** [**vLLM**](https://docs.vllm.ai/en/latest/?ref=devopscube.com) because it has paged attention. Every other inference server like [ollama](https://ollama.com/?ref=devopscube.com), and **`llama.cpp`** preallocates the KV cache as one contiguous block of VRAM, and most of that block sits empty. Paged attention breaks the cache into pages and allocates them only as needed. Cases like these where the model already takes up 16GB of the 20 GB VRAM available, this matters. Lets get started with the setup. ### Step 1: Configure NVIDIA as the Default Docker Runtime When Docker is freshly installed, its default runtime is runc, not nvidia. vLLM needs the NVIDIA runtime to access the GPU inside the container. ```bash nvidia-ctk runtime configure --runtime=docker ``` This creates /etc/docker/daemon.json. Open it: ```bash nano /etc/docker/daemon.json ``` Add the default-runtime line so it looks like this: ```json { "default-runtime": "nvidia", "runtimes": { "nvidia": { "args": [], "path": "nvidia-container-runtime" } } } ``` Save, then restart Docker: ```bash systemctl restart docker ``` Verify: ```bash docker info | grep -i runtime ``` ### Step 2: Create a Directory to Store Model Weights Llama 3 8B weights are over 15GB. Without this, every container restart re-downloads the entire model. ```bash mkdir -p /opt/models ``` This directory will be mounted into the container, so weights are downloaded once and reused on every restart. ### Step 3: Get a HuggingFace Token vLLM pulls the Llama 3 weights directly from HuggingFace on first startup. Llama 3 is a gated model, meta required you to agree to their licence before you can download it. You will need a HuggingFace account and an access token. Go to huggingface.co and sign in or create an account. Click your profile -> Settings -> Access Tokens -> then click New token. ![creating huggingface access token](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-49.png) Then give it a name (eg [llama](https://devopscube.com/deploying-llama-with-docker-and-vllm/),) and under permissions, enable only: "Read access to contents of all public gated repos. Scroll down and click Generate token. It will give you the token, keep it safe, we will use it during model deployment. ![creating huggingface access token](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-52.png) Once created, you can see your token as shown below. ![created huggingface access token](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-51.png) Set it on your VM as a variable. ```bash export HF_TOKEN=hf_your_token_here ``` ### Step 4: Request Access to Llama 3 on HuggingFace Even with a valid token, the model is gated. You must manually accept Meta's license, or the download will fail. Visit [Meta-Llama-3-8B-Instruct](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct?ref=devopscube.com) page. Then, click on the "Expand to review and access" toggle button. ![Request Access to Llama model on HuggingFace](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-45.png) Scroll down and fill out the form to request. ![Request Access to Llama model on HuggingFace](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-46.png) Then go to settings to check the status of your request. ![Request Access to Llama model on HuggingFace](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-47.png) Once your request is approved, you will see your status as accepted. ![Request for Llama model on HuggingFace got accepted](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-48.png) Access is usually granted within 5 minutes. ### Step 5: Run the vLLM Container Now, run the following command to run the llama3 model. ```bash docker run --runtime nvidia --gpus all \ -v /opt/models:/root/.cache/huggingface \ -e HF_TOKEN=$HF_TOKEN \ -p 8000:8000 \ --ipc=host \ --name llama3 \ -d vllm/vllm-openai:latest \ --model meta-llama/Meta-Llama-3-8B-Instruct \ --gpu-memory-utilization 0.90 ``` 💡 The first run will take some time because vLLM is downloading over 15 GB from HuggingFace. The starts after the weights are cached in `/opt/models` will be way faster. Here is what each flag does. **`--runtime nvidia --gpus all` :** gives the container full access to the GPU. **`-v /opt/models:/root/.cache/huggingface`** **:** lama 3 weights are over 15GB. Every time a container is restarted, the llama 3 weights are downloaded again, that is 15 GB for every restart. So we store the model weights on the host system, in a specific directory (eg: `/opt/models`). Now we can map the host directory to a directory inside a container that has started or restarted (eg: `/root/.cache/huggingface`) using the -v (volume) option. This means that the container can access the model weights directly from the host systems storage. **`-p 8000:8000`** **:** exposes the API on port 8000. **`--ipc=host`:** vLLM creates multiple worker processes that communicate over shared memory. vLLM needs far more than the shared memory [Docker](https://devopscube.com/docker-image-build-promotion-piepeline/)Docker provides (64mb). By setting the --ipc flag to host, vLLM uses the host machine's memory instead of the default shared memory provided by Docker. Without this flag, we get CUDA IPC errors that look like GPU failures but are actually a shared memory problem. **`vllm/vllm-openai`** is the image we are using. It comes with **vLLM** pre-installed (An OpenAI-compatible API server) Run the following command to check if the model starts running. ```bash docker logs -f llama3 ``` Do not send requests until you see: ``` Application startup complete. ``` ### Step 7: Testing the Model Before starting testing, make sure your VM has JQ installed, if not run the following command to install it. ```bash sudo apt update && sudo apt install jq -y ``` To test the model, we will send a query using curl. ```bash curl -s http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "meta-llama/Meta-Llama-3-8B-Instruct", "messages": [{"role": "user", "content": "What is vLLM?"}], "max_tokens": 50 }' | jq -r '.choices[0].message.content' ``` This gives an output similar to below. ```bash vLLM stands for Virtual Large Language Model. It's a type of artificial intelligence (AI) model that's designed to mimic the capabilities of a large language model (LLM) but is trained on a virtual environment rather than a physical one. ``` For me, the first response came back in 2.369 seconds. During the generation power draw went from 11 w (idle) to 105 w and GPU utilisation hit 100%. ## Understanding resource utilization With the model loaded and no requests running, the GPU was already at 18,850 MiB of 20,475 MiB. **That is over 92% ful**l. The weights are loaded into VRAM on startup and stay there. The GPU looks full the whole time, even when idle. ```bash nvidia-smi docker stats llama3 --no-stream ``` **docker stats reports:** CPU utilization less than 1%, RAM 4.55 GB of 31.34 GB, 95 active processes. CPU and RAM are nowhere near the limits. [GPU](https://devopscube.com/setup-gpu-operator-kubernetes/) is the only constraint in every test. ### **I**nterpreting utilization metrics GPU utilization percentage in nvidia-smi is not as accurate as it looks. It measures a very small part of a sampling window during which any instruction is executed. So a GPU showing 100% utilization doesn't necessarily mean the GPU is doing intensive work, it could just be idle loops or spin-wait instructions running to check the readiness of the data being provided by the upstream components like the CPU or memory. The number that is more useful is the power draw. Around 130W with stable temperature means the GPU is actually computing, but 30W despite showing high utilization implies that the GPU is being starved of data or instructions. ### Throttling GPU's like the RTX 4000 automatically reduce the clock speeds when the hardware temperature reaches a certain threshold. In my case 83°C, to prevent overheating. This process is called throttling, while this helps with the longevity of the hardware and stability during sustained workloads, it can lead to decreased performance such as slower processing speed and reduced tokens per second mid response with no error message. ### **VRAM breakdown Llama 3 8B instruct on a 20 GB card.** ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-73.png) The VRAM usage is 18850 MiB out of 20475 MiB total, which is about 92.1% utilisation. | Component | VRAM | | --------------------- | -------- | | Model weights (FP16) | \~16 GB | | KV cache | \~3–4 GB | | CUDA overhead | \~200 MB | | Headroom at 0.90 util | \~200 MB | Look at the last row, there is no room for anything else. 💡 When the model weights take up 16GB out of 20GB, we encounter ****VRAM starvation**. There is simply no room left for the KV Cache to breathe. ## Optimisation Techniques Lets look at some of the optimization techniques ### Memory optimization: The gpu-memory-utilization flag sets the amount of VRAM vLLM gets on startup. It reserves the memory immediately. I tested 4 values for this flag: | Utilization | VRAM Reserved | Max Concurrent | AVG Latency | Result | | ----------- | ------------- | -------------- | ----------- | ----------------------------------------------- | | 0.50 | \~10,240 MiB | 0 | — | Crash on startup — weights don't fit | | 0.70 | \~14 GB | 5 | \~450ms | Stable | | 0.90 | \~18,432 MiB | 20 | \~120ms | Stable | | 0.95 | 19,874 MiB | 50+ | \~90ms | Works, but dangerously thin | | 1.00 | N/A | 0 | — | RuntimeError: Engine core initialization failed | - Llama 3 8B's weights alone need around 15 GB, so the crash when the utilization flag is set to 0.5 is not surprising. - When the flag is set to 1.00 (trying to reserve 100% of the VRAM) the engine fails to allocate small non paged memory blocks required by CUDA kernels. The system prevents full reservation to keep these small blocks free, showing a failure when you try to reserve 100%. 💡 Non-paged Memory Blocks: These are small chunks of GPU memory that must be available at runtime for CUDA kernels to execute properly. Values ranging from 0.70 to 0.85 are what most tutorials suggest you should set the gpu-memory-utilization flag to, the thought process being to leave enough headroom and be safe. But this leaves very little room for the KV cache. After vLLM loads the weights, the remaining memory is automatically allocated to the KV cache. The KV cache is what lets the model track multiple conversations at a time. Every user in an ongoing conversation occupies cache space directly proportional to how far along the conversation they are. When the cache fills up the vLLM does not crash, it pauses one user’s generation, to process someone else’s, then resumes. This leads to latency spikes. - At 0.70 , with weights themselves taking up all of the VRAM the effective cache available is extremely thin, which is why it can only support 5 concurrent users. - At 0.90 with 2-3GB of cache available, 20+ concurrent users are supported. You can observe that the latency reduces significantly with the increase in value of the gpu-memory-utilization flag. To summarize, the gpu-memory-utilization flag sets the amount of VRAM vLLM grabs on startup. After the model weights are loaded, the remaining VRAM is assigned to KV cache, the more memory assigned to KV cache, the more concurrent users it can support. The latency reduces as well because the users are less likely to be preempted. ## Quantization Switching from FP 16 to FP 8 version was a big improvement; the throughput increased 2.2x. 💡 This version of Llama 3 has 8 billion parameters. Standard LLM models like these use 16 bit floating point numbers to train each parameter which take upto 2 bytes of VRAM. Quantization maps these high precision values to a lower precision format like 8 bit or 4 bit. For Llama 3 8 B instruct, the FP 16 version uses 2 bytes per parameter which means that for 8 billion parameters the model weight would be 16 GB. The FP 8 model uses 1 byte per parameter so for 8 billion parameters the model weight would be 8GB. We already know that after the model weights are loaded, the remaining memory would be assigned to KV cache. The FP16 version will only have \~4 GB for cache but the quantized FP8 version will have over 12 GB. We know that the number of concurrent users or concurrent requests is constrained by the VRAM assigned to the KV cache. FP 8 with over 12 GB of VRAM available for KV cache will allow more concurrent users or requests before memory runs out. 💡 The RTX 4000 ADA has dedicated FP 8 tensor cores and physical circuits on the chips designed for 8 bit floating point operations. It means a different and faster set of circuits doing the work. This helps increase the throughput gains over the memory savings. Test: 100 requests, 20 concurrent, against the standard FP16 model first ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/data-src-image-06f19b0e-9a0d-4137-86c1-ab3513eb6492-1.png) FP16 baseline: 1.62 req/s, 206 tokens/s, 22,953ms mean time to first token. Then the same test on the FP 8 model. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/data-src-image-a2ac4338-c11a-404f-97b4-d355655b4eef-1-1.png) FP 8: 3.64 req/s, 466 tokens/s, 7,289ms mean time to first token. 2.2× throughput, 3× faster time to first token. The FP 8 version was able to process 3.64 requests per second, while the FP 16 version could only do 1.62\. The token generation speed also went from 206 to 466 per second. Quantizing from FP 16 to FP 8 does not show any visible dip in quality because most model weights are concentrated in a small range of values, so even though FP 8's precision is less than FP 16 (8-bit numerical representation over 16-bit), but it can still represent these weights accurately without losing important details. 💡 In neural networks weights are values which determine the strength of connection between neurons. These weights are learned during training and are important for the models accuracy. ## Batching and throughput In static batching, requests wait for the current batch to finish before the next one starts. So a user asking a simple query is stuck behind someone who is generating a 500-word essay. With continuous batching, new requests fill the freed processing spots immediately at the token level rather than waiting for the whole batch to complete. This means when a model finishes generating a token for one request, thatslot in the batch becomes available immediately. A new request can be inserted into that slot to generate its next token without waiting for the requests in the batch to complete first. 💡 Token is the smallest unit of text that a model processes or generates. For example in the phrase "Pizza sauce", the token might be \["Pizza","sauce"\] or something even smaller like \["Pi", "zz", "a", "sa", "uc", " e"\] depending on the tokenizer. Models generate text sequentially, producing one token at a time until the output is complete. I tested this with two terminals simultaneously sending requests. One sent a long essay request. The other sent "what is 2+2". The math answer came back almost immediately while the essay was still being generated. GPU stayed at 100% the whole time, both were processing at the same time. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/data-src-image-0404de8c-a755-417e-9ed4-e2a371277200-1-1.png) The math answer returned almost immediately while the long essay request is still processing. ## Batching optimisation The objective was to increase throughput through a batching configuration. Benchmark results for different parameters of --max-num-sequence (100 requests, 20 concurrent). | Configuration | Parameters | Throughput (req/s) | Mean Latency (ms) | Observation | | ----------------------- | ------------- | ------------------ | ----------------- | ---------------------------- | | Config A (Conservative) | max-seqs: 32 | 1.45 | 680 | Under-utilized | | Config B (Moderate) | max-seqs: 128 | 1.62 | 850 | Best | | Config C (Aggressive) | max-seqs: 256 | 1.63 | 1200 | Latency spike, no speed gain | | Config D (Maximum) | max-seqs: 512 | 1.60 | 1800 | Diminishing returns | 💡 "**`--max-num-sequence`** **"** refers to the configuration parameter that controls the maximum number of sequences processed concurrently, mostly in the context of machine learning inference or data processing. This parameter is important because it directly affects the system's throughput and latency. 128 is the best, beyond that throughput doesn't increase much but latency increases significantly. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/data-src-image-06f19b0e-9a0d-4137-86c1-ab3513eb6492-1.png) FP16 baseline: 1.62 req/s, 206 tokens/s, 22,953ms mean time to first token. ## Architecture overview The following image shows the final deployment stack. Llama 3 8B instruct running inside a [Docker container](https://devopscube.com/cloud-based-docker-container-monitoring/) with NVIDIA runtime on an RTX 4000 ADA with 20 GB VRAM. vLLM has paged attention, and it manages VRAM allocation. ![Llama 3 8B instruct running inside a docker container with NVIDIA runtime](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-65.png) After quantising (to FP 8) the model occupies 8 GB VRAM leaving over 12 GB for KV cache, which allows 20+ concurrent users. Continuous batching fills freed token slots immediately, preventing simple requests from waiting behind long ones. The whole thing is exposed on an Open-AI compatible API on port 8000. ## Conclusion The blog was more about what I found interesting while deploying Llama 3-8B instruct on a NVIDIA RTX 4000 ADA (20GB VRAM). I started with a 16 GB model on a 20 GB card, almost no room for anything else. Three changes filled the gap. Quantising from FP 16 to FP 8 reduced the model weights by half and freed up around 8 GB, which went directly to KV cache. Setting GPU memory utilization to 0.90 (90% VRAM utilization) instead of the suggested conservative values gave the cache some space to actually be useful. Continuous batching handled the scheduling. New requests fill the freed up slots at the token level, so a simple query wont sit and wait behind a long essay generation. 128 sequences can be processed concurrently before latency climbs without any significant throughput gain. ****End Result:** requests per second increased from 1.62 to 3.64, the tokens generated per second increased from 206 to 466, and finally the model was able to handle 20+ concurrent users (up from 5 users). The limits is the end. If a future model has heavier weights, you can either quantize further or get a bigger card. There is no way out. ### How to Use In-Place Pod Resize with VPA in Kubernetes URL: https://devopscube.com/vpa-in-place-pod-resize/ Last updated: 2026-04-15T04:28:11.000Z In this blog, you will learn about the Kubernetes in-place pod resize feature and how to implement it with Vertical Pod Autoscaler (VPA). At the end, you will learn: - What in-place pod resize. - How it works behind the scenes. - Why do we need VPA for in-place pod resize - Practically deploy and test in-place pod resize - Downsizing considerations and more.. Lets get started. ## What is In-Place Pod Resize? 📌 ****Note:** This feature is stable from Kubernetes version 1.35 In [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), it was not possible to change the CPU or memory for a running Pod without a restart. But the **In-Place Pod Resize** feature solves that problem. In-Place Pod Resize feature allows you to change CPU and memory requests and limits on a running pod **without deleting or recreating it.** When a resize is needed, the kubelet updates the container's [Linux](https://devopscube.com/linux-capabilities/) cgroup directly, without deleting the pod or restarting the container, unless you explicitly request it. Here is an example that resizes a nginx pod without restarting it. ```bash kubectl patch pod nginx-demo \ --subresource resize \ --type merge \ -p '{ "spec": { "containers": [{ "name": "nginx", "resources": { "requests": { "cpu": "500m" }, "limits": { "cpu": "500m" } } }] } }' ``` In the above example, the **`--subresource resize`** flag is the key part. It tells kubernetes that it is **updating only the resizable fields** (CPU and memory) of the pod. Think of `/resize` subresource as a instruction that tells the cluster to adjust the running container's resources without terminating the process. But there is a problem. You can only do it only on a pod level. **You cannot do that for a deployment**. If you update the Deployment, Kubernetes will recreate the Pods. That is why, you **need to use VPA** to perform in-place update for resources. ## In-Place Pod Resize With VPA The following image illustrates how below VPA In-Place Pod Resize works behind the scenes. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-44.png) Here is how the components work together to resize your pod: - Everything starts with the metrics server. It continuously tracks the CPU and memory usage of your pods. - The **VPA Recommender** analyzes these metrics. If it detects that a pod is under or overused, it calculates a new target resource value. - The **VPA Updater,** instead of evicting it, sends a **patch request** to the Kubernetes API to update the pod's resources via the **`/resize`** subresource. - Then, the **Kubelet** on the node receives the update and updates the container's **cgroups** directly. - Thus, the new resource range will be updated to the pod without restarting it. ## Use Case One limitation when VPA applies a new recommendation is, it evicts the running pod and recreates it. A new pod with the updated resources comes up, the old one gets deleted. For many workloads, this is acceptable. But for stateful apps, apps like [Wordpress](https://devopscube.com/deploy-wordpress-on-kubernetes/), [long-running jobs](https://devopscube.com/create-kubernetes-jobs-cron-jobs/), or anything sensitive to restarts, that eviction may cause issues. This is where **VPA In-Place Pod Resize** comes in. We can use VPA **`InPlaceOrRecreate`** mode to use the kubernetes In-Place Pod Resize feature. It updates the pods of the target deployment without restarting it. ⚠️ What if the node doesnt have requested resources? In `InPlaceOrRecreate` mode, if the node does not have enough CPU or memory to complete the resize request, VPA will evict the pod and try to schedule in another node that has enough capacity. Otherwise, the pod remains pending ## Container ResizePolicy (must know) What if I want to restart the container after an in-place resize? For example, **JVM based apps** read the maximum heap size once when they start, based on the container's memory limit at that time. If you increase the cgroup memory limit without restarting, the JVM will not use the extra memory, and its heap size does not change. To use in-place resize effectively, you can add a **`resizePolicy`** field to each container in your pod spec. This tells the kubelet **what to do when a specific resource changes.** This policy allows the **container to be restarted without restarting the pod.** There are two options in **`resizePolicy`**: 1. **NotRequired** \- The cgroup is updated while it keeps the container running. 2. **RestartContainer** \- The container is restarted after the resource change. 💡 The default policy is `NotRequired` You can also use both options for the container. The example below shows the `resizePolicy` block. ```yaml resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer ``` This causes a **container restart when memory changes**, but not when CPU changes. Now lets move on to hands-on and look VPA in place resizing practically. ## Prerequisites Make sure you have the following prerequisites before moving forward. - [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) (Version 1.35) - [kubectl](https://devopscube.com/kubectl-set-context/) 💡 For in-place resize work, your cluster nodes should be cgroup2 To verify the cgroup version, SSH into a node and run the following command. ```bash stat -fc %T /sys/fs/cgroup/ ``` The output should be `cgroup2`. If it says `tmpfs`, your nodes are on cgroup v1, and in-place resize will not work. ## Install Metrics Server Before installing VPA, you need to install the metrics server. VPA gets the resource usage of pods from the metrics server. (Ignore this step if you already have metrics server running in your cluster) Use the following command to install it. ```bash kubectl apply -f https://raw.githubusercontent.com/techiescamp/kubeadm-scripts/main/manifests/metrics-server.yaml ``` Then use the following command to check if the pods are up and running. ``` $ kubectl get pods -n kube-system | grep metrics-server metrics-server-6dc6795f96-8jj5w 1/1 Running 0 3m32s ``` ## Install VPA Use the following commands to install VPA with the in-place feature enabled. ```bash git clone https://github.com/kubernetes/autoscaler.git cd autoscaler/vertical-pod-autoscaler/ ./hack/vpa-up.sh ``` Then use the following command to make sure all the VPA pods are running. ```bash kubectl get pods -n kube-system | grep vpa ``` You should see the **`vpa-recommender`**, **`vpa-updater`**, and **`vpa-admission-controller`** pods all in **`Running`** state. ```bash vpa-admission-controller-786f8fd784-nbqd7 1/1 Running 0 14s vpa-recommender-797589f6c9-qhf66 1/1 Running 0 16s vpa-updater-579cc98d57-6jwd7 1/1 Running 0 16s ``` ## Validating In-Place Resize To test In-Place Resize, let's create a deployment with an [Nginx](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/) image and create a VPA object for the deployment. ### Create a Deployment with resizePolicy Lets create a simple nginx application with no resource limit or request set. Copy the following content and execute in the terminal. ```yaml kubectl apply -f - < ebs-io2-volume.yaml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: io2-volume provisioner: ebs.csi.aws.com parameters: type: io2 iopsPerGB: "50" fsType: ext4 volumeBindingMode: Immediate EOF ``` I am using the **volumeBindingMode** as **Immediate** so that when someone creates a Persistent Volume Claim (PVC) that matches this Storage Class configuration, the PV and PVC will be immediately bound once the volume is provisioned. Another option is **WaitForFirstConsumer**. In this, the bounding process waits until the pod is created because the Pod configuration should also match this configuration. To deploy this configuration, use the following command. ```bash kubectl apply -f ebs-io2-volume.yaml ``` If you check the available **StorageClasses**, you will see the new one on the list. ```bash kubectl get storageclass ``` ![listing the available storage class of the eks cluster](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-15-11.png) In most cases, we create a Persistent Volume(PV) first, then a Persistent Volume Claim (PVC) to get the required storage from the Persistent Volume. In this case, we don't need PV but directly provision the volume only with a **Persistent volume Claim**, which is known as **dynamic provisioning.** ## Create Persistent volume Claim Now, we can create a **PersistentVolumeClaim** manifest `io2-pvc.yaml` with the required storage size, I am providing 12GB of storage for testing purposes. ```yaml cat < io2-pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my-pvc spec: accessModes: - ReadWriteOnce storageClassName: io2-volume resources: requests: storage: 12Gi EOF ``` Here, you would have noticed the **accessModes** value is **ReadWriteOnce**; this means that only one Node (Volume attached node) can read and write on the volume because I have already mentioned that the **EBS volumes are zone-specified**. Various access modes are available, but not every storage type supports all these access modes. The available access modes are. 1. **ReadWriteOnce**: This mode is suitable if only one node performs the read and write in the volume. 2. **ReadOnlyMany**: This mode is suitable if many nodes need to read the contents but not to write. 3. **ReadWriteMany**: This mode is for both; many nodes can read and write on the volume. 4. **ReadWriteOncePod**: This mode is the same as the first one but is not a node; a pod can read and write on the volume. To deploy this configuration, use the following command. ```bash kubectl apply -f io2-pvc.yaml ``` Once the configuration is properly done, we can list the available **PersistentVolumeClaims** on our Cluster. ```bash kubectl get pvc ``` ![the binding status of the Pvc of the eks cluster](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-15.png) This output ensures that the **EBS volume** is successfully created. We can also see other details such as capacity, access modes, storage class, etc. We can see this provisioned volume from the **AWS console** as well. ![listing the availabe ebs volumes from the AWS ec2 console. ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-11.png) The **EBS** volume is in an **Available state**, so we can attach this as persistent volumes in the Pods. ## Attach Persistent Volume to a Pod Now lets attach the created volume to a pod and validate it. For testing purposes, I am creating an Nginx deployment and attaching the `/usr/share/nginx/html` directory of the container to the EBS volume. ```yaml cat < deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: io2-volume-deployment labels: app: io2-app spec: replicas: 1 selector: matchLabels: app: io2-app template: metadata: labels: app: io2-app spec: containers: - name: io2-container image: nginx:latest ports: - containerPort: 80 volumeMounts: - name: io2-volume mountPath: /usr/share/nginx/html volumes: - name: io2-volume persistentVolumeClaim: claimName: my-pvc EOF ``` ```bash kubectl apply -f deployment.yaml ``` If we check the EBS volume state in the AWS console after the successful deployment, it will be in use. > When creating the PVC, the EBS volume will be provisioned and when create a Pod with the PVC, the EBS volume will be attached with the node where the Pod is going to run. This way, we can permanently store the data on the EBS volumes. ## Creating Default Storage Class Up to version 1.29, Amazon EKS automatically identified gp2 as its default StorageClass. With EKS 1.30, Amazon stopped specifying a default storage class. So on any cluster 1.30+, you need to set this up yourself. To set a storage class as default, you need to explicitly annotate it as the **`default:storageclass.kubernetes.io/is-default-class: "true"`**Only then the unbound PVCs start getting provisioned. For example, here is the storage class manifest to make gp3 volumes as default storage class. ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gp3 annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: ebs.csi.aws.com volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: gp3 fsType: ext4 encrypted: "true" ``` ## Setup the EBS CSI Driver in Existing EKS Cluster If you have an existing EKS cluster without the **EBS CSI Driver** and **Pod Identity Agent** plugin for this hands-on, you can install and configure them using the following steps. Before provisioning the EBS volume in the EKS cluster, we need to set up the **Amazon EBS CSI Driver** on the cluster. ### Step 1: Check IAM OIDC Provider Integration > **Note**: If OIDC has already been added to your cluster, you can ignore this step. The EBS CSI driver needs dedicated IAM privileges to provision EBS volumes when requested for PVCs. However, you can use the **OIDC provider** to add IAM Permission to the EKS Pods. When we create an EKS Cluster, an **OIDC provider ID** is also generated. You can get it from the **Identity Providers** section in the IAM portal, as shown below. ![oidc provider id of the eks cluster from the iam console](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-3-17.png) Let's list the available clusters in the AWS account, us-west-2 region. ```bash aws eks list-clusters --region us-west-2 ``` This will show you the available clusters in the particular region. Set the **Region** and the **Cluster Name** as environment variables. ```bash export REGION=us-west-2 export CLUSTER_NAME=terraform-eks-cluster-poc ``` Check whether the **IAM OIDC Provider** is associated with the cluster or use the following command to associate the **OIDC** provider. ```bash eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$CLUSTER_NAME --approve ``` You will get the prompt `IAM Open ID Connect provider is already associated with cluster` If the OIDC association is already present in the cluster. ### Step 2: Install AWS EBS CSI Driver Use the following command to install the EBS CSI Driver on the EKS Cluster. ```bash eksctl create addon --cluster $CLUSTER_NAME --region $REGION --name aws-ebs-csi-driver ``` The **EBS CSI add-on** will be created with the necessary permissions, as seen in the AWS Console. ![listing the available addons in the aws eks dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-15.png) > **Important Note:** The current IAM permissions are attached to the drivers using the IAM Role for Service Account (IRSA) method. However, the IRSA method is deprecated, so we will use the Pod Identity Agent to assign IAM roles to pods, which will be done in the next step The IAM Role and Policy will be automatically created for the CSI Driver. As shown below, you can check them from the IAM console. ![the iam role for the ebs csi driver to access the aws services](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-21.png) You can view all the permissions if you click the `+` symbol of the Policy. If you check the **Trust relationships**, you will see the following information related to the OIDC. ![the trust relationship of the ebs csi driver iam role](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-11-18.png) The EBS CSI Driver runs as Pods in the Cluster, so let's check the running Pods. ```bash kubectl get pods -n kube-system ``` ![the list of available pods of the kube-system namespace including the ebs csi driver controller and driver pods](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-6-13.png) I have four-node clusters, which is why the four CSI Node Drivers are running. The **EBS CSI Controller** Pods will deploy on any of the Nodes. The **EBS CSI Node Drivers** is a [DaemonSet](https://devopscube.com/kubernetes-daemonset/) and will be available in each worker node. Now that the **Amazon EBS CSI** Plugin has been successfully installed. we can provision the EBS volumes from the **EKS Cluster.** If we describe the EBS CSI Driver's Service Account, we can see the annotation of the AWS IAM Role. ```bash kubectl -n kube-system describe sa ebs-csi-controller-sa ``` ![the more informations of the ebs csi driver's service account](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-7-20.png) ### Step 3: Migrate to Pod Identity However, providing AWS IAM Permissions to a Pod using **IRSA** is deprecated, so we are migrating this to the **EKS Pod Identity Agent**. First, we need to ensure the **Pod Identity Agent Plugin** is installed in the EKS Cluster. ```bash aws eks list-addons --cluster-name $CLUSTER_NAME ``` ![the list of available addons of the eks cluster ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-8-16.png) If the Plugin is not available, install it using the following command. ```bash aws eks create-addon --cluster-name $CLUSTER_NAME --addon-name eks-pod-identity-agent ``` Once the Pod Identity Agent is available, we can migrate everything from **IRSA** to **Pod Identity**. ```bash eksctl utils migrate-to-pod-identity --cluster $CLUSTER_NAME --approve ``` After the successful migration, we can list the **Pod Identity Associations**. ```bash eksctl get podidentityassociation --cluster $CLUSTER_NAME ``` or ```bash aws eks list-pod-identity-associations --cluster-name $CLUSTER_NAME ``` ![the list of pod identity associations of the eks cluster. ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-9-16.png) Now, we cannot see the annotation in the Service Account. ![the more informations of the ebs csi driver's service account and showing the annotation.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-10-19.png) We can see some changes if we check the **Trust relationship** of the **IAM Role**, which is related to the Pod Identity Agent. ![the updated trust relationship of the ebs csi driver iam role](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-12-14.png) We can even check the add-on's update history and ensure the Pod Identity Association is properly configured. ![the update history of the ebs csi driver](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-13-16.png) Now the EBS CSI Driver is successfully installed on the existing EKS cluster with the Pod Identity Agent, and is ready to provision the EBS volumes for the EKS cluster. ### Conclusion This will help your EKS Pod data be permanently stored in the EBS volumes and give you an overall idea of the EBS CSI Driver and its configurations. Choose the appropriate volume type for your workload. Depending on the underlying storage you choose for the persistent storage, some configurations will be changed in the **StorageClass** manifest. Always remember to back up the storage. In EBS, we can take snapshots or use the AWS Backup service to take backups. We can also try third-party backup options. If you are looking for NFS based storage solution, check out the [EFS on EKS](https://devopscube.com/setup-efs-csi-driver-eks/) guide for the full setup. ### Kubernetes Gateway API Tutorial for Beginner's URL: https://devopscube.com/kubernetes-gateway-api/ Last updated: 2026-04-18T17:36:24.000Z In this blog, you will learn about the Kubernetes Gateway API and its setup and configuration in a Kubernetes cluster. By the end of this guide, you will have learned: - What the Kubernetes Gateway API is - Key concepts of the Gateway API - Practical implementation of Gateway API controllers - How to use Gateway API objects like `GatewayClass`, `Gateway`, and `HTTPRoute` - How to implement path-based routing using the Gateway API and more. Let's get started. ## What is Kubernetes Gateway API? As the name suggests, the Gateway API is a Kubernetes feature that helps **create gateways for external traffic** entering your cluster. *But if Ingress already does that, why do we need something new?* **Ingress** is the traffic routing mechanism primarily used in Kubernetes environments. However, it comes with several limitations. For example, - It supports only host and path-based routing for HTTP/HTTPS (Layer 7). - Cross-namespace routing is complex and not straightforward. - Relies heavily on annotations for anything beyond basic routing - and more.. So, to overcome all the Ingress limitations, the Kubernetes Gateway API was developed. The Gateway API has the following key features. 1. Gateway API can perform **L4 and L7 routing** based on HTTP, gRPC, or TCP/UDP (experimental) 2. Can route traffic based on HTTP headers. 3. Can perform **cross-namespace routing.** 4. Supports weighted traffic routing, blue-green deployments, canary deployments, and more. 5. Reduced reliance on vendor-specific controller annotations, making configurations more portable across environments. 6. Gateway API also works well with [service mesh](https://devopscube.com/service-mesh-tools/) integrations such as [Istio](https://devopscube.com/istio-ingress-kubernetes-gateway-api/), Linkerd, etc. In summary, the Gateway API is an improved version of Kubernetes Ingress that offers more powerful and flexible traffic management. So if you already have a solid understanding of Kubernetes Ingress, Ingress Controllers, and their limitations, picking up the Gateway API concepts is easier. 📚 If you are looking for a detailed guide to setup Istio on a Kubernetes Cluster, then here is a [detailed guide](https://devopscube.com/setup-istio-on-kubernetes/). ## Kubernetes Gateway Concepts Before we get into the hands-on section, let's understand the key concepts behind the Gateway API. ### Gateway API Resources The following are the key native resources that are part of the Kubernetes Gateway API. 1. `**GatewayClass**` (cluster scoped) : This resource is used to select which controller (Nginx, Envoy, Istio etc) will manage the Gateway resources. It is similar to `ingressClass` in [Kubernetes ingress](https://devopscube.com/kubernetes-ingress-tutorial/). 2. **`Gateway`** (namespace scoped): The Gateway resource defines how external traffic enters the cluster. Creating a Gateway triggers the controller to provision a real cloud Load Balancer 3. **`HTTPRoute`** (namespace scoped): The HTTPRoute resource defines how traffic should be routed to applications inside the cluster once it reaches the Gateway for HTTP traffic. 4. **`gRPCRoute`**(namespace scoped): Resource to manage the gRPC traffic. 5. **`ReferenceGrants`** (namespace scoped): This resource is used primarily for enabling cross namespace routing. These objects by themselves cannot route or implement traffic routing in the cluster. The objects mentioned above mainly **hold the configuration for how traffic should be routed.** So you can call it the config layer. To actually route traffic, we need a Gateway API controller implementation. ### Gateway API Controller In Ingress controllers, we define routing rules in the **Ingress object**. The **Ingress Controller** handles the actual routing. The same concept applies to the Gateway API. While the Gateway API provides many objects to manage cluster traffic, the actual routing is done by a **Gateway API Controller**. This controller is not built into Kubernetes. You need to set up a third-party (vendor) controller, just like with Ingress. Various Gateway API controllers are available. The following are some of the popular ones. 1. [Nginx Gateway Fabric](https://docs.nginx.com/nginx-gateway-fabric/?ref=devopscube.com) 2. [Kong Gateway](https://developer.konghq.com/kubernetes-ingress-controller/gateway-api/?ref=devopscube.com) 3. [Envoy Gateway](https://devopscube.com/setup-envoy-gateway-api/) 4. [Traefik Gateway](https://doc.traefik.io/traefik/reference/install-configuration/providers/kubernetes/kubernetes-gateway/?ref=devopscube.com) 💡 For this guide, we we have used the Nginx Gateway Fabric controller as a example. The core workflow remains that same for all the controllers. ## Nginx Gateway Fabric Architecture To understand Gateway API concepts better, **you need to understand the controller architecture**. So we will use NGINX Gateway Fabric to understand how a controller implementation works with Gateway API. The Nginx Gateway Fabric has the following two components. 1. Control Plane and 2. Data Plane The following image illustrates the architecture of the Nginx Gateway Fabric controller. ![architecture of the Nginx Gateway Fabric controller used for gateway API](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-41.png) ### Control Plane (Handles Config) The control plane runs as a pod called the fabric controller. It's a **Kubernetes controller** that watches Gateway API resources. When you define routing rules, the controller reads them and converts them into NGINX config files. But the controller **does not handle real traffic**. It doesn't run NGINX itself. 💡 In a normal ingress implemenation, the controller itself will handle the traffic. ### Data Plane (Proxy Layer) The data plane handles the actual traffic. It's a separate NGINX proxy pod that **gets created automatically when you create a Gateway** resource. This pod runs NGINX along with an NGINX agent. A Kubernetes Service is also created for the NGINX pod. This service is exposed to the outside world using a LoadBalancer or NodePort, so client requests can reach your app. Whenever routing rules change, **the fabric controller sends** the updated NGINX config to the agent using gRPC. The agent then applies the new config to the NGINX pod to route traffic correctly. Now that we have looked in to key Gateway API concepts, lets understand how everything works together to handle the traffic. ## Gateway API Traffic Flow The following image shows how the traffic is routed to the cluster pods from outside world through the Kubernetes Gateway API resources. It's meant to give you a high-level overview of how everything is connected ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-63.png) Image illustrates the relationship between the Gateway API resources, controller and the proxy pod that actually handles the traffic Here is how it works. 1. When we install the Gateway API Controller, it only deploys the Control Plane Controller. 2. When we create a **Gateway Custom Resource** configuration for our application, the Control Plane controller (Nginx Fabric) creates a Data Plane (Proxy Pod - Nginx agent) and a Load Balancer for it. 3. All the configurations from the **Gateway** and **HTTPRoute** custom resources are converted into routing rules inside proxy pod.. 4. When someone tries to access the application, the request goes through the external Load Balancer, then reaches the Gateway API Data Plane (Proxy pod). 5. The proxy pod will then send the traffic to the correct backend services based on rules. Now that you have an understanding of how Gateway API works, lets do the hands on exercise. You will be able to relate better to all the concepts we learned so far when we go through the practical steps. ## Setup Prerequisites The following are the requirements for the setup 1. [Kubernetes Cluster](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/) v1.30 or higher. 2. [Helm](https://devopscube.com/install-configure-helm-kubernetes/) \[Local Machine\] 3. [Kubectl](https://devopscube.com/kubectl-set-context/) \[Local Machine\] We can begin the installation from the Gateway API. ## Setup Gateway API in the Kubernetes Cluster The Gateway API setup consists of three important section. 1. Gateway API CRD installation 2. Gateway API controller installation 3. Gateway API object creation and traffic validation. We will look at all the steps in detail. ### Step 1: Install Gateway API CRDs The Gateway API objects are not available as native objects in Kubernetes. We need to enable them by installing the Gateway API Custom Resource Definitions (CRDs) To install the Gateway API CRDs, use the following command. To get the latest version of the CRD, please visit [this page](https://gateway-api.sigs.k8s.io/guides/?ref=devopscube.com#install-standard-channel). At the time of updating this guide, v1.3.0 is the latest version. ```bash kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml ``` Now, validate the installed CRDs using the following command. You should see the five CRD resources we discussed earlier. ```bash $ kubectl get crds | grep gateway gatewayclasses.gateway.networking.k8s.io 2025-05-21T13:49:23Z gateways.gateway.networking.k8s.io 2025-05-21T13:49:29Z grpcroutes.gateway.networking.k8s.io 2025-05-21T13:49:32Z httproutes.gateway.networking.k8s.io 2025-05-21T13:49:35Z referencegrants.gateway.networking.k8s.io 2025-05-21T13:49:36Z ``` You can also check the API resources to get more details about the registered CRDs. ```bash $ kubectl api-resources --api-group=gateway.networking.k8s.io NAME SHORTNAMES APIVERSION NAMESPACED KIND gatewayclasses gc gateway.networking.k8s.io/v1 false GatewayClass gateways gtw gateway.networking.k8s.io/v1 true Gateway grpcroutes gateway.networking.k8s.io/v1 true GRPCRoute httproutes gateway.networking.k8s.io/v1 true HTTPRoute referencegrants refgrant gateway.networking.k8s.io/v1beta1 true ReferenceGrant ``` ### Step 2: Install Gateway API Controller There are various controllers that support the Gateway API, you can refer to the supported controllers list in the [official documentation](https://gateway-api.sigs.k8s.io/implementations/?ref=devopscube.com). For this tutorial, we will be using the **NGINX Gateway Fabric Controller**, which is now generally available (GA). We'll deploy the controller using Helm. To pull the [Helm chart](https://devopscube.com/create-helm-chart/), run the following command: ```bash git clone https://github.com/techiescamp/cka-certification-guide.git cd cka-certification-guide/helm-charts/nginx-gateway-fabric/ ``` This will give the local copy of the Helm chart so we can modify and store it in version control systems like GitHub. The modifiable values will be available in the `values.yaml` file, and we can make changes in this file as per our requirements. The following snapshot is the directory structure of the **Nginx Gateway Fabric Controller** Helm Chart. ```bash controlplane:~/cka-certification-guide/helm-charts/nginx-gateway-fabric$ tree . |-- Chart.yaml |-- README.md |-- crds | |-- gateway.nginx.org_clientsettingspolicies.yaml | |-- gateway.nginx.org_nginxgateways.yaml | |-- gateway.nginx.org_nginxproxies.yaml | |-- gateway.nginx.org_observabilitypolicies.yaml | |-- gateway.nginx.org_snippetsfilters.yaml | `-- gateway.nginx.org_upstreamsettingspolicies.yaml |-- custom-values.yaml |-- templates | |-- _helpers.tpl | |-- certs-job.yaml | |-- clusterrole.yaml | |-- clusterrolebinding.yaml | |-- deployment.yaml | |-- nginxgateway.yaml | |-- nginxproxy.yaml | |-- scc.yaml | |-- service.yaml | `-- serviceaccount.yaml |-- values.schema.json `-- values.yaml ``` > Note: The `custom-values.yaml`file we have created for the Gateway API customization, that we explain in the NodePort section. 💡 In the controller Helm chart, the default service type `values.yaml` is set to `LoadBalancer`. This means that when you deploy it in a cloud environment, it will automatically provision a LoadBalancer. If you're not deploying in a cloud environment, you'll need to expose the controller service using a `NodePort` instead. Refer to the [NodePort section](https://devopscube.com/kubernetes-gateway-api/#expose-gateway-api-controller-as-node-port-service) for instructions on how to deploy the controller with this configuration. Following are the [container images](https://devopscube.com/build-docker-image/) the controller chart uses. 1. `ghcr.io/nginxinc/nginx-gateway-fabric:1.5.1` 2. `ghcr.io/nginxinc/nginx-gateway-fabric/nginx:1.5.1` 💡 If you are working on a corporate network, you might not be able to access public images. In that case, you should first push the required images to your organization's private registry, then update the image references in the chart before deploying it. Also, make sure to review your company's security policies to confirm whether pushing community images to private registries is permitted. We're not making any changes to the controller configuration at this stage. We'll go ahead and install the NGINX Gateway Fabric Controller (Control Plane) directly using the following command. ```bash $ helm install ngf . -n nginx-gateway --create-namespace ``` Once the installation is complete, make sure all the controller components are running correctly by using the following command. ```bash $ kubectl -n nginx-gateway get all NAME READY STATUS RESTARTS AGE pod/ngf-nginx-gateway-fabric-85f857f4b-p47c4 1/1 Running 0 31s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/ngf-nginx-gateway-fabric ClusterIP 10.100.247.89 443/TCP 32s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/ngf-nginx-gateway-fabric 1/1 1 1 32s NAME DESIRED CURRENT READY AGE replicaset.apps/ngf-nginx-gateway-fabric-85f857f4b 1 1 1 32s ``` As you can see, the control plane controller pods are up and running without any issues. During this installation, the Nginx Fabric related Custom Resource Definitions also be installed. ```bash $ kubectl get crds | grep -iE "gateway.nginx" clientsettingspolicies.gateway.nginx.org 2025-07-02T05:20:35Z nginxgateways.gateway.nginx.org 2025-07-02T05:20:35Z nginxproxies.gateway.nginx.org 2025-07-02T05:20:37Z observabilitypolicies.gateway.nginx.org 2025-07-02T05:20:37Z snippetsfilters.gateway.nginx.org 2025-07-02T05:20:38Z upstreamsettingspolicies.gateway.nginx.org 2025-07-02T05:20:38Z ``` These Nginx Fabric CRDs are used to customize the controller configurations. 💡 By default, the controller is installed with a service of type `LoadBalancer`. In AWS, this means the Gateway API Controller will provision a Classic [Load Balancer](https://devopscube.com/aws-load-balancers/) to handle incoming traffic. In Azure, it creates a Standard Public Load Balancer. In GCP, it provisions a Google Cloud External Load Balancer to route traffic to the backend pods. ### Step 3: Create Gateway Class Gateway Class is a Custom Resource of the Gateway API (`gatewayclasses.gateway.networking.k8s.io`). This will map the **identity** of the Control Plane controller to a configuration file. This helps the Gateway object to choose which Gateway API controller to use. 💡 Some Gateway API deployments come with the GatewayClass by default. If the `GatewayClass` isn't included in the controller Helm chart, you'll need to create it manually. Create a `GatewayClass` manifest named `gateway.yaml` and add the following contents. ```yaml apiVersion: gateway.networking.k8s.io/v1 kind: GatewayClass metadata: name: nginx-gateway-class spec: controllerName: gateway.nginx.org/nginx-gateway-controller parametersRef: group: gateway.nginx.org kind: NginxProxy name: ngf-proxy-config namespace: nginx-gateway ``` - `gateway.nginx.org/nginx-gateway-controller` \- The identity of the Nginx Fabric Gateway API Controller. Deploy the Gateway Class manifest ```bash $ kubectl apply -f gateway.yaml ``` To see the available Gateway Class ```bash $ kubectl get gatewayclasses NAME CONTROLLER ACCEPTED AGE nginx-gateway-class gateway.nginx.org/nginx-gateway-controller True 58s ``` We can describe the **`GatewayClass`** to get the detailed information. ```bash kubectl describe gatewayclass nginx-gateway-class ``` When you describe the `GatewayClass`, you'll see details like its status, controller name, and other relevant information. Before creating the `Gateway` object, make sure to **note down the `GatewayClass`** name, as you'll need it for the `Gateway` configuration. Now, let's start with a simple application to see how traffic is routed through the Gateway API. ## Validate Gateway API Traffic Flow The following image illustrates how the traffic from DNS to pod traffic flow using Gateway API implementation. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-43.png) Lets implement a similar workflow. ### Deploy a Demo Application To test the Gateway API implementation, we will Deploy an Nginx webserver and expose it as a `ClusterIP` service. ```yaml cat < nginx-deploy.yaml apiVersion: v1 kind: Namespace metadata: name: webserver --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: webserver spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx-container image: nginx:1.21 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx-service namespace: webserver spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: ClusterIP EOF ``` To deploy this, use the following command. ```bash kubectl apply -f nginx-deploy.yaml ``` To get the deployed components status. ```bash $ kubectl -n webserver get all NAME READY STATUS RESTARTS AGE pod/nginx-74f7c565c5-h5rhd 1/1 Running 0 61m pod/nginx-74f7c565c5-p5tqh 1/1 Running 0 61m NAME TYPE CLUSTER-IP EXTERNAL-IP service/nginx-service ClusterIP 10.100.247.161 NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx 2/2 2 2 61m NAME DESIRED CURRENT READY AGE replicaset.apps/nginx-74f7c565c5 2 2 2 61m ``` This ensures that the deployed webserver is appropriately running and that the service is also created for the [deployment](https://devopscube.com/kubernetes-deployment-tutorial/). On the next section, we will create a Gateway with listeners (incomming traffic Port and Protocol) ### Create Gateway object The Gateway acts as the entry point for traffic entering the cluster. When we create a Gateway, the Control Plane will create a Data Plane on the cluster. The Data plane is nothing but a Nginx server deployment with a service. The control plane translates the configuration from the Gateway manifest to the Nginx configuration. Meaning, once the traffic reaches the cluster, the `Gateway` determines how it should be handled based on the defined **Listeners** 💡 `Gateway` is a ****namespace-scoped** object. So you can't use the same `Gateway` across multiple namespaces. Lets create a `Gateway` for the demo application. We are creating the `Gateway` in the `webserver` namespace ```yaml cat < web-gateway.yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: web-gateway namespace: webserver spec: gatewayClassName: nginx-gateway-class listeners: - name: http protocol: HTTP port: 80 EOF ``` Key Parts in this YAML should know. 1. `gatewayClassName: nginx-gateway-class`: Associates this Gateway with the `GatewayClass` named `nginx-gateway-class` Now, lets create the `Gateway` ```bash kubectl apply -f web-gateway.yaml ``` To list the Gateway from `webserver` Namespace, use the following command. ``` kubectl -n webserver get gateway ``` ![listing the deployed gateway api gateway](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-19.png) Here, you can see that the Gateway is created a Load balancer because of the default Gateway API Helm configuration and we have deployed in AWS EKS. To get more detailed information, describe the Gateway ```bash kubectl -n webserver describe gateway web-gateway ``` ![describing the gateway to see the detailed information](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-25.png) Here, we can see that the **`GatewayClass`** is configured with the **`Gateway`** and also see the DNS name of the AWS Load Balancer. No routes are attached in the **Listeners** section, which we will configure in the next step. This indicates that we haven't configured any services with the Gateway API. ### Create a HTTP Route Object `HTTPRoute` is the **Custom Resource** of the **Gateway API**, which contains the configurations to route the traffic to the HTTP/HTTPS based applications. Since the demo application (`nginx`) is a webserver, which routes the HTTP/HTTPS traffic, so that we are creating this resource. This Custom Resource can handle functions such as path-based routing, hostname-based routing, custom header routing, and namespace routing. ```yaml cat < webserver-httproute.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: webserver-httproute namespace: webserver spec: parentRefs: - name: web-gateway rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: nginx-service port: 80 EOF ``` ```bash kubectl apply -f webserver-httproute.yaml ``` To list the `HTTPRoute` custom resource, use the following command. ```bash kubectl -n webserver get httproute ``` Describe the `httproute` Custom Resource to get more detailed information. ```bash kubectl -n webserver describe httproute webserver-httproute ``` ![the detailed information of the gateway api http route custom resource](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-21.png) If the configurations are correctly done, we can see the Gateway API Controller, Gateway Class, and Gateway information along with the routing rules. Before we check our application, we must ensure that the Gateway Custom Resource is updated with the routes. ```bash kubectl -n webserver describe gateway web-gateway ``` ![the updated routed information in the gateway api gateway](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-26.png) This clearly shows when we create a `HTTPRoute` Custom Resource, the Gateway resource will automatically be updated. Now, we can check our application over the browser. Paste the **Load Balancer DNS** name as a **URL** in any web browser. ![The output of the application over the browser which is using the gateway api](https://blog.techiescamp.com/content/images/2025/01/image-74.png) If you check the Nginx Data Plane Pod configuration, you can see an upstream block with the details of the Pods IPs. ```bash k -n webserver exec -it -- nginx -T ``` ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-23.png) This is how the controller registers the Pods with the internal configuration and routes the traffic to that. ## Advanced Traffic Routing in Gateway API The **Gateway API** can do path-based, host-based, header, and method-based routing. Since this is an introduction to the Gateway API, we covers path and host-based routing. ### Step 1: Create a Gateway Custom Resource Let's start with the **Gateway** resource, this time also we are creating a Gateway with the same configurations that we have created for earlier demo. Before creating the Gateway, create a Namespace `colors` ```bash kubectl create namespace colors ``` Create a Gateway in `colors` namespace. ```bash cat < colors-gateway.yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: colors-gateway namespace: colors spec: gatewayClassName: nginx-gateway-class listeners: - name: http port: 80 protocol: HTTP hostname: "*.techiescamp.com" EOF ``` Here, I have changed the name of the Gateway `colors-gateway` and Namespace `colors` 1. **`hostname: "*.techiescamp.com"`**: This means, it will **only accept traffic** coming to domains like, 1. app.techiescamp.com 2. api.techiescamp.com etc 💡 The `*` is a ****wildcard**, so it matches anything before `.techiescamp.com.` So, why use wildcard DNS? Because, when you have many services like `app`, `api`, `user`, etc, you want ****one Gateway** to handle all of them without creating separate listeners ```bash kubectl apply -f colors-gateway.yaml ``` After the deployment, if we list the Gateways, we can see that the provisioned Load Balancer by the Gateway Controller. ```bash kubectl -n colors get gateway ``` We can verify this from the AWS console as well. ![checking the aws console to ensure that the load balancer is properly provisioned.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-28.png) We can use the **DNS name** of the **Load Balancer** to test our application, but that won't be quite convenient. So configuring the **Local DNS Resolution** would make the work easier. To set the local DNS resolution, get the **public IPs** of the **Load Balancer**, choose an intended host name (Ex - `dev.techiescamp.com`) and configure it on `/etc/hosts`. Use the following command to get the public IPs of the Load Balancer. ```bash dig +short ``` This will list the public IPs of the Load Balancer. Open `/etc/hosts` from your local machine and map the IP address with the hostname `dev.techiescamp.com`. ``` sudo vim /etc/hosts ``` ![local dns resolution for the load balancer provisioned by the gateway apli controller](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-29.png) You can give any name instead of `dev.techiescamp.com` , and this is only resolved on your local machine. > Note: If anyone want to access the application over the internet with a domain name, you have to configure the Load Balancer DNS records with a DNS Server (Example: Route53). ### Step 2: Deploy Applications for Demo Deploying two demo applications in the same Namespace to explain the path based routing. ```yaml cat < colors-deployments.yaml apiVersion: apps/v1 kind: Deployment metadata: name: orange-app namespace: colors labels: app: orange-app spec: replicas: 3 selector: matchLabels: app: orange-app template: metadata: labels: app: orange-app spec: containers: - name: color-app image: techiescamp/go-color-app:latest ports: - containerPort: 8080 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP --- apiVersion: apps/v1 kind: Deployment metadata: name: green-app namespace: colors labels: app: green-app spec: replicas: 3 selector: matchLabels: app: green-app template: metadata: labels: app: green-app spec: containers: - name: color-app image: techiescamp/go-color-app:latest ports: - containerPort: 8080 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP EOF ``` ```bash kubectl apply -f colors-deployments.yaml ``` Create `ClusterIP` services for these two applications. ```yaml cat < colors-svc.yaml apiVersion: v1 kind: Service metadata: name: orange-app-service namespace: colors labels: app: orange-app spec: selector: app: orange-app ports: - protocol: TCP port: 80 targetPort: 8080 type: ClusterIP --- apiVersion: v1 kind: Service metadata: name: green-app-service namespace: colors labels: app: green-app spec: selector: app: green-app ports: - protocol: TCP port: 80 targetPort: 8080 type: ClusterIP EOF ``` ```bash kubectl apply -f colors-svc.yaml ``` Our demo applications are ready, now we can check the status and service list of the these two applications. ```bash kubectl -n colors get po,svc ``` This ensures that the application's deployment and services are correctly done. ### Step 3: Create HTTPRoute Resource for Applications. Till now, the external HTTP traffic can only reach the **Gateway.** Now, we need to inform the Gateway to route the traffic to the **Green** and **Orange** applications. We can achieve this by creating a `HTTPRoute` resource with certain conditions. ```yaml cat < colors-http-route.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: colors-httproute namespace: colors spec: parentRefs: - name: colors-gateway sectionName: http hostnames: - "dev.techiescamp.com" rules: - matches: - path: type: PathPrefix value: /green backendRefs: - name: green-app-service port: 80 - matches: - path: type: PathPrefix value: /orange backendRefs: - name: orange-app-service port: 80 EOF ``` ```bash kubectl apply -f colors-http-route.yaml ``` After the deployment, we must ensure all the routes are correctly configured. ```bash kubectl -n colors describe httproutes colors-httproute ``` ![the detailed information of the httproute custom resource](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-30.png) In the marked first section, we can see the host name that we have configured `dev.techiescamp.com`. In the Parent Refs section, we can see that the **Gateway** is configured with the **HTTPRoute**. The first part of the rules section indicates the first application (`Green`) and the condition, which means that if you want to access that application, you have to use `/green` the path along with the host name `dev.techiescamp.com`. The second section is for the second application (`Orange`), here one condition we have changed is the path, we have to use `/orange` with the hostname `dev.techiescamp.com`. First, we can try to access the first application (`Green`) Open any of the web browser and paste the URL `dev.techiescamp.com/green` ![the demo application output from the web browser](https://blog.techiescamp.com/content/images/2025/01/image-68.png) The application I have created for this demo will give the output of the intended Pod name and the IP. Here, we can see that the traffic has reached the first application (`Green`), so the routing is configured correctly. We can check this with CLI as well using the following command. ```bash curl dev.techiescamp.com/green ``` Now, we can try to access the second application. ![the demo application output from the web browser](https://blog.techiescamp.com/content/images/2025/01/image-69.png) The second application is also accessible, ensuring the configured path is done correctly and the Gateway API routs the traffic to the intended services. ## Expose Gateway API Controller as Node Port Service Without the help of any Load Balancer, we can configure to reach the external traffic to the Gateway API Controller Pod with the help of Node Port service. This is not a proper way to route the traffic, even though if someone wants to try the Gateway API on their local [Kubeadm cluster](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/), this method would be helpful. For this, we have to modify the Gateway API Controller installations. > Note: Assuming, you don't have the GatewayAPI CRDs and Controller on the cluster. Install the Gateway API Custom Resource Definitions. ```bash kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml ``` Before we install the **Gateway API Controller** (`Nginx Fabric Gateway Controller`), we need to create a custom Helm values file to customize the installation. We have already created one with a name of `custom-values.yaml` Our intention is to change the controller service type from **Load Balancer** to **Node Port.** Node Ports are linked to listener ports, so we will assign NodePorts for ports **80, 8080, and 443** For example, when we create a Gateway with listener port **80**, the Data Plane service will be created with type **NodePort** of **`32000`**. Following is the contents of the `custom-values.yaml` file. ```yaml nginx: service: type: NodePort nodePorts: - port: 32000 listenerPort: 80 - port: 32500 listenerPort: 8080 - port: 32443 listenerPort: 443 ``` This file overrides the default Helm configuration. This settings tells the Gateway API to use NodePort instead of LoadBalancer. So, this allow us to access the applications using the Node's public IP. ```bash $ helm install ngf . -n nginx-gateway --create-namespace -f custom-values.yaml ``` After deployment, each time we create a Gateway, a Node Port service will be created for the Data Plane. Since there is no Load Balancer, traffic directly reaches the Node first, and then to the Gateway API Data Plane. In the example deployment, note down the NodePort number (32000) to access the application. We also need to update the **Local DNS configuration**. Instead of using the public IP of the Load Balancer, we use the public IP of the Node. To get the public IP of the Nodes, use the following command. ```bash kubectl get no -o wide ``` ![listing the kubernets nodes to identify the public ips of the no](https://blog.techiescamp.com/content/images/2025/01/image-78.png) We are mapping these public IPs in `/etc/hosts` ![local dns configuration for the gateway api controller ](https://blog.techiescamp.com/content/images/2025/01/image-79.png) Now, we can use the hostname (`dev.techiescamp.com`) with the Node Port number `32000` to access the application. ![the demo application output from the web browser](https://blog.techiescamp.com/content/images/2025/01/image-82.png) ![the demo application output from the web browser](https://blog.techiescamp.com/content/images/2025/01/image-81.png) We can use this method to test the Gateway API from the local Kubernetes clusters. ## Difference between Kubernetes Ingress and Gateway API 1. Ingress primarily supports the HTTP and HTTPS network protocols \[Layer 7 protocols\], Gateway API as well as supports TCP, UDP, TLS, and gRPC (Example: Databases, Messaging systems). 2. In Ingress, only one object `ingress` where we have to give all our routing configurations, but in Gateway API, dedicated resources for each type of protocol, such as `httproute`, `tcproute`, `tlsroute` and `udproute`. 3. Ingress is limited to path-based and host-based routing, but the Gateway API can perform the custom HTTP header-based routing, weighted routing, canary and blue-green network routings. 4. The Gateway API also required a controller similar to the Ingress, but the list of [Gateway API controller](https://gateway-api.sigs.k8s.io/implementations/?ref=devopscube.com) is quite extensive. ## Conclusion This is just an introduction to the Kubernetes Gateway API, so we just covered the basic path and host-based routing, which is similar to Ingress. There are many advanced concepts available, and we will explore them on the upcomming blogs. To learn more about the Gateway API, please refer to the [official documentation](https://kubernetes.io/docs/concepts/services-networking/gateway/?ref=devopscube.com). If youwant to know what functions the Nginx Fabric Gateway Controller offers, you can refer to this [official documentation.](https://docs.nginx.com/nginx-gateway-fabric/?ref=devopscube.com) ### 13 Best Content Creation Tools For Developers in 2026 URL: https://devopscube.com/content-creation-tools/ Last updated: 2026-09-30T05:05:13.000Z In this blog, we will look at the best content creation tools for creating content for blogs, social media, YouTube, Newsletter etc. I have created technical and non-technical content online for over a decade. It includes blogs, images, videos, presentations, etc. There are many tools available for content creation. This blog will list some of the tools I have used for some time. The tools are listed in no particular order, and each tool comes under any of the following categories. 1. Image Creation 2. Writing 3. Video Editing 4. Technical Diagrams Now, let's get started with the list. ## 1\. Beehiiv Beehiiv is a newsletter platform designed for creators and provides tools to create, build, grow an audience, and monetize through newsletters. - It has built-in tools for website creation. - You can track subscriber growth and - View detailed analytics. I personally use Beehiiv for [DevOpsCube newsletter](https://newsletter.devopscube.com/?ref=devopscube.com), and it has crossed **16500+** subscribers. You can start with the free plan. Once your subscriber **reaches 2,500**, then you will need to upgrade to a paid plan. Also, you can read our [Beehiiv review](https://devopscube.com/beehiiv-review/) for a detailed look at the platform. **License:** Free/Paid **Website:** [Beehiiv.com](https://www.beehiiv.com/?ref=devopscube.com) ## 2\. Excalidraw If you like to create diagrams that look like freehand drawings, you will love Excalidraw. I use Excalidraw extensively. It is effortless to draw, so I use it to create diagrams and explain concepts during meetings. If you want animated lines with excalidraw, use the final image on draw.io canvas, and you can add animated sequences. Excalidraw also offers a plus version that allows you to categorize and save your drawings online. In the free version, you must keep the diagram source file locally. **License**: Free/Plus **Website:** [excalidraw.com](https://excalidraw.com/?ref=devopscube.com) ## 3\. Sketchwow Sketchwow is a creative image tool that supports freehand drawing, animations, etc. It comes with a collection of templates to create engaging visuals. It is a paid tool, and I bought it for the line animation before realizing that draw.io offers that feature for free :D I wouldn't suggest spending on Sketchwow if you need only animated lines. **License**: Free/Plus **Website:** [sketchwow.com](https://www.sketchwow.com/?ref=devopscube.com) ## 4\. Canva No one needs an introduction to Canva. It is an online graphic design tool. You can design images for Blogs, Social media, YouTube, etc. Canva is the best tool for creating images and presentations. Using prebuilt templates, you can achieve the design quality of a professional graphic designer. You can even create documents, infographics, Graphs, and other content. Ninety-nine percent of content creators use Canva, which is available for free with limitations to premium features. I use Canva Pro, which has all the premium features. I primarily use it for creating blog banners, animated presentations, social media images, logos, and promotional materials. **License**: Free/Premium **Homepage:** [canva.com](https://canva.com/?ref=devopscube.com) ## 5\. Teachable As a techies, selling online courses is a way to generate passive income. For that, you can make use of Techable platform to sell courses. It is one of the [best platform to sell online courses.](https://devopscube.com/platforms-sell-online-courses/) The best thing is, you can get started free on the platform. ## 6\. Grammarly Grammarly is an excellent tool for grammar and spell check. It is available for free. You can use the SaaS version for editing documents or the browser plugins to integrate with other writing tools you use. I use [Grammarly Premium](https://devopscube.com/recommends/grammarly/), which has advanced features like sentence rewrites, Word choices, tone suggestions, citation style formatting, and more. You can use Grammarly suggestions to improve your writing style. Also, I use the plagiarism detection feature to check for plagiarism in the content submitted to my blog by users. **License**: Free/Premium **Website:** [grammarly.com](https://devopscube.com/recommends/grammarly/) ## 7\. Camtasia Camtasia is a video editing tool. I have been using it for a few years now. You can do the following with Camtasia 1. Screen Recording (Audio/Video) 2. Professional Level Video Editing 3. Audio enhancements 4. Video animations/transitions I primarily use it to create YouTube tutorial videos. **License**: Premium **Homepage:** [techsmith.com](https://devopscube.com/recommends/camtasia/) ## 8\. Descript Descript is a video and podcast editor. This is an excellent tool for removing filler words from freestyle video recordings. It converts your audio into text, and with one click, you can remove filler words like "Uh," "Umm," etc. Other features include podcast recording, Screen recording, captioning, etc. Another interesting feature of Descript is overdub. You can train the tool to produce your sound, converting text to your voice. I am currently playing around with the tool and planning to use it for all video recording and editing. **License**: Free/Premium **Website:** [descript.com](https://devopscube.com/recommends/descript/) ## 9\. Self-Hosted WordPress (Blog) I publish most of my content in this blog and use a self-hosted WordPress blog. I use AWS for hosting (ec2+RDS). It's expensive. If you are getting started, consider using Bluehost Shared Hosting. With a one-time payment, you can have a hosting validity of up to 3 years. The good thing about a self-hosted blog is that you own your content 100%. If you want to take advantage of Medium users, you can repurpose your blog content on Medium, dev.to, etc. **Recommended Hosting:** [bluehost.com](https://devopscube.com/recommends/bluehost-promo/) ## 10\. Captions.ai Captions.ai is a video creation and editing tool powered by AI. This tool will save more time in editing videos. Features include, - You can instantly generate videos of an AI avatar. - You will get an AI video editor. - You can generate video Ads immediately within a few minutes. - It will add captions automatically. - You can correct your eye contact with one click. - You can identify the top-performing part of your long video content using AI and make it short. - You can dub your video into a different language in seconds. - You can remove the background voice automatically with the help of AI. I'm using this tool for few months now, its really helping me to save time and producing high quality content for my social media. **License:** Free/Paid **Website:** [captions.ai](https://www.captions.ai/tools/ai-avatar-generator?ref=devopscube.com) ## 11\. draw.io draw.io is a free tool for creating technical diagrams (flowcharts, process diagrams, org charts, architecture diagrams, etc.) It has so many features, including line animation. When I post content on Linkedin, many people ask me how I create the animated diagram. Draw.io is one way to create animated flow diagrams. One downside is that you need to use a screengrab utility to create GIF formats, as there is no default GIF export option. **License**: Free **Website:** [draw.io](https://draw.io/?ref=devopscube.com) ## 12\. EasyGen.io EasyGen is an AI-powered LinkedIn content creation tool. It is very useful if you want to consistently create high-quality, viral posts while saving time. You can discover trending LinkedIn posts, explore creator lists, track creator engagement, and more. The tool has improved a lot recently and is definitely worth trying. **License:** Free (with limitation)/Paid **Website:** [EasyGen.io](https://easygen.io/?ref=devopscube.com) ## 13\. Substack [Substack](https://devopscube.com/beehiiv-vs-substack/) is a newsletter and publishing platform. You can write, publish, and monetize content directly to subscribers. This tool is popular among independent writers, developers, and technical creators who want a simple setup. You will get a built-in newsletter, a public blog, podcast hosting, and a paid subscription layer. Unlike Beehiiv, there is no subscriber limit on the free plan. This free platform is good to start and build a community for organic growth **License:** Free **Website:** [Substack](https://substack.com/?ref=devopscube.com) ## Conclusion When it comes to content creation, a tool is meant to enhance or present your content well; however, the primary focus should be creating high-quality content that adds value to end users. Also, if you create diagrams for project work, focus on the technical details. Fancy animations add very little value. Animations are good for creators to explain a concept and keep the user interested in the image/video. 📚 If you are looking for the best platforms to create and sell your online course, then here is the list of top [platforms to host online courses](https://devopscube.com/platforms-to-host-online-courses/). ### Beehiiv vs Substack (2026): I Have Used Both (20K Subs) URL: https://devopscube.com/beehiiv-vs-substack/ Last updated: 2026-09-30T04:58:40.000Z I've been running the [DevOpsCube newsletter](https://newsletter.devopscube.com/?ref=devopscube.com) for a long time. Today it has over 20K+ subscribers. In that time, I have used both Substack and Beehiiv. So I know the pain in choosing a platform that helps you build a business and not just a mailing list. This post gives you my honest comparison. It is not just a feature checklist but my real experience. 📌 If you're already convinced and just want to try beehiiv, use my exclusive coupon code ****DCUBE20OFF** to get a 20% discount on any paid plans. [Start your 15 days free trial here →](https://www.beehiiv.com/?via=devopscube&ref=devopscube.com) First, let’s understand what Beehiiv and Substack are. ## What is Beehiiv? Most people dont know this. Beehiiv was built by the team behind [Morning Brew](https://www.morningbrew.com/?ref=devopscube.com), a newsletter that [**sold for $75 million.**](https://www.axios.com/2020/10/29/insider-inc-buys-majority-stake-morning-brew?ref=devopscube.com) So it is pretty clear that didn't build a tool for writers. They built a tool for building a businesses out of a newsletter based on their own experience in building a newsletter with millions of subscribers. The key focus of the platform is to help you, - Get more audience, - Monetize the content in different ways - Full control of your audience and data. So in short, if you want to **turn your newsletter into a revenue-generating digital asset** and not just writing and publishing, then it is the best newsletter platform right now in the market. This [LinkedIn report](https://www.linkedin.com/news/story/newsletter-startup-beehiiv-challenges-substacks-grip-8201234/?ref=devopscube.com) shows many creators are moving to Beehiiv. [Try beehiiv free →](https://www.beehiiv.com/?via=devopscube&ref=devopscube.com) ## What is Substack? [Substack](https://substack.com/?ref=devopscube.com) is another newsletter platform that is very easy to get started with. You will find many tech writers using substack. You just sign up and start publishing. For example [The Pragmatic engineer](https://newsletter.pragmaticengineer.com/?ref=devopscube.com), [ByteByteGo](https://blog.bytebytego.com/?ref=devopscube.com) are using Substack for their newsletter. In fact, I started the DevOpsCube newsletter with Substack. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-33.png) Substack is mainly built for community engagement, and you can monetize your content through paid subscriptions. They **take a 10% cut** from your subscription revenue. It is of of the best platform to build a personal brand through writing rather a business-focused newsletter. It is a great choice if you just want to **focus on writing, build a loyal and trusted community**, and use a platform that is simple and not complex. [Checkout Substack](https://substack.com/?ref=devopscube.com) ## Beehiiv vs Substack - Feature Comparison In the table below, I have compared the key features offered by both platforms. | Feature | Beehiiv | Substack | | ----------------------- | -------------------------------------------- | ----------------------------------------------- | | Best for | Growth + monetization | Simple writing | | Ease of use | Medium | Very easy | | Pricing | Starts free, then fixed monthly/yearly plans | Free & one-time $50 fee for custom domain usage | | Platform fee | 0% | 10% on paid subscriptions | | Custom domain & SEO | Full control | Limited | | Email automation | Yes | No | | Subscriber segmentation | Yes | Limited | | Monetization options | Ads + subscriptions + referrals | Subscriptions only | | Audience discovery | SEO + referrals + Recomendation Network | SEO + Built-in network + Recomendations | | Customization | High | Low | | Analytics | Advanced | Basic | What I have learned from the features is, Beehiiv stands out in SEO. I think it is one of the **key factors for technical creators.** Also, you can customize Beehiiv using the website builder and have unique look and feel for your newsletter. This is a **very good advantage** you have over Substack. At the same time the monthly subscription fee of Beehiiv is a let down. But if you are **serious about building a business out of newsletter**, that price is a actually worth it for the features it offers. 📚 I have published a detailed [Beehiiv review](https://devopscube.com/beehiiv-review/) based on our experience. It will help you understand the platform better and give you real, practical insights into how the platform works. ## Revenue Model Now lets look at how revenue model works in both platforms. First lets look at **Substack's** **revenue model**. ### Substack's Revenue Models In Substack, you can start completely free. There are no upfront costs, and no subscription plans to pay for. Here is how it works. - **Paid Subscriptions (core model):** Once you are ready, you can enable paid subscriptions for your readers. This means only users who pay can access your premium content. - From that revenue, Substack takes a **10% cut**. For example, lets say you make $1000/month on Substack. Substack takes $100 (10%) as platform fees. Payment processing (like Stripe) takes another \~$60–$80. So you end up keeping around **$820–$840 per month** - **Sponsorships**: Direct brand deals inside your newsletter Here the main advantage is that you don’t need to pay anything up front. It is completely free to start and grow. Now, let’s look at **Beehiiv’s revenue model**. ### **Beehiiv’s Key Revenue Models** Beehiiv offers the following revenue modele. - **Paid Subscriptions (core model):** Beehiiv takes **0% platform fee.** So you get to keep all subscription revenue. - **Ads network:** Beehiiv connects you with brands internally in the platform and you get paid for displaying ads. You will find ready-to-use ads inside the monetization section. You can simply choose one, add it to your newsletter, and start earning. These ads are listed directly in the dashboard as shown below. ![Beehiiv ads network revenue model](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/Untitled-design--20-.png) - **Boosts:** You can earn money by recommending other newsletters. The boosts network looks like the following. ![Beehiiv Boosts revenue model](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-34.png) As you can see, one AI tech publication is offering $6.4 for a subscriber. If you are in tech niche, you can make use of these revenue streams. - **Sponsorships**: Direct brand deals inside your newsletter - **Digital Products:** You can natively sell you digital products at the time they subscribe without paying any commission. As you can see, to build multiple revenue streams, Beehiiv is usually the better option. ## Pricing & Plans I have broken down the pricing and plans of both newsletter platforms. ### Beehiiv Pricing | Plan | Price | Subscribers | | ------------- | -------------------------- | ----------- | | Launch (Free) | $0 | Up to 2,500 | | Scale | $49/Month ($43/mo annual) | Up to 100K | | Max | $109/Month ($96/mo annual) | Up to 100K | | Enterprise | Custom | 100K+ | ### Substack Pricing Substack is free to use. You don’t pay anything up front, but they take a 10% cut from your paid subscriptions. To use custom domain with substack, you need to pay a one time fee of $50 ⚠️ The substack 10% cut will start hurting you at some point. Read [this reddit thread](https://www.reddit.com/r/Newsletters/comments/1rpccbb/substack%5Fvs%5Fbeehiiv%5Fat%5Fwhat%5Fpoint%5Fdo%5Fthe%5F10%5Ffees/?ref=devopscube.com) to know more. ## Which Platform is the Best For You? (My honest advice) **Beehiiv** will suit you if you are a creator, running a business, an affiliate marketer, a newsletter, or a SaaS founder. Because with Beehiiv, you are not just writing and publishing content or building a community. You are actually building a business and testing growth strategies. Another important point is that Beehiiv is not just a newsletter or email marketing platform. It also **works as an SEO-focused blogging platform.** In the beginning, it may feel a bit expensive. But once you start generating revenue, it wont be a major issue. You just need patience and a clear strategy to scale. 📌 ****Choose Beehiiv if you...** \- Want a technical or business focussed newsletter/distribution channel. \- Want to monetize via ads, boosts, or paid subs \- Care about SEO and organic traffic & subsribers \- Need segmentation and automations On the other hand, **Substack** is ideal for writing and building a loyal audience. This platform is best suited for writers, journalists, and people focused on personal brand building. If you fall into this category, Substack is a good place to start. So, if your goal is to focus purely on content and your subscribers, then Substack is the better choice. 💡 ****Choose Substack if you...** \- Just want to write and publish fast \- Are a journalist or personal brand writer \- Want built-in community and Notes feed \- Need zero upfront cost, any list size ## What Real Users Say The best place to get the feedback of real users of these platform is reddit. Check out [this thread ](https://www.reddit.com/r/Substack/comments/1osqojd/substack%5Fvs%5Fbeehiiv%5Ffor%5Fmy%5Fuse%5Fcasemonetization/?ref=devopscube.com) 🧑‍💻 Here is what real users are saying about these platforms on [reddit](https://www.reddit.com/r/Emailmarketing/comments/1ogo5wt/whats%5Fthe%5Fdifference%5Fbetween%5Fbeehiiv%5Fand%5Fsubstack/?ref=devopscube.com): 1\. Beehiiv is mainly designed as a newsletter-focused business platform. 2\. Substack is best if you simply want to write and publish. 3\. Beehiiv offers better [monetization](https://www.reddit.com/r/beehiiv/comments/1eemkpa/from%5Fbeehiiv%5Fto%5Fsubstack/?ref=devopscube.com) options. As you can see, users are sharing the same insights that I discussed earlier. These real user opinions that gives you a clear understanding of both platforms. ## FAQs Here are the frequently asked questions about Beehiiv and Substack. ### 1\. Does Substack have a public API to create posts? No, Substack does not have a public API to create posts. ### 2\. Is Beehiiv better than Substack? Yes, Beehiiv is better than Substack from a monetization prespective. It offers multiple monetization options, and it is more of a creator and business-friendly platform. ### 3\. Can you make money on Substack? Yes, you can make money on Substack by offering paid subscriptions and sponsorships for your content. ### 4\. Does Beehiiv take subscription revenue? No, Beehiiv does not take any cut from your subscription revenue. But, you will need to pay Stripe’s processing fee, which is typically around 2.9% + $0.30 per transaction. ### 5\. Can I migrate subscribers from Substack to Beehiiv? Yes, you can migrate your subscribers from Substack to Beehiiv without losing the audience you have built. We have done it once. ### 6\. Which platform is better for SEO? Beehiiv is a much better option for SEO. You can add a title, meta description, customize the URL. Substack is more focused on email + internal discovery. ### 7\. What is Beehiiv boosts? Boosts is a paid cross-promotion model. Creators bid on a cost-per-subscriber basis, and other newsletters show their recommendations. Beehiiv takes a 20% fee from these transactions. So, you can both gain subscribers and earn revenue at the same time. ## Conclusion To be honest, Substack was the king of newsletters when this space started growing. It showed that writers can earn money just by writing. But now, in 2026, things have changed a lot. **With AI and declining search traffic**, revenue of many creators have declined. Because of that, every creator needs a platform that offer multiple revenue streams. That is the key reason I moved from Substack to Beehiiv. Also, with the different revenue models offered by Beehiiv, you can **start earning even with a smaller audience**. Getting paid sponsorships is not easy, especially in the beginning. From my experience, Beehiiv is now ahead in many areas. It has become one of the top newsletter platforms today. 💡 I am also working on a strategy where I am using Substack for short form content and drive users to my main Beehiiv newsletter. I will share that strategy in a different blog. If you still have doubts about these platforms, drop them in the comments. I can help you out with my experience. ### How to Deploy Apache Airflow on Kubernetes URL: https://devopscube.com/apache-airflow-on-kubernetes/ Last updated: 2026-04-21T06:24:21.000Z Apache Airflow is an open source workflow orchestration tool used for data, workflows. And many organizations today, run it on Kubernetes for scalability and flexibility. Also, [Apache Airflow 3](https://airflow.apache.org/blog/airflow-three-point-oh-is-here/?ref=devopscube.com) is total redesign that expands its capabilities to **support complex AI, ML**, and near real-time data workloads. ****Key Insight** 💡 80,000 organizations use Airflow, with over 30% of users running [MLOps](https://devopscube.com/devops-to-mlops/) workloads and 10% using it for GenAI workflows In this blog we covered Apache Airflow on a Kubernetes and configure it to automatically sync DAGs from GitHub. At the end of this blog, you will have learned 1. What is Apache Airflow 2. What is a DAG 3. Understand Airflow executors. 4. Installation of Apache Airflow on Kubernetes 5. Configure GitSync for DAGS & Kubernetes executors. 6. Insights of few Airflow Day 2 operations and more.. Lets get started. ## What is Apache Airflow? Apache Airflow is an open source application that helps build and manage complex workflows and **data pipelines**. A data pipeline is a series of steps to collect data from sources, process it, and then store it in a storage. These steps include collecting, cleaning, transforming, filtering, and storing data. (ETL Process) In the data pipeline, each individual step (collecting, cleaning etc) is called a Task**.** A **Task is simply a single unit of work** that Airflow executes. Now, these tasks don't run individually. They need to run in a specific order. *Why?* Well, the logic is simple. You cant clean data before collecting it, and you can't store data before transforming it. This is where a **DAG (Directed Acyclic Graph)** comes in. It is a foundational concept in Data engineering and AI/ML workflows. It is **used to define how tasks depend on each other** and in what order they should run. ## Directed Acyclic Graph (DAG) A DAG is basically a definition of your entire pipeline **written in Python**. It describes all the tasks and **the order in which they should run**. Think of it as the blueprint of your data pipeline . Here is what DAG means. - **Directed**: Tasks flow in one direction (collect, clean, transform and then store) - **Acyclic**: No cycles exist. Once a task is completed, the workflow does not go back to a previous step. - **Graph**: The pipeline is represented as a graph. Each task is a node and each dependency is an edge. This defines how tasks are connected and which task runs after which. So in simple terms, a ***DAG is your pipeline, a Task is each step inside it.*** If you have worked with **CI/CD pipelines**, this is exactly the same concept. One failure stops everything downstream. **Airflow applies that exact model** to data pipelines. The following image illustrates how a sample DAG is structured in code. It shows the DAG definition, Tasks, Nodes, and Edges. This is the actual code you write in Airflow to build any pipeline. ![dag structure explained](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-95.png) 📌 ****DevOps Insight** Terraform already uses this concept. It internally builds a resource dependency graph (also a DAG) before running `terraform apply`. That is how it knows to create the VPC before the subnet. ## Airflow Kubernetes Executors *So where does this Python code (DAG) actually run?* That is what the **Airflow Executor decides**. As the name suggests, the Executor determines how and where your DAG gets executed. Just like Jenkins or GitHub Actions uses agents/runners to execute CI/CD pipelines, Airflow uses Executors. There are different types of Executors, and you choose one based on where you are running Airflow and how you want to execute your DAGs. In our case, we will use the **KubernetesExecutor**. This executor spins up a [pod](https://devopscube.com/kubernetes-pod/) in the [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) for every task in the DAG when you trigger the pipeline. It is similar to how you select an agent or runner to execute your [CI/CD](https://devopscube.com/learning-ci-cd-tools/) job in [Jenkins](https://devopscube.com/jenkins-2-tutorials-getting-started-guide/) or GitHub Actions. ![how KubernetesExecutor runs tasks](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-94.png) Think of it as the dedicated environment where your DAG tasks actually run. The above image illustrates it better. There are multiple types of executors available for Airflow. We can choose one according to our needs. Here is a comparison table for the executors. | **Executor Types** | **Local Executor** | **Queued / Batch Executors** | **Containerized Executors** | | ---------------------- | -------------------- | ------------------------------------------- | ------------------------------- | | Available Executors | LocalExecutor | CeleryExecutor, BatchExecutor, EdgeExecutor | KubernetesExecutor, EcsExecutor | | Where Tasks Run | Inside scheduler pod | Persistent worker pods | Ephemeral pods / containers | | Workers Always Running | No | Yes | No | | Task Isolation | No | No | Yes | | Startup Speed | Instant | Fast | Slower (pod startup) | | Scales Horizontally | No | Yes | Yes | | Cost When Idle | Low | Higher | Low | | Best For | Dev / small setups | High volume, speed matters | Isolated, on-demand workloads | Now that you have the fair idea about Airflow, lets get started with he setup. ## Prerequisites To install Airflow on the Kubernetes cluster, we need some requirements. 1. [EKS cluster](https://devopscube.com/create-aws-eks-cluster-eksctl/) with volume provisioners 2. [Kubectl](https://devopscube.com/kubectl-set-context/) 3. [Helm](https://devopscube.com/create-helm-chart/) 4. GitHub Repository Once you ensure all the above prerequisites are available, we can start the installation. ## How Airflow Works on Kubernetes Before we move to the setup, we need to understand the core components of Airflow. Here are some of the core components that you should understand. 1. **Scheduler** \- This is the component that assigns the tasks to the executors to run jobs. 2. **Executor** \- This is the component that actually runs the tasks (Celery, Kubernetes Executor, Edge etc) 3. **DAG Processor** \- Gets DAG files from the configured repo. 4. **Database** \- Stores data of DAGs, task state, metadata, etc. The following diagram illustrates the high level overview of running Airflow on Kubernetes. ![Airflow Kubernetes Setup Overview](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-93.png) Here is how the overall workflow looks like. - Developers push DAG files to GitHub through CI/CD. The entire pipeline code lives in Git. - **GitSync** keeps Airflow in sync with GitHub. The DAG Processor runs a GitSync sidecar that continuously watches the repo. When a new DAG is pushed, Airflow picks it up automatically. - The Scheduler reads the DAG and decides what tasks should run and when. - The **Kubernetes Executor** creates a separate pod for the task. These are short-lived pods. Once the task is executed, it gets deleted. - Worker pods execute the data-related tasks defined in the DAG. ****Note:** We wont be using S3 in this guide, it only to show how worker pod uses Pod Identity mapped to an IAM Role to securly access S3. ## Fork the GitHub Repository Fork the following repository, which has all the files we are going to use. ```bash https://github.com/techiescamp/airflow-setup.git ``` Use the following command to clone your forked repository. ```bash git clone ``` Then move into the `airflow-setup` folder using the following command. ```bash cd airflow-setup ``` And you can see the DAG file and custom values file we are going to use in this guide as shown below. ```bash airflow-setup ├── README.md ├── dags │ └── etl-pipeline.py └── helm └── custom-values.yaml ``` ## Set up Apache Airflow using Helm We are going to install Apache Airflow using the official Helm chart. Lets get started. ### Add Airflow Helm Repository To install Airflow using Helm, first we need to add its Helm repository. Use the following command to add the Airflow Helm repository. ```bash helm repo add apache-airflow https://airflow.apache.org ``` Then use the following command to verify if the repository is added. ```bash $ helm search repo apache-airflow NAME CHART VERSION APP VERSION DESCRIPTION apache-airflow/airflow 1.20.0 3.1.8 The official Helm chart to deploy Apache Airflo... ``` ### Connecting to Private Git Repositories In enterprise projects only private Git repositories are used. To access those from Airflow, you need to create a **Kubernetes Secret with GitHub credentials.** ****Note:** You can get the token from GitHub —> Settings —> Developer settings —> Personal access tokens Run the following command by **replacing the values with your GitHub username and token.** ```bash kubectl -n airflow create secret generic git-credentials \ --from-literal=GIT_SYNC_USERNAME= \ --from-literal=GIT_SYNC_PASSWORD= \ --from-literal=GITSYNC_USERNAME= \ --from-literal=GITSYNC_PASSWORD= ``` ### Create Helm Custom Values File We need to add **gitSync configurations** to Airflowto sync the DAG files from Github. We also need to configure Airflow to use the **`KubernetesExecutor`** because by default it is set to Celery executor. To do that, we need to customize the Helm values file. You can find the custom values file `custom-values.yaml` in the `airflow-setup/helm` directory as shown below. ```yaml executor: KubernetesExecutor dags: gitSync: enabled: true repo: https://github.com/techiescamp/airflow-setup.git branch: main subPath: "dags" period: 60s credentialsSecret: git-credentials ``` ⚠️ Replace the repository URL under gitSync and push it to your Git repository If you need more configuration details, download the default values file using the following command and check it. ```bash helm show values apache-airflow/airflow > values.yaml ``` ### Deploy Airflow Now, we are ready to install Airflow on Kubernetes. Before running the installation command, make sure you are inside the helm folder. ```bash cd helm ``` Now, run the following command to install Airflow using the custom values file. ```bash helm install airflow apache-airflow/airflow -n airflow --create-namespace -f custom-values.yaml ``` Once the command has run, check whether all the components are properly deployed. ```bash $ kubectl -n airflow get po NAME READY STATUS RESTARTS AGE airflow-api-server-8bb48f6b9-7wjvk 1/1 Running 0 5m airflow-dag-processor-d7686b7b4-zq6fx 3/3 Running 0 5m airflow-postgresql-0 1/1 Running 0 5m airflow-scheduler-594986c799-bwjqp 2/2 Running 0 5m airflow-statsd-587445b5b-8fcvg 1/1 Running 0 5m airflow-triggerer-0 3/3 Running 0 5m ``` The output ensures that all the Airflow components are running without any issues. ### Access Apache Airflow UI Now, we can open the Airflow UI. For that, we need to perform port forwarding so that we can access from the web browser of the local machine. Use the following command to port forward Apache Airflow and see the UI. ```bash kubectl -n airflow port-forward svc/airflow-api-server 8080:8080 Forwarding from 127.0.0.1:8080 -> 8080 Forwarding from [::1]:8080 -> 8080 ``` Now, open any of the web browsers and paste the URL of `http://localhost:8080` You will be prompted to log in. By default, **both the username and password are** `admin`**.** ****Important Note:** In production, the UI would be exposed via [Ingress](https://devopscube.com/kubernetes-ingress-tutorial/) or [Gateway API](https://devopscube.com/kubernetes-gateway-api/). Also, authentication methods such as LDAP or OAuth, along with SSL/TLS is used to protect access to the Airflow web server. ![The login page of the apache airflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-273.png) Once you log in, you will see a home page similar to the one below. ![the home page of the apache airflow ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-274.png) ### Access the DAG Now, go to the **DAGs** section in the Airflow UI. You should see the DAG listed there. Since we configured `gitSync` with the Github repository through Helm, Airflow **automatically syncs the DAG** from the repository as shown below. ![dag files](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-16.png) If you click on the DAG and **open the Graph View**, you can see the defined tasks in order, as shown below. ![airflow dag task order](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-26.png) ### Trigger the DAG Now, let's trigger the DAG using the Trigger button and select the single run option, and then click the Trigger button as shown below. ![triggering a dag file manually](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-28.png) It will **take a few minutes for the entire pipeline** to run. You can check the status of each task, as shown below. ![dag tasks running one by one](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-27.png) 💡 ****Production DAG Triggering:** In real-world data and MLOps pipelines, DAGs are not always triggered the same way. There are three common patterns. ****Scheduled** (cron-based), ****Event-driven** (Eg,. on data arrival) and ****API-triggered** for ad-hoc runs from CI/CD pipelines via the Airflow REST API Also, as we mentioned earlier, we used `KubernetesPodOperator` for this example, which allows you to run tasks in separate pods with a custom Docker image. There are also other operators available for different use cases. For example, 1. BashOperator 2. PythonOperator 3. EmailOperator 4. and more You can check all available operators from the [official documentation.](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/operators.html?ref=devopscube.com) ## Cloning Repo From DAGs There are use cases where you might want to clone the repo and push to repo from the DAG itself. For example, if you integrate [DVC](https://devopscube.com/dvc-tutorial-for-beginners/) in Airflow, DVC will need push access to repo from the DAG. The following image illustrates this use case. ![clone the repo and push to git repo from the DAG from Pod using git credentials bound to Kubernetes secret](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-31.png) For that, in the DAG (using `KubernetesPodOperator`), you need to **mount the Git secret** into the worker pod as environment variables. Here is a code example. ![dag file example with git credentials](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-25.png) ## Clean Up If you no longer need the Airflow setup, run the following commands to uninstall it. ```bash helm uninstall airflow -n airflow ``` The PVCs created by the Helm deployment will be persistent. Use the following command to remove all. ```bash kubectl delete pvc --all -n airflow ``` ## Troubleshooting Airflow on K8s Following are some of the issues you may face with Airflow on Kubernetes. ### OOMKills for tasks OOMKill is a common problem with Airflow worker pods. It happens when a container exceeds its allocated memory, and Kubenretes terminates it to protect node stability. It can happen due to the following reasons. 1. Memory-heavy code or data processing 2. Incorrect request and limit resource configurations. To fix this, set the memory request and limit for your tasks. If you are using **`KubernetesExecutor`**, you can **set memory request and limit for each tasks** in the DAG file itself. For exampple, the following code snippet shows how we used the memory request and limit in the DAG file we used. ![how resources are specified in the dag file](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-29.png) ### DAGs are Not Showing in UI You have created a DAG file and synced the Git repo to Airflow, but it's not showing in the UI. This may be caused by the following reasons: - Check if the DAG directory you specified in GitSync is correct. - Check the DAG file for any syntax issues and that the DAG object is specified in the file. ## Using Multiple Repositories for DAGS GitSync does not support multiple repos. You have to keep all dags inside a single repo and reads DAGs from a **single folder**. But what if I want to use DAG's from multiple repositories? Well, you can use [Git Submodules](https://airflow.apache.org/docs/helm-chart/stable/manage-dag-files.html?ref=devopscube.com#synchronizing-multiple-git-repositories-with-git-sync) that lets you **embed multiple repos inside one repo.** For example, ``` main-airflow-repo/ ├── dags/ │ ├── team-a/ (submodule repo A) │ ├── team-b/ (submodule repo B) │ ├── ml/ (submodule repo C) ``` This way, GitSync pulls **only main-airflow-repo**. But inside it you already have multiple repos configured using a`.gitmodules` file. ## Airflow Monitoring & Observability Airflow deployment comes with a metrics exporter pod named [**statsd**](https://github.com/statsd/statsd?ref=devopscube.com). The statsd pod collects metrics from the Airflow pods and exposes them. We can use [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) to scrape the metrics and use [Grafana to visualize](https://devopscube.com/integrate-visualize-prometheus-grafana/) it as a dashboard. Here is an example [Grafana template.](https://grafana.com/grafana/dashboards/23297-airflow-dags-overview/?ref=devopscube.com) ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-30.png) ## Reducing Costs With Spot Instances If you want to save costs on Airflow executors on cloud, you can make use of spot instances. You can add spot instance to the Kubernetes cluster and use **nodeSelector, taints + tolerations** to schedule the executor pods on it. Also, keep in mind that, spot nodes can disappear anytime. This means Pods get killed immediately. So, if you plan to use spot instances, you must design for failure. ## Production Hardening & Readiness The following are some of the production hardening tips for Airflow. 1. **External Metadata Databases:** Don't use the default [PostgreSQL](https://devopscube.com/deploy-postgresql-statefulset/) database, use managed databases like [AWS RDS](https://devopscube.com/terraform-aws-rds/) for production environment. 2. **Enable TLS for secure communication:** Configure [Ingress controller](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/) with TLS certificate to make the communication between user and Airflow secure. 3. **Configure SSO for user management:** Replace the default login with SSO by integrating OAuth2 or OIDC. 4. **Use private repos to store DAGs:** DAGs have the logic of your project, so keep it secure in a private repository and use the [SSH method](https://devopscube.com/generate-ssh-key-pair/) to authenticate private git repos. 5. **Secret Management:** In a production environment, credentials and API keys are not stored in Kubernetes Secrets. Use external Secret Management tools like [HashiCorp Vault](https://devopscube.com/vault-in-kubernetes/) or Secret Managers of the cloud platform you are running in (eg, [AWS Secrets Manager](https://devopscube.com/secrets-store-csi-dirver-eks/)). 6. **Accessing Cloud Resources:** Use cloud-native identity mechanisms to access cloud resources from worker pod. For example, in AWS, you can use IAM Roles for Service Accounts (IRSA) or Pod Identity to associate an IAM role with a [Kubernetes service account](https://devopscube.com/kubernetes-api-access-service-account/). The worker pods use this service account to access resources like S3 without storing credentials inside the container. Here is a quick production checklist for Airflow 1. Is persistence enabled for logs? 2. Are resource limits set on all DAGs? 3. Are you using a Private Registry for custom images? 4. Is RBAC configured for the Airflow UI? ## Conclusion When it comes to MLOPS, Airflow is a key tool used by many organizations. As [Devops engineers](https://devopscube.com/become-devops-engineer/), understanding Airflow infrastructure foundations can **help in design and operate data & ML pipelines** in actual projects. This blog covered the installation and configuration of Apache Airflow on a Kubernetes cluster with GitSync & Kubernetes executor. Also, we focussed specifically on Airflow Kubernetes deployment, its management and some Day 2 operations. We have used Airflow for ETL process. We are yet to explore it for MLOPS and GenAI workflows. Over to you! Are you planning to use Airflow in any of your project? What is your use case? Drop your insights in the comments below. ### Data Version Control (DVC) Tutorial For Beginners URL: https://devopscube.com/dvc-tutorial-for-beginners/ Last updated: 2026-04-28T04:41:42.000Z One of the key concept in [MLOps](https://devopscube.com/devops-to-mlops/) is Data versioning and DVC is one of the key open source tool you should know to manage data versioning. We created this guide for beginners to understand and learn about DVC practically. Here is what you can learn from this guide. - What is DVC, and how it works. - How to configure remote storage for DVC. - How to push, pull, and switch between different data versions. - ML pipeline as code using **`dvc.yaml`** - Understand how DVC integrates with CI/CD and Airflow - Garbage collection for DVC and more.. Lets get started. ## What is DVC? [DVC (Data Version Control)](https://dvc.org/?ref=devopscube.com) is an open source tool that can be used with version control tools like Git for versioning data. You can call it "*Git for Data*". *Why cant we use git for this?* Well, a 2GB training dataset or a 500MB model can't live in a Git repository. This is where DVC comes in. DVC provides **Git-like version control for data**, models, and large files without storing the actual files in Git. It **stores lightweight pointer files** (`.dvc` files) in Git and the actual data resides in a remote storage (Eg., Amazon S3). Simply put, it is the **bridge between your Git repo and storage** where data resides. Meaning, Git tracks your code and `.dvc` pointer files. Your actual data resides in a remote storage like AWS s3\. DVC manages the sync between the two. 💡 An important thing to understand is, ****DVC is just a lightweight CLI tool,** not a service. It runs wherever you manage your Git repo. For example, your developer workstation or workflow systems like Airflow executor or inside a CI/CD runner (GitHub Actions, Jenkins, etc.) The following image illustrates how DVC fits in with local workstation, Github and remote storage. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-84.png) ## Setup Prerequisites Before starting, make sure you have the following setup in your workstation. - Python 3+ - GitHub repository - [**AWS CLI**](https://devopscube.com/install-configure-aws-cli-linux/) configured with credentials - AWS S3 bucket (e.g., `ml-dvc-store` ) - IAM permissions: `s3:GetObject`, `s3:PutObject`, `s3:ListBucket`, `s3:DeleteObject` ⚠️ ****Security note:** In projects, always create a dedicated IAM user or role for DVC access. Do not use your root account credentials. If you are on EC2 or EKS, use an IAM role instead of static credentials. ## Set Up DVC With a Repository & Remote Storage To understand how DVC works, we will set up DVC with AWS S3 as remote object storage and version a dataset using DVC and push it to S3. Here is what we are going to do. - Initialize DVC in the Git repository - Configure S3 as the remote storage - Tell DVC to track the dataset (`dvc add`) - Push the dataset to S3 (`dvc push`) - Commit the `.dvc` pointer file to Git The following diagram illustrates what we are going to do. ![DVC With Remote s3 Storage workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/dvc03-1.png) Lets get started. 💡 Before moving forward, make sure your local space has read and write permission to your GitHub repository and AWS S3 bucket. ### Step 1: Clone The Repository You can configure DVC to any Git repository, all you need is the permission to get and push changes to it. For this guide, clone the [MLOps For DevOps repository](https://github.com/techiescamp/mlops-for-devops?ref=devopscube.com). The dataset we will version is located at. ```bash phase-1-local-dev/datasets/employee_attrition.csv ``` **Fork the repository** so that you can push DVC configs back to your own repository. ```bash https://github.com/techiescamp/mlops-for-devops.git ``` Let's move on to the DVC setup. ### Step 2: Install DVC Run the following commands to create a virtual environment named `dvc-env`.and activate it. ```bash python3 -m venv dvc-env source dvc-env/bin/activate ``` Install DVC and DVC S3 Plugin. ```bash pip install dvc dvc-s3 ``` - **dvc:** Install dvc tool - **dvc-s3:** Plugin of DVC used to store data in AWS S3 by dvc Run the following command to verify if dvc is installed. ```bash dvc --version ``` ### Step 3: Initialize DVC Run the following command inside the root of the mlops-for-devops repo folder. ```bash dvc init ``` This will create a **`.dvc`** folder with the configuration and **`gitignore`** file. You can see the following folder structure. ```bash .dvc/ ├── config └── .gitignore ``` - **`.dvc/config`** is the main DVC configuration file. - **`.dvc/.gitignore`** ignores DVC cache from Git. 💡 You can also initialize DVC in a subdirectory using `--subdir` flag, but it is not recommended for standard MLOps workflows. ### Step 4: Set Up Remote Storage for DVC Now, we need to configure an S3 bucket to DVC as remote storage. Run the following commands to add the bucket. 📌 Update your bucket name in the below command before running it. ```bash dvc remote add -d ml-dataset s3://dcube-attrition-data/datasets ``` This command tells DVC to store all versioned data in the given S3 location. - **\-d**: Set as default remote store - **ml-dataset**: Alias for this remote store, you can use any name 💡 Make sure bucket region is configured with AWS CLI, because DVC gets the bucket region from your workstations AWS config. Now, verify if the remote was added. ```bash dvc remote list ``` You get a similar output as given below. ```bash ml-dataset s3://dcube-attrition-data/datasets (default) ``` And, if you open the **`.dvc/config`** file, you can see configurations similar to this. ```bash [core] remote = ml-dataset ['remote "ml-dataset"'] url = s3://dcube-attrition-data/datasets ``` In this: - **remote**: The default remote storage alias. - **url**: URL of S3 bucket where DVC will store its data 💡 If `dvc-env` folder is not added to the .gitignore file, add it Finally, push the DVC configurations to GitHub. ```bash git add .dvc/config git commit -m "Initialize DVC with S3 remote" git push origin main ``` Now, your Git repository or a specific path of the repository is configured with DVC and its remote storage. ### Step 5: Stop Tracking Dataset in Git **Git and DVC cannot both track the same file**. Git tracks the **`.dvc`** pointer file. DVC tracks the actual data. Use the following command to remove the dataset from Git's tracking. ```bash git rm -r --cached phase-1-local-dev/datasets/employee_attrition.csv ``` ****Note:** Here we are not deleting the dataset. We are only telling Git to stop tracking it. ### Step 6: Version the Dataset Let's version the dataset and push it to remote storage. Our actual dataset that needs to be versioned is present at, ```bash phase-1-local-dev/datasets/employee_attrition.csv ``` We need to tell DVC to track the dataset using the following command. ```bash dvc add phase-1-local-dev/datasets/employee_attrition.csv ``` This will: - Copy the `employee_attrition.csv` file to DVCs local cache (`.dvc/cache/`) and hashes it. - Create a new `employee_attrition.csv.dvc` file to store its information - And, add the `employee_attrition.csv` file name to the **`.gitignore`** file to avoid pushing the raw file to the git repository. You will see the following output. And, your directory structure will look like the following. ![dvc directory stucture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-92.png) The `employee_attrition.csv.dvc` pointer file looks like this. ```bash outs: - md5: 5911ebf0fa91033fb323989b7c6d7fbc size: 9983309 hash: md5 path: employee_attrition.csv ``` Git tracks only this pointer file metadata, not the actual data file. The **MD5 hash acts as the version identifier** that DVC uses to fetch the exact file from S3. Now that we have enabled the tracking, next step is to push the data to the remote storage. ### Step 7: Push the Dataset to S3 When you run `dvc push` , DVC uploads only the files that are tracked (via `.dvc` files) to the configured remote storage (S3 in our case). Since we added `employee_attrition.csv` to DVC, only that file will be pushed. Now, run the following command to push the dataset into the configured S3 bucket. ```bash dvc push ``` You will get the following output. ```bash Collecting |1.00 [00:00, 214entry/s] Pushing 1 file pushed ``` In S3, DVC stores files using a **content-addressed layout.** Meaning, each file is organized based on its MD5 hash as given below. ```bash s3://your-bucket/ └── files/ └── md5/ └── 8f/ └── 28b4894c8d5aac17cc23e68127a768 ``` This is the same structure exists in your local cache at `.dvc/cache/`. 💡 ****Why hash-based storage?** The primary reason is deduplication. Meaning, if the file content is exactly the same, it is stored only once (Same content = same hash). Also hash serves as a version ID to track versions. ### Step 8: Commit the changes to Git This is the **most important step** in the DVC workflow. After pushing the data to S3, you mush commit the changes to Git and push it. Without the commit, the dataset version is not recorded. It means, - Git will not track which version of data was used - DVC cannot map the data version to your code Lets commit the changes. ```bash git add . git commit -m "Added Dataset version 1" git push origin main ``` 💡 ****Commit Message Is Important Here:** You should use descriptive messages like `Dataset: version 2 — added Q3 records` so you can identify versions at a glance in `git log`. Now, anyone can run `git checkout` \+ `dvc pull` and **reproduce the exact setup** in the future. Meaning, recreating the same project state (code, data, and configuration) so that you can rerun the experiment if needed. ## Pull a Specific Dataset Version This is the **core use case** of why we use DVC. A data scientist, a CI/CD runner, or an Airflow worker can **pull any historical version of the dataset** To pull the latest version of the data tracked by DVC, simply run, ```bash dvc pull ``` Now, *what if you want to pull a specific version?* As discussed earlier, DVC versioning is tied to Git commits. The `.dvc` file stores the metadata for each version. So to get a specific dataset version, you need to, - Check out the corresponding Git commit (or `.dvc` file) - Then run `dvc pull` For example, run git log to get the commit history in a short format. ```bash git log --oneline ``` This will list the commit ID with the appropriate commit message as shown below. ```bash adaaee9 Added Dataset version 2 02d88b7 Added Dataset version 1 ``` If you want **version 1**, use its commit ID and perform a checkout of dvc as given below. We are just checking out the .dvc file, not the entire branch. ```bash git checkout 02d88b7 -- employee_attrition.csv.dvc ``` This will restore the .dvc file, which has the version 1 details. Then run the pull command to pull the data from S3\. It downloads the exact dataset version (version 1) from S3. ```bash dvc pull ``` Now, you check the dataset, and you can see version 1\. And, if you want to switch back to the latest version, run the following command. ```bash git checkout HEAD -- employee_attrition.csv.dvc dvc pull ``` ## Creating Reproducible DVC Pipelines With `dvc.yaml` In the above steps, we used DVC commands to just version a dataset, but in an actual project, there will be more steps like cleaning, processing, etc., involved before versioning the dataset. Each step gets data from the previous step and gives an output file for the next step, and manually doing these steps every time is repeated work and wastes time. This is where `dvc.yaml`, helps you. Think of it as a **Makefile for your ML pipeline.** You define each processing step once, and DVC handles execution, dependency tracking, and output versioning automatically. You can call it your **ML pipeline as code.** Given below is an example `dvc.yaml` file based on the first two steps of our data preparation: ```yaml stages: ingest: cmd: python -m data_preparation.01_ingestion wdir: src deps: - ../datasets/employee_attrition.csv - data_preparation/01_ingestion.py outs: - ../datasets/processed/raw_ingested.csv validate: cmd: python -m data_preparation.02_validation wdir: src deps: - ../datasets/processed/raw_ingested.csv - data_preparation/02_validation.py outs: - ../datasets/processed/validated.csv ``` In this file, you can see the following fields: - **stages** \- Every step of a process is defined inside this field. - **cmd** \- Specify the command you want to run in the step. - **wdir** \- To specify the work directory from where you want to run the command. - **deps** \- Files required for the step. - **outs** \- Save location of the output files each stage gives. To run the **`dvc.yaml`**, use the following command. ```bash dvc repro ``` This will run the steps specified inside the **`dvc.yaml`** file one by one. 💡 The steps will run only if the specified deps files are changed, if not changed, that specific step will be skipped. After the steps inside the `dvc.yaml` files are run, DVC will create a `dvc.lock` file that contains every detail of the output file created by each step to track it. Then, push the created dataset to S3 using `dvc push` and commit the changes to Git. ## Quick Reference: Common DVC Commands Here is a quick reference of DVC commands. ```bash # Setup dvc init # initialize DVC in a git repo dvc remote add -d remote s3:// # set S3 as default remote # Tracking files dvc add data/dataset.csv # start tracking a file dvc add data/ # track an entire directory # Sync with remote dvc push # upload tracked files to S3 dvc pull # download files from S3 dvc fetch # download to cache without checkout # Pipelines dvc repro # run/update the pipeline dvc dag # visualize the pipeline graph dvc status # check what's out of date # Experiment tracking dvc params diff # compare params across commits dvc metrics show # display pipeline metrics ``` ## How DVC Works in a Real MLOps Pipeline What we have seen till now is **mostly the developer side of things**. We manually did dvc add, push, and commit to Git for versioning the data. One common question that comes up when working with DVC is, ***Where Does DVC Actually Run in real projects? What does the workflow look like?*** Well, when it comes to actual prodcution workflows, **data is usually managed by CI/CD pipelines** or workflow orchestrators like Apache Airflow. ### DVC in a CI/CD Pipeline The diagram given below shows how DVC works with a typical CI/CD workflow. ![DVC working in a CI/CD pipeline](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/dvc02.png) A typical automated workflow with DVC looks like this. - A pipeline gets triggered ( For example, a scheduled job, PR merge or new raw data upload) - The workflow starts and the runners clones the repository to their work directory - It pulls raw data from the configured source storage - Run the steps for data preparation - Then **run dvc add and dvc push** to version, and push the new data to the remote DVC storage. - The `.dvc` pointer files are committed back to Git. 💡 For this to work, your CI/CD runners need read/write access to both GitHub and the S3 bucket. ### DVC in an Airflow DAG The following image illustrates the high level workflow from an Airflow perspective. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-89.png) Using DVC with Airflow DAGs And, all these things to work, your **CI/CD runners or Airflow workers need pull and push access to the Git** and object storage you are going to use. ## DVC Garbage Collection Every `dvc push` adds a new version to S3\. This means, the data size in your S3 DVC store keeps increasing over time and old version of DVC just sits there without any further use. To solve this, **DVC provides a garbage collection command** to remove files that are no longer referenced in the Git commit. 💡 To use DVC to delete old version from S3, you need to add `s3:DeleteObject` permission to your IAM role. **Always do a dry run first** to see what will be deleted. This following command will list the files that will be deleted by using the garbage collection command. ```bash dvc gc --remote --all-commits --dry-run ``` Once you have confirmed the output, run the following actual command. ```bash dvc gc --remote --all-commits ``` This command not only removes old versions from the remote storage but also removes them from the local cache. 💡 ****DVC Best Practice:** Always keep atleast 4-6 versions and run the garbage collection command using cron jobs to clean the old versions. It is the same as using image retention policies in ECR. ## DVC Alternatives DVC is not the only tool available for versioning data. Below are some of the alternatives to DVC. - [LakeFS](https://lakefs.io/?ref=devopscube.com) \- This versions the whole object storage instead of a single file, mostly suitable for large-scale dataset and data lake governance. - [GitLFS](https://git-lfs.com/?ref=devopscube.com) \- Saves the versioned dataset on the hosting providers (GitHub) own LFS storage and saves the pointer file in Git. It is used for simpler setups. ## Clean Up If you no longer need the DVC configurations, run the following command. ```bash dvc destroy ``` This removes the `.dvc/` folder and all DVC configuration. Then commit and push the changes to clean up Git as well. ## Conclusion You now have a complete picture of how DVC works from initial setup to production integration. We looked at both developer experience and how DVC integrated with CI/CD and workflow automation tools. In the next guide, we will build a full Airflow DAG on EKS that automates this entire workflow. Over to you! How are you versioning data now? Are you planning to use DVC in you projects? Comment below. ### How to Upgrade Kubernetes Cluster Using Kubeadm? URL: https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/ Last updated: 2026-04-02T11:31:38.000Z In [kubernetes tutorial](https://devopscube.com/kubernetes-tutorials-beginners/), I have added step-by-step guides to upgrade the Kubernetes cluster using Kubeadm. It is one of the important tasks in the CKA Exam. In another blog, I have covered the [Kubeadm cluster setup](https://devopscube.com/setup-kubernetes-cluster-kubeadm/). You can follow it to deploy a fresh cluser for testing the upgrade. ## Kubeadm Kubernetes Cluster Upgrade ****Note:** In this example, I will be upgrading Kubernetes version 1.34.0 to 1.34.6\. Please replace the version numbers as per your existing version and upgrade requirement. We need to run the upgrades in the following order 1. Control plane node 2. Worker Nodes Also, we need to upgrade the following components on both the control plane and the worker nodes. 1. Kubeadm 2. Kubelet 3. Kubectl Before we get started **you should know the cluster and node names**. Execute the following command to get the node names. ```bash kubectl get nodes ``` You will get the following output. ```bash NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 7d7h v1.34.0 node01 Ready worker 7d7h v1.34.0 ``` ## Upgrade The Control Plane Following are the high level steps for the control plane upgrade 1. Login to control plane 2. Check the existing version 3. unhold kubeadm and Install the latest kubeadm version 4. Decide on the upgrade version by running a kubeadm upgrade plan (Same version patch or new version) 5. Apply Kubeadm upgrade 6. Evict all workloads from control plane except daemonsets 7. Upgrade kubectl and kubelet. 8. Make the control plane schedulable (Uncordon) Lets get started with the Upgrade. ### Step 1: Check the existing Kubeadm version Login to the control plane and can check the existing version using the following command. ```bash kubeadm version -o json ``` You will get the following output. ```bash { "clientVersion": { "major": "1", "minor": "34", "gitVersion": "v1.34.0", "gitCommit": "f28b4c9efbca5c5c0af716d9f2d5702667ee8a45", "gitTreeState": "clean", "buildDate": "2025-08-27T10:15:59Z", "goVersion": "go1.24.6", "compiler": "gc", "platform": "linux/arm64" } } ``` ### Step 2: unhold kubeadm and Install the latest version During the Kubeadm cluster installation process, you would have hold the kubeadm installation to prevent upgrades. Now we need to unhold kubeadm. ```bash sudo apt-mark unhold kubeadm ``` Check the available latest Kubeadm version using the following command. ```bash sudo apt-cache madison kubeadm | tac ``` You will get the following output. ```bash kubeadm | 1.34.0-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages kubeadm | 1.34.1-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages kubeadm | 1.34.2-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages kubeadm | 1.34.3-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages kubeadm | 1.34.4-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages kubeadm | 1.34.5-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages kubeadm | 1.34.6-1.1 | https://pkgs.k8s.io/core:/stable:/v1.34/deb Packages ``` In my case the latest version is **`1.34.6-1.1`**. Update and install the latest version using the following command. Replace the version number you get from the output. ```bash sudo apt-get update -y sudo apt-get install -y kubeadm=1.34.6-1.1 ``` Hold kubeadm package. ```bash sudo apt-mark hold kubeadm ``` ### Step 3: Decide on the upgrade version You can get the list of available kubernetes version using the kubeadm upgrade plan. ```bash sudo kubeadm upgrade plan ``` The output will show the version that can be applied for the upgrade. In my case the version to be upgraded is **v1.34.6**. Change this version as per your output. ## Step 4: Apply Kubeadm upgrade Apply the upgrade using the following command with the version. ```bash kubeadm upgrade apply v1.34.6 ``` Now if you check the kubeadm version, you can see the upgraded version. ```bash { "clientVersion": { "major": "1", "minor": "34", "gitVersion": "v1.34.6", "gitCommit": "8b2bf66ce7018f6e13e8767624d4ce7768a8a2e5", "gitTreeState": "clean", "buildDate": "2026-03-18T19:18:06Z", "goVersion": "go1.24.13", "compiler": "gc", "platform": "linux/arm64" } } ``` ### Step 6: Drain the Node to evict all workloads. To apply the upgrade we nee to evict all the workloads except daemonsets using the following command. Replace **`controlplane`** with your controlplane node name. ```bash kubectl drain controlplane --ignore-daemonsets ``` ### Step 7: Upgrade Kubelet and Kubectl. Unhold and upgrade kubectl and kubelet using the following commands. ```bash sudo apt-mark unhold kubelet kubectl sudo apt-get update sudo apt-get install -y kubelet=1.34.6-1.1 kubectl=1.34.6-1.1 sudo apt-mark hold kubelet kubectl ``` Restart the services. ```bash sudo systemctl daemon-reload sudo systemctl restart kubelet ``` ### Step 7: Uncordon the Node and Verify the Node Status Use the following command to uncordon the control plane node ```bash kubectl uncordon controlplane ``` Verify the node status and version using the following command. ```bash kubectl get nodes ``` You can see the control plane upgraded to the new version and nodes running on the old version as shown below. ```bash NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 7d7h v1.34.6 node01 Ready worker 7d7h v1.34.0 ``` ## Upgrade Worker Nodes Worker node upgrade steps are similar to control plane upgrade. However the internal upgrade process differ from control plane. All the following steps should be executed on the Worker node. If you have multiple worker nodes, upgrade one at a time. ### Step 1: Unhold Kubeadm and Install Required Version Install the required version of Kubeadm on worker nodes. Replace `1.34.6-1.1` with you version. ```bash sudo apt-mark unhold kubeadm sudo apt-get update && sudo apt-get install -y kubeadm=1.34.6-1.1 sudo apt-mark hold kubeadm ``` ### Step 2: Upgrde Kubeadm As you are running the following command on a worker node, it skips all the steps required for the control plane and update only kubelet configuration required for a worker node. ```bash sudo kubeadm upgrade node ``` ### Step 3: Drain the Node Evict all the pods on the worker node by draining it. Replace **`node01`** with your worker node name. Execute this command from terminal where you have kubectl access. ```bash kubectl drain node01 --ignore-daemonsets ``` If pods are using local storage, you might get the following error. This is mostly occur in vagrant setup. In CKA exam, you will not probably face this issue. ``` error: unable to drain node "node01" due to error:cannot delete Pods with local storage (use --delete-emptydir-data to override): kube-system/metrics-server-69fb86cf66-nqmhn, continuing command... There are pending nodes to be drained: node01 cannot delete Pods with local storage (use --delete-emptydir-data to override): kube-system/metrics-server-69fb86cf66-nqmhn ``` To rectify that issues, you need to add the `--delete-emptydir-data` as well. ```bash kubectl drain node01 --ignore-daemonsets --delete-emptydir-data ``` ### Step 4: Upgrade Kubelet & Kubectl Run these commands on worker nodes ```bash sudo apt-mark unhold kubelet kubectl sudo apt-get update sudo apt-get install -y kubelet=1.34.6-1.1 kubectl=1.34.6-1.1 sudo apt-mark hold kubelet kubectl ``` Restart kubelet ```bash sudo systemctl daemon-reload sudo systemctl restart kubelet ``` ### Step 5: Uncordon worker node Execute the following uncordon command from the node where you have kubectl access. ```bash kubectl uncordon node01 ``` ## Verify Cluster Upgrade Now that we have upgraded the control plane node and the worker nodes, lets verify if the cluster is upgraded and working as expected. Get the node information ```bash kubectl get nodes ``` You should see the control plane and worker nodes upgraded to the specified version. ```bash NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 7d8h v1.34.6 node01 Ready worker 7d7h v1.34.6 ``` From the control plane node, you can use any one of the following kubectl commands to check the status of all the cluster components. ```bash kubectl get --raw='/readyz?verbose' curl -k https://localhost:6443/livez?verbose ``` ![kubernetes API health status](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/api-health-1.png) Also, check if all the kube-system control node pods are running. ```bash kubectl get po -n kube-system ``` ![verify kube-system pods status](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-31-13.png) ## Conclusion Kubeadm utility helps you upgrade the Kubernetes cluster control plane and worker nodes without downtime. Ensure you verify the cluster and application status after the upgrade. Also, Kubeadm cluster upgrade is one of the important topics in Kubernets CKA certification. If you are preparing for CKA exam, you can check out [CKA exam guide](https://devopscube.com/cka-exam-study-guide/). If you are preparation for Kubernetes certification, checkout the [best Kubernetes certification](https://devopscube.com/best-kubernetes-certifications/) guide that matches your skillset. ### How to Deploy Argo CD on Kubernetes: A Beginner's Guide URL: https://devopscube.com/setup-argo-cd-using-helm/ Last updated: 2026-04-24T14:36:43.000Z In this blog, we will look at Argo CD installation on Kubernetes using step-by-step instructions. After the installation, we will look at deploying sample applications the **GitOps way**. We will use a git repository to deploy the application using Argo CD. We will also look at configuring GitHub webhooks to enable the sync process as soon as there is a change in the configured git repository. Before going into the setup, make sure you have a clear understanding of the [Argo CD architecture](https://devopscube.com/argo-cd-architecture/). ## What is Argo CD? [Argo CD](https://argo-cd.readthedocs.io/?ref=devopscube.com) is a declarative, GitOps CD tool for Kubernetes, which helps you to manage applications using the [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners) deployment YAML file stored in the Git repository. Argo CD uses the GitOps principle, which means Argo CD continuously monitors the repository, detects changes, and deploys them. Argo CD uses a pull-based deployment, which means whenever a change is made to the [deployment](https://devopscube.com/kubernetes-deployment-tutorial/) YAML file in the GitHub repository, Argo CD detects, pulls, and automatically deploys the latest changes. Given below is a simple workflow of Argo CD components. ![argocd workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/ArgoCD-Architecture2.png) Below is the list of each Argo CD component. 1. **argocd application controller (Statefulset):** A core component of Argo CD that is responsible for managing and synchronizing applications (reconciliation) deployed in a Kubernetes cluster with the desired state in Git 2. **argocd application set (Deployment):** A controller that automatically generates and manages Argo CD Applications based on a template. 3. **argocd notification** (**Deployment**): Sends notifications about Argo CD events to various channels like email, Slack, or webhooks. 4. **argocd reposerver (Deployment):** The component that manages Git repositories and provides an API for accessing and synchronizing application manifests. 5. **argocd server (Deployment):** The main component that exposes the Argo CD API and serves the web UI for managing applications and configurations. 6. **dex server (Deployment):** It is an identity provider that can be integrated with Argo CD for user authentication and authorization with external identity providers (OIDC Providers) like GitHub, SAML etc. 7. **Redis** **(Deployment)** : Used for caching to reduce request sent to Kube API and to Git provider. ## Prerequisites To get started with the setup, you should have the following. 1. A working [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) 2. [Kubectl](https://devopscube.com/kubectl-set-context/) configured with the cluster 3. [Helm installed](https://devopscube.com/install-configure-helm-kubernetes/) on your workstation. We will see about two deployment methods of Argo CD, one is using manifest and the other using Helm. Lets get started with the setup. ## Argo CD Setup Using Manifest Files The easiest way to set up Argo CD on Kubernetes is using plain Kubernetes manifest files available in the Argo project GitHub repository. If you are setting up Argo CD for project requirements, use the Helm charts given in the next section. We will deploy Argo CD in a custom namespace called `argocd`. The following kubectl commands will create the namespace and deploy the manifest. ```bash kubectl create namespace argocd kubectl apply -n argocd --server-side --force-conflicts -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml ``` 💡 The `server-side` flag ignores the annotation size limit because some CRDs have annotation size bigger than 262KB. And the `force-conflicts` flag prevents conflict between server-side and client-side fields by changing the ownership of fields to server-side. This command creates [Kubernetes objects](https://devopscube.com/kubernetes-objects-resources/) related to Argo CD Namespace scoped and cluster scoped resources. The key objects are Argocd services, deployments, and statefulsets, ClusterRoles, Configmaps, and Secrets. It also created Argo CD custom resources like **applications**, **applicationsets** and **appprojects.** You can access the Argo CD UI in our workstation using the following port forwarding command. ```bash kubectl port-forward svc/argocd-server -n argocd 8080:443 ``` You will get an SSL error due to **self-signed certificate** added to the Argo CD server. You can click proceed to access the UI. ![argocd not secured ui](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-90.png) To login to the UI, you need a username and password. The default username is **`admin`**. To get the password, execute the following command. ```bash kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 --decode ; echo ``` Once logged in, you will get the Argo CD server dashboard as shown below. ![Argo CD server dashboard.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-91.png) You can clean up the setup using the following command. ```bash kubectl delete -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml ``` ## How to Deploy Argo CD Using Helm Chart If you are setting up Argo CD for project purposes, we highly recommend you setup using Helm charts rather than plain manifest files. Because with plain manifest, you need to find and modify each RAW YAML file each time and re-apply it. But with Helm, all configurations are managed in a single values file, you just need to update it and run the Helm upgrade command. Follow the steps given below to setup Argo CD using the **official Argoproject helm chart.** ### Step 1: Add Argo CD repo Add the Argo CD repo to your system to download the Helm chart for set up. Run the following command to add the repo. ```bash helm repo add argo https://argoproj.github.io/argo-helm ``` Now, list every repo with the word argo using the command ```bash helm search repo argo ``` You will get the list of repos with the word argo as shown below. The chart we need is `argo-cd`. ```bash $ helm search repo argo NAME CHART VERSION APP VERSION argo/argo 1.0.0 v2.12.5 argo/argo-cd 9.5.0 v3.3.6 argo/argo-ci 1.0.0 v1.0.0-alpha2 argo/argo-events 2.4.21 v1.9.10 argo/argo-lite 0.1.0 argo/argo-rollouts 2.40.9 v1.9.0 argo/argo-workflows 1.0.7 v4.0.4 argo/argocd-applicationset 1.12.1 v0.4.1 argo/argocd-apps 2.0.4 argo/argocd-image-updater 1.1.5 v1.1.1 argo/argocd-notifications 1.8.1 v1.2.1 my-repo/argo-cd 11.0.0 3.1.1 my-repo/argo-workflows 13.0.6 3.7.1 community-charts/cloudflared 2.2.7 2026.2.0 ``` ### Step 2: Customize Helm Chart Configuration Values Before deploying, you need to update **NodePort** configurations in the Helm chart so that you can access Argo CD UI in the browser. For that, use the below command to save the default values of the Helm chart in a YML file. ```bash helm show values argo/argo-cd > values.yaml ``` Make changes in the **service configuration block**. Change the type from **ClusterIP** to **NodePort** as shown in the below image. It is responsible for exposing the Argo CD server UI. The default nodePort is `30080`. You can customize that as well. ![changing service type to nodeport](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-94.png) Below is the custom values file, which only has the configuration to change the service type of the Argo CD server component. ```yaml server: service: type: NodePort nodePortHttp: 30080 nodePortHttps: 30443 ``` By changing the type to NodePort you can access Argo CD UI on the browser using the URL **:**. 💡 Use loadbalancer to expose Argo CD in production environment Make sure to use the **same node port number** you mentioned in the **`values.yml`** file. 💡 If you want to set up Argo CD in an private environment ****without access to these public registries**, you might have to upload the image to the relevant **internal registry** and then run the helm chart with custom values. ### Step 3: Deploy Argo CD Now, use the below command to deploy Argo CD in the argocd namespace. ```bash helm install -f values.yaml argocd argo/argo-cd -n argocd --create-namespace ``` On a successful deployment, you should see the following output. ![argocd helm deployment](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-95.png) Now, run the following command to check if the pods are up and running. ```bash $ kubectl get po -n argocd NAME READY STATUS RESTARTS AGE argocd-application-controller-0 1/1 Running 0 2m53s argocd-applicationset-controller-48css 1/1 Running 0 2m54s argocd-dex-server-8f5687997-8txcr 1/1 Running 0 2m53s argocd-notifications-controller-4jdd4 1/1 Running 0 2m54s argocd-redis-fcd76bcfb-xnlgt 1/1 Running 0 2m54s argocd-repo-server-7b8447858f-6fvsj 1/1 Running 0 2m54s argocd-server-7f857f54f-5t466 1/1 Running 0 2m54s ``` All the pods are running, lets try accessing the UI. ### Step 4: Log in to Argo CD Web UI Since we have enabled the `NodePort` on `30080`, you can use the public IP or Private IP of any node of your cluster with the node port number in the format **:**. In my case, the URL will be **168.144.64.114:30080.** Now, access the UI in your browser using the URL, you will get the following window ![argocd ui](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/2023-12-15_15-38-54-1.png) Login to Argo CD using the username and password. Your **default username** will be **admin,** and run the following command to get the password. ```bash kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 --decode ; echo ``` This command will show your password for Argo CD, use the password and log in to Argo CD UI. Once you log in you can see the home screen of Argo CD as shown below. ![argocd dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-107.png) ### Step 5: Change Default Admin Password We will not be using the default password for the admin user after login. Lets, update the admin password. The simplest way to update the password is through the UI. From the dashboard, go to User Info and click UPDATE PASSWORD. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-108.png) A new pop up will appear to change the password. In there, you need to give the current and new passwords you need to update. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-109.png) Then click the SAVE NEW PASSWORD button to update the new password. That's it, you will get a password update successful message after a successful update. The other method for updating a password and managing users is done using the ArgoCD CLI. Refer to the [user management](https://devopscube.com/create-a-new-account-in-argo-cd) blog for more information about user management. ## Deploying Applications on GitHub using Argo CD (GitOps Way) Now that we have the Argo CD setup ready, we can test an Nginx deployment that shows a custom message on the index page exposed on NodePort 32000. We have the Nginx deployment files in the [Argo CD Guide repository.](https://github.com/techiescamp/argocd-guide?ref=devopscube.com) ```bash git clone https://github.com/techiescamp/argocd-guide.git cd argocd-guide/nginx-deployment ``` You can see the manifests are organized under the `nginx-deployment` folder as shown below. ```bash ➜ nginx-deployment ├── configmap.yaml ├── deployment.yaml └── service.yaml ``` From the Argo CD dashboard press the **\+ NEW APP** button to configure the repository. ![create new app in argo cd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-93.png) A new window will pop up, specify the Application Name as **nginx-deployment**, give the Project Name as `default`, and set the SYNC POLICY to automatic or manual as you like. If you set the `SYNC POLICY` to automatic, Argo CD automatically detects the changes made in your Git repository and triggers the deployment, or if you set the SYNC POLICY to manual you have to trigger it manually to start the deployment. By **default the automatic sync uses polling** to find the changes that happens in the git repository. The default **polling interval is three minutes (180 seconds)**. It is a configurable option in the helm chart. You can modify `timeout.reconciliation` as per your sync requirement. Also enable **AUTO-CREATE NAMESPACE** option so that namespace will be created if it doesn't exist. ![create an application in argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-96.png) Also, there are other SYNC POLICY options, enable them as per your need. Now, add the source information which is your Git repository URL, and the path of the YAML file. ![create an application in argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-97.png) Then, select the **Cluster URL,** which will be shown when you select the Cluster URL tab. Select `https://kubernetes.default.svc` as we are deploying the application on the same cluster where Argo CD is deployed. Also specify the namespace as **webserver**. Then, click the **Create button** as shown below. ![create an application in argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-99.png) When you click the create button it will sync the repository manifests and deploy it. You can see the deployment information in the dashboard as shown below. ![application deploy using argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-100.png) Click the application to see detailed info about your deployment as shown below. ![application deploy using argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-101.png) To validate our deployment, lets try to access the Nginx deployment on NodePort 32000\. You should see a page as shown below. ![accessing the application deployed using argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-106.png) ## How to Configure GitHub Webhook for Argo CD? Even though **Argo CD continuously monitors Git for changes** there is a time delay in syncing the changes. To remove the time delay we can use webhook which triggers the sync process as soon as a change is made in Git. Let's look at how to configure a webhook on Argo CD. First, go to your Git repository which you configured with Argo CD then go to **Setting->Webhooks->Add webhook** as shown in thebelow image to configure webhooks. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-2-28.png) After pressing the Add webhook button you can see the configuration window as shown below. The Payload URL would be the Argo CD webUI endpoint appended with **/api/webhook**. That is **:/api/webhook** For example, **https://34.71.163.101:30080/api/webhook.** Change the **Content type** to **application/json**, and give the **Secret** as you like. ![configure webhook for argocd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-103.png) Now, select Enable SSL verification if you are using an SSL certificate for your Argo CD, and select Disable if you are not using an SSL certificate. Then select the event in which you like to trigger the webhook, it will trigger the webhook according to the event you select. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-28.png) Click the **Add webhook** button to add the webhook configuration for your Argo CD, you can see the webhook has been added as shown below. ![argocd webhook configured](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-104.png) By selecting it you can see the triggers made by the hook as shown below. ![argocd webhook configured](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/04/image-105.png) ## Clean UP If you no longer need the setup, run the following command. ```bash helm delete argocd -n argocd ``` ## Argo CD Setup Best Practices Following are some of the best practices you need to follow when running Argo CD for production use cases. 1. It is a standard practice to run one Argo CD instances per environment (dev, stage, prod) to avoid potential conflicts. 2. Ensure you enable RBAC to limit access to the Argo CD instance to follow the principle of least privilege. Categorize users based on roles and responsibilities and audit them regularly. 3. Patch the Argo CD image regularly to avoid security vulnerabilities. 4. Backup Argo CD configuration for disaster Recovery and backup purposes. 5. Setup monitoring and alerting using tools like [Prometheus](https://devopscube.com/prometheus-architecture/) for events like [deployment ](https://devopscube.com/kubernetes-deployment-tutorial/)failures, resource constraints, etc. ## Argo CD Configuration FAQ's ### How does Argo CD store data? Since Argo CD is a stateless app, it doesn't need any volumes to store data. All the data is stored as [Kubernetes Objects](https://devopscube.com/kubernetes-objects-resources/). So ultimately, all the Argo CD data is stored in Kubernetes etcd. Also, it uses Redis as a throwaway cache. If you want a study guide for Certified Argo Project Associate (CAPA), then here is the [detailed study guide](https://devopscube.com/certified-argo-project-associate/). ### How to change the default admin password in Argo CD? You can either update the password from the Argo CD UI or use Argo CD CLI commands to update it. ## Conclusion In summary, we have seen about deploying Argo CD using both the manifest method and the Helm method. Also, we tested Argo CD by deploying an application manifest on GitHub in a GitOps way and configured a webhook for the repository. ### Docker Image Build & Promotion Pipeline with GitHub Actions URL: https://devopscube.com/docker-image-build-promotion-piepeline/ Last updated: 2026-03-25T16:58:16.000Z In real [DevOps projects](https://devopscube.com/devops-projects/), you do not just build an image and push it to a registry. The image needs to pass through several quality and security gates first. In this hands-on guide, I will walk you through a **complete, production-grade Docker image build and promotion pipeline** using GitHub Actions just like how it is done in real enterprise environments. 💡 If you want first look at the entire CI/CD design for docker build, please refer the [Production Guide for Docker Image Build and Promotion Pipeline](https://devopscube.com/docker-image-build-and-promotion-pipeline/) where we explained the key production considerations and workflows. Here is what is covered in this blog. - Automating a Java application build and Dockerization with GitHub Actions - Managing container registry credentials securely with GitHub Secrets - Promoting images through dev, stage and prod registries - Signing the final container image using Cosign - Build caching, image tagging strategy, registry architecture, and more.. 💡 We have used a Java application as an example. This workflow applies to any application. Just the application build steps would change. The rest of the production process remains the same. ## Setup Prerequisites The following are the prerequisites for this guide. - GitHub Repository - Three Container Repositories ( Dev, Stage and Prod) - [Docker](https://devopscube.com/docker-tutorial-getting-started-with-docker-swarm/) Hub is used in this guide - Basic knowledge of how GitHub Actions works - Cosign [installed](https://docs.sigstore.dev/cosign/system%5Fconfig/installation/?ref=devopscube.com) in your local system to create keys. 💡 This workflow does not depend on any cloud platform. Anyone with access to GitHub and Docker Hub can follow the entire setup. ## Image Promotion Workflow Given below is complete workflow of the image promotion workflow we are going to do. ![Docker Image build and Promotion Workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-promotion6-1.png) We won't be deploying in this guide, just to show what happens in each environment, deployment is also shown in the image. In our project, we used three image repositories dev, stage, and prod. But the number of repositories may vary based on the projectm, there will be more repositories for each environment. And if you have multiple micro services, you have to create registries for each service for each environment. An example structure is given below. ```bash registry.company.com/ ├── dev/ ├── stage/ ├── release/ └── prod/ ``` ## Project Directory Structure I have pushed all the necessary files for this guide to our [GitHub repository](https://github.com/techiescamp/docker-image-pipeline.git?ref=devopscube.com), including a simple Spring Boot Java application code. Fork and clone the repository to your system. ⚠️ While cloning to local, use your forked repository URL in the below clone command. Use the following command to clone it to your system. ```bash git clone https://github.com/techiescamp/docker-image-pipeline.git ``` Then move into the `docker-image-pipeline` folder. ```bash cd docker-image-pipeline ``` You will see the following directory structure. ```bash . ├── .github │ └── workflows │ ├── pr-checks.yaml │ ├── image-build-pipeline.yaml │ ├── promote-to-stage.yaml │ └── promote-to-prod.yaml ├── java-app │ └── ├── Dockerfile ├── README.md └── tests └── container-structure-test.yaml ``` You can see four workflow files inside the directory `.github/workflows` and also, you will see 4 branches: - Main - Release- - Develop - Feature (cr-161) During the hands-on section, we will start from the `Feature` branch. In the next sections, we will look into the Dockerfile. ## Dockerfile Below is the Dockerfile, which we will be using to build and Dockerize the Java application. ```dockerfile FROM maven:3.9-eclipse-temurin-21 AS builder WORKDIR /build COPY java-app/pom.xml . RUN mvn -B -e dependency:go-offline COPY java-app/src ./src RUN mvn -B clean package -DskipTests FROM gcr.io/distroless/java21-debian12 WORKDIR /app COPY --from=builder /build/target/*.jar app.jar EXPOSE 8080 CMD ["app.jar"] ``` This is a multi-stage Dockerfile, which builds the application in the first stage and keeps only the required files to run the application in the final image. The Dockerfile uses the `maven:3.9-eclipse-temurin-21` image as the base image for the build stage, which contains [Java](https://devopscube.com/install-maven-guide/) and [Maven](https://devopscube.com/build-java-application-using-maven/) to build the application. First, it sets a working directory `/build`, and then it copies the source code and uses Maven to build the application Jar file. And in the second and final stage, we use the `gcr.io/distroless/java21-debian12` image as the base image, and it will be the base image of the final Docker image. 💡 A distroless image helps you to create a minimalistic Docker image and removes the shell and unwanted packages, which is best for production. But be cautious, if you are using a distroless image, you cannot enter the container for debugging. Then it copies the Jar file from the previous build location to the working directory `/app` and exposes the port `8080`. This distroless image already has an entrypoint that runs `java -jar`, so we just need to give the file name `app.jar` in CMD. ![multi stage docker image build](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-promotion7.png) 💡 We used a simple Dockerfile for this example, but in the actual environment, the Dockerfile will be built with all the [best practices](https://devopscube.com/build-docker-image) to make the container secure. In the next section, we will see about creating GitHub secrets with DockerHub credentials and Cosign keys. ## Create GitHub Secrets Before triggering the workflow, you need to save two things as GitHub Secrets: - DockerHub credentials - Cosign private key and password To create GitHub Secrets, go to `Settings -> Secrets and Variables -> Actions` and click the `New repository secret` as shown below. ![creating github secrets](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-137.png) ### Save Docker Credentials Create two secrets to save Docker credentials, which will be used in the image build workflow. Create secrets as `DOCKERHUB_USERNAME` for username and `DOCKERHUB_TOKEN` for password. ![creating github secrets](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-85.png) This will be used in the workflows to sign into the registry. ⚠️ In an enterprise setting, static secrets (usernames/passwords) are a major security risk. Enterprises prefer solutions like [****OpenID Connect (OIDC)**](https://devopscube.com/github-actions-oidc-aws/) for authentication to eliminate long-lived secrets. ### Save Cosign Private Key and Password First, create a Cosign Private key from your local, use the following command. ``` cosign generate-key-pair ``` It will ask you to give a password for the private key, which is required to use the private key during the signing process. Once you specify the password, it creates two key files `cosign.key` and `cosign.pub`. Copy the content of `cosign.key` and save it as `COSIGN_PRIVATE_KEY` and save the password as `COSIGN_PASSWORD`. ![created cosign secrets in github secrets](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-122.png) Now that the credentials, key, and password are saved, let's trigger the workflows in the next section. ## How to build and promote a Docker Image using GitHub Actions? 💡 In the workflows, we are using GitHub Actions hosted runner ubuntu-latest to run the jobs, but for the actual production setup, you have to set up a [self-hosted runner](https://devopscube.com/github-actions-runner-aws-eks/) for the jobs. We will be using four types of workflow files for this build and promotion workflow, the files are: - pr-checks.yaml - image-build-pipeline.yaml - promote-to-stage.yaml - promote-to-prod.yaml Let's start triggering the workflows one by one. ### Trigger PR Workflow The PR workflow is `pr-checks.yaml` gets triggered automatically when you raise a PR to the Develop branch. > To trigger the workflow, modify the container repository URL with your repository URL in the `image-build-pipeline.yaml` and `promote-to-prod.yaml` workflow files in the Feature(cr-161) branch and raise a PR to the Develop branch. Since my workflow file has the correct URL, I will just update the `README` file and raise the PR. ![create pull reqyest to develop branch](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-107.png) Once the PR is raised to Develop, go to Actions, and you can see a new job is triggered. ![pr workflow gets triggered](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-108.png) If the job is successful, you will see the status of the job as shown below. ![pr build completed successfully](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-109.png) If you click the job, you can see the steps run in the job and its details. ![step runned in pr build](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-39.png) Once the PR workflow run has been completed, you can get the SBOM report from the workflow link. ![Downloading the SBOM report](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-66.png) Click the link to download the SBOM report. 💡 In this workflow, the SBOM report is uploaded to the GitHub Actions artifact. But in an actual production setup, the SBOM report will be saved in artifact storage like [AWS ECR](https://devopscube.com/setup-argocd-image-updater/), JFrog, Harbor, etc. Let's move on to the image-building and pushing stage. ### Trigger Image Build Workflow The next stage is to trigger the image-building workflow `image-build-pipeline.yaml`. This will be triggered automatically, when the PR is merged to the Develop branch. First, go to the Pull Request menu, ![Pull request in develop branch](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-111.png) And, merge the PR. ![Merge pull request](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-112.png) Refresh the page, and you will see a new job is triggered. ![build triggered from merging to develop branch](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-38.png) Select the job, and you will see the steps run in this job. ![steps in image build and push workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-41.png) > Make sure to save the SHA ID of the image, it is required to trigger the next workflow. Now, check your dev container registry, you will see two image tags as shown below. ![dev image registry](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-40.png) Now, the image has been built and pushed to the stage repository, let's move on to the image promotion stage to stage. ### Trigger Image Promotion Workflow to Stage The image promotion workflow `promote-to-stage.yaml` will not be triggered automatically,first, we need to create a release branch with the commit ID for the previous build. For example, my previous commit ID is `0165857`, the my release branch name will be `release/v1.0.0-sha-0165857`. The image promotion workflow `promote-to-stage.yaml` will not be triggered automatically, we need to push the changes to the main branch and trigger it manually. Create a new branch from the develop branch, give the name, and press create. ![create a release brach from develop](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-44.png) Then, go to the Actions menu, select the promotion to stage workflow file, and click the Run workflow toggle key. It will ask for the image's SHA ID, which you want to promote. Once you enter the ID, click the Run workflow button to start the job. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-45.png) This will trigger the promotion workflow for stage. ![promotion workflow for stage.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-46.png) Below are the steps runned by the stage promotion workflow. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-47.png) Copy the SHA ID, it is required for the promotion to prod. Now, check your stage container registry, you will see two image tags as shown below. ![stagging image registry](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-48.png) Now, the image has been promoted to the stage repository, let's move on to the image promotion stage to prod ### Trigger Image Promotion Workflow to Prod Same like the previous step, the image promotion to prod workflow `promote-to-prod.yaml` will not be triggered automatically, we need to push the changes to the main branch and trigger it manually. During the trigger, it will ask for the Docker image's SHA ID, which we got from the previous job. First, push the code changes to the main branch from the release branch. Then, go to the Actions menu, select the promotion workflow file, and click the Run workflow toggle key, to select the branch and enter the SHA ID. It will ask for the image's SHA ID, which you want to promote. Once you enter the ID, click the Run workflow button to start the job. ![trigger prod promotion pipeline manually](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-49.png) Refresh the page and you can see a new job is triggered. ![prod promotion pipeline triggered](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-52.png) Select the job, and you can see the steps run in it. ![promotion pipeline steps](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-53.png) Now, go to your prod repository, and you can see two images that are the same as in the staging repo, as shown below. ![prod image registry](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-54.png) Now, you can verify if the images are signed using the public Cosign key in our local environment, use the following command. ``` cosign verify --key cosign.pub /: ``` This will verify if the image has not changed after signing. 💡 The image is continuously scanned for vulnerability even after it's pushed to the production registry, it is scanned periodically using cron jobs for any new vulnerability. And, on the deployment side, especially in [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), you can use tools like Kyverno to set policies to set certain standards, for example, block images without a valid signed key. ## Build Caching Caching is the process of reusing stored files between builds to save build time. ![github actions build caching](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-promotion3.png) In the above workflow files, we have configured caching for the image build step as shown below. ```yaml cache-from: type=gha,scope=java cache-to: type=gha,scope=java,mode=max ``` In our example, we are saving the cache in GitHub Actions itself using the `type=gha` argument. 💡 For production environemnt, configure cloud sorages like [AWS S3](https://devopscube.com/terraform-state-locking-with-s3/) for storing the caches of the build. We use the cache saved during PR check-in in the image building workflow to save the build time. 💡 ****Note:** For small applications like what we used, caching may not much differance. But in real world projects with large depecnies, caching helps you to reduce the time by 50-70%. ## Observability Layer Setting up observability to check the health of the CI/CD pipeline is very important. Without proper visibility, you may not know whether there are resource constraints in the runner, builds are queuing up, which build is wasting time, or taking more time, etc. Below are the key things to track: - Build queue depth and wait times - To identify if you need more runners - Success/failure rates per service - To identify builds with issues - Average build duration trends - To find the time taken for builds - Cache hit ratios - To check if caching is working Still, we are using GitHub Actions, and we will get basic information about the runs in the Actions tab itself. For further in-depth information, configure [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) and [Grafana](https://devopscube.com/grafana-loki-architecture/) for monitoring the workflow and exporting metrics to them. ## Reusable Workflows In this example, we have kept every workflow file inside the same repository, it is fine for small projects. But think, if you have more than 100+, what will you do? Maintaining more workflow files that have the same steps is a waste of time and difficult to manage. That is where reusable workflows help you. ![Reusable Workflows](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-promotion8.png) A reusable workflow is like a template for jobs and steps that can be reused across multiple repositories and projects. Instead of defining the same steps separately in each repository, we can create centralized, reusable workflows in a repository and use them from there. An example of how reusable workflows are called is given below. ```yaml jobs: pr-checks: uses: your-org/org-workflows-repo/.github/workflows/reusable-pr-checks.yml@main with: config-path: .github/reusable-pr-checks.yaml secrets: inherit ``` ## Conclusion In this guide, you have learned about the complete workflow of how a Java application is built and Dockerized using GitHub Actions with most of the image security best practices. Not just Java applications, all language applications are built using the same format, just the application build and Dockerfile will differ based on the application language. Also, we have gone through how an image is built and promoted from a dev to the prod image registry. Not only that, but we have also signed the image at the end to give proof that the image has not changed after the promotion. If you have any doubts about this guide, drop a comment. We will help you to clear it! ### How to Clone AWS EBS Volumes Instantly Without Snapshots? URL: https://devopscube.com/clone-aws-ebs-volumes/ Last updated: 2026-03-12T10:40:15.000Z AWS now as **EBS Volume Clone** feature that lets you copy an EBS volume instantly with a single API call and no snapshot is required. By the end of this guide, you will understand, - What EBS Volume Clones are and how they work - How cloning differs from snapshots (and when to use each) - How to clone an EBS volume using the AWS CLI - Best practices for managing cloned volumes Let's get started. ## What is EBS Volume Cloning? EBS Volume Cloning lets you create an instant, **point-in-time copy of an EBS volume** within the same Availability Zone. Previously, copying a volume required the follwing two steps. 1. Create a snapshot of the volume and wait for it to upload to S3 2. Create a new volume from that snapshot and wait again for all the data to fully copy over to the new volume. This process could take anywhere from minutes to hours depending on volume size. With EBS Volume Clones, **both steps combine into a single API call** or console click is enough to clone a volume. 💡 ****How it works under the hood:** AWS makes the clone available immediately and copies the data blocks from the source volume in the background. This is called background initialization. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-64.png) The interesting thing is, the **cloned volume becomes immediately available** to mount on an EC2 instance, even if it contains TBs of data. Here are the important things you should know about cloning. - You cannot clone a volume across AZs or Regions. - It currently only works with **encrypted** volumes, so the original volume must be encrypted. - You cannot start a second clone until the first one completes initialization. - The cloned volume is ready to use immediately, while the remaining data from the source volume continues copying **in the background**. - The clone does not have to be the same size as the original volume. For example, if your 100 GiB volume only uses 15 GiB, you can clone it as a 15 GiB volume. ## What is Background Initialization? When you clone a volume, it shows a status of **"initializing"** until the background data transfer completes. During this period, - The volume is **fully usable** and can be attached to an EC2 instance immediately. - Performance is limited to the **baseline of the source volume** (e.g., gp3 baseline is 3,000 IOPS / 125 MiB/s). - If your application reads a block that hasn't been copied yet, AWS fetches it from the source volume first and it adds slight latency. 💡 ****Best practice:** Avoid heavy read/write workloads on the cloned volume until initialization is complete. Now, let us do a hands-on ## How to Clone an EBS Volume Using AWS CLI Let look at cloning an existing EBS volume and attaching it to another instance. This hands-on assumes you already have: 1. [**AWS CLI**](https://devopscube.com/use-aws-cli-create-ec2-instance/) installed and configured on your local system 2. The **Volume ID** of the existing [EBS volume](https://devopscube.com/mount-ebs-volume-ec2-instance/) 3. The **Instance ID** of the instance you want to mount the cloned volume. 💡 ****Note:** EBS Volume Clone requires AWS CLI v2.18 or later. If the `copy-volumes` command is not found, upgrade your CLI first. Now follow the steps given below. ### Step 1: Clone the volume Now, run the following command to directly clone the volume. Replace the source volume ID with your own. ```bash aws ec2 copy-volumes \ --source-volume-id vol-08e73a245cfa471e0 \ --size 15 \ --volume-type gp3 \ --region us-west-2 ``` ⚠️ If the above command is not working, upgrade your [AWS CLI](https://devopscube.com/install-configure-aws-cli-linux/) to the latest version first. Once the command executes successfully, you will receive a similar output of the created volume details. ```json { "Volumes": [ { "SourceVolumeId": "vol-08e73a245cfa471e0", "Iops": 3000, "Tags": [], "VolumeType": "gp3", "MultiAttachEnabled": false, "Throughput": 125, "VolumeId": "vol-06622189b221b795a", "Size": 15, "AvailabilityZone": "us-west-2a", "State": "creating", "CreateTime": "2025-10-23T04:41:30+00:00", "Encrypted": true, "KmsKeyId": "arn:aws:kms:us-west-2:123456789:key/a79d6e35-6397-4a88-8e51-aebee33cb434" ``` > Note down the created volume ID (`vol-06622189b221b795a`) to attach to another instance. ### Step 2: Attach the cloned volume to an Ec2 instance To mount a volume to an instance, use the following command. Replace the Instance ID (`i-09a1664e976dce9d7`) and the cloned volume ID `vol-06622189b221b795a`) with your own value. 💡 The cloned volume and the EC2 instance must be in the same availability zone for the volume to be mounted. ```bash aws ec2 attach-volume \ --volume-id 'vol-06622189b221b795a' \ --instance-id 'i-09a1664e976dce9d7' \ --device '/dev/sdb' ``` > **Note:** If you get an error that the device path is already in use, try another path such as `/dev/sdf` Once the execution is completed, you will see a similar output. ```json { "VolumeId": "vol-06622189b221b795a", "InstanceId": "i-09a1664e976dce9d7", "Device": "/dev/sdb", "State": "attaching", "AttachTime": "2025-10-23T04:55:56.197000+00:00" ``` ### Step 3: Mount and verify the volume SSH into the target Ec2 instance, where you want to mount the volume. Then execute the following command to list the block stores. ```bash sudo lsblk -f ``` The output will list the attached volumes. ```bash NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 xfs / 6bf6dcc0-0673-443a-b92a-b26a3524cf3b 8.4G 16% / ├─nvme0n1p127 └─nvme0n1p128 vfat FAT16 92F7-4B7C 8.7M 13% /boot/efi nvme1n1 ├─nvme1n1p1 xfs / 6bf6dcc0-0673-443a-b92a-b26a3524cf3b ├─nvme1n1p127 └─nvme1n1p128 vfat FAT16 92F7-4B7C ``` Here, `nvme1n1p1` is the cloned volume, but it is not mounted with the file system yet. Create a mount directory and mount the volume ``` sudo mkdir -p /mnt/data sudo mount -o nouuid /dev/nvme1n1p1 /mnt/data ``` ***Why `-o nouuid`?*** The clone has the same filesystem UUID as the source. This flag prevents a mount conflict. Once the mounting is completed, we can check the disk filesystem. ```bash df -h ``` The following output will show the file systems and their usage. ```bash Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 453M 0 453M 0% /dev/shm tmpfs 181M 452K 181M 1% /run /dev/nvme0n1p1 10G 1.6G 8.4G 16% / tmpfs 453M 0 453M 0% /tmp /dev/nvme0n1p128 10M 1.3M 8.7M 13% /boot/efi tmpfs 91M 0 91M 0% /run/user/1000 /dev/nvme1n1p1 8.0G 1.6G 6.4G 20% /mnt/tmp ``` You should see `/dev/nvme1n1p1` listed with its size and usage. This ensures that our volume is mounted and that we can even check the data inside it. ```bash ls /mnt/tmp/ bin boot dev etc home lib lib64 local media mnt opt proc root run sbin srv sys tmp usr var ``` These are all the system files of the original EBS volume. ## Real-World Use Cases This clone eature aims to eliminate waiting time and increase productivity. Here are are some real-world use cases. 1. **Dev/test environment setup**: Developers and the QA team can quickly create up-to-date copies of the production application environment to test, find bugs, and try new features without affecting the live system. 2. **Database testing and upgrades:** Before running a risky migration or upgrade, clone the database volume. If something breaks, your source is untouched. 3. **Machine learning experiments**:Data scientists and analysts also often need copies of large datasets for new machine learning experiments, so this feature is useful for them as well. ## Best Practices Volume cloning is designed to make development and testing workflows more efficient. It is not a replacement for EBS snapshots, since snapshots are secure backups stored in [Amazon S3](https://devopscube.com/mount-aws-s3-bucket-to-ec2-instance/) and can be copied to other availability zones or regions for disaster recovery. In terms of cost, **cloning has a one-time charge** based on the amount of data in the cloned volume, followed by the regular fees for the volume type, IOPS, and throughput. Although the volume can be attached and used immediately, the data may not be fully consistent until the entire data transfer is completed. To maintain data accuracy, it is **recommended to pause the application’s write operations** during this period. Also, **tags are not inherited** from the source. Tag every clone at creation time with environment, owner, and expiry date. **Use AWS Config rules** or [tag-based automation](https://devopscube.com/aws-tag-policy-terraform/) to identify and remove stale cloned volumes. ## Conclusion EBS Volume Clones removed the multi-step snapshot workflow for creating volume copies. You get an instant and point-in-time copy of EBS. This feature is introduced to improve the efficiency of quickly cloning volumes for testing. ### Docker Image Build and Promotion Pipeline: A Production Guide URL: https://devopscube.com/docker-image-build-and-promotion-pipeline/ Last updated: 2026-03-25T15:25:46.000Z Looking for a guide that teaches you production level [docker image build](https://devopscube.com/build-docker-image/) workflow for application? You are in the right place. By the end of this guide, you will understand: - Deployment environments in real projects - Container registry architecture for multi-environment pipelines - [Docker image](https://devopscube.com/build-docker-image-kubernetes-pod/) tagging strategy (immutable vs mutable tags) - Git branching strategy for Docker based [CI/CD](https://devopscube.com/learning-ci-cd-tools/) pipelines. - How the PR-based image build workflow is structured end-to-end Lets get started. ## Deployment Environments in Real Projects The common question everyone has is "*How many environments are there in real projects?*" Well it depends. - **Small projects** typically have three environments. For example, dev, stage, and prod. This is the minimum you need for a proper promotion flow. - **Medium projects** add a dedicated QA (for functional testing, separate from dev) and a Performance environment for load testing. The stage environment acts as a pre-prod environment. - **Enterprise projects** (finance, healthcare, government) often have many environments. For example, dev, SIT (system integration testing), QA, performance, staging, UAT (user acceptance testing), and production. It can be more. I have worked with many small to enterprise projects, and none of the projects had the same number of environments. It totally depends on the project and teams. 📌 In this guide, we will use a ****dev, stage and prod** environments as example. It can scale to any number of environments. You just need to add more promotion steps in between. *So how are these environments segregated?* In most enterprise projects, each environment means, **a dedicated cloud account** ( *or subscription/project depending on the cloud provide*r). Each account has its own [VPC](https://devopscube.com/secondary-network-eks-cluster/), [IAM roles](https://devopscube.com/terraform-iam-role/), Security, etc. For example, the dev environment runs in the dev AWS account, the stage in the stage account, and so on. Each account has its own VPC, IAM roles, security perimeter, and billing. The key reason for this is, **blast radius isolation**. Meaning, how much of the environment is affected when something happens to the environment. So if a developer deletes something in dev, only dev is affected. Also, separate accounts **helps tracking costs better**, and maintain clear security logs. We will look at this in detail in the registry architecture section below. 💡 In the production account, no one will have access to do anything manually (zero standing access in production). All the changes happen through CI/CD systems. ## Build once and Deploy Everywhere Another key question most engineer have is, *should you rebuild images for each environment?* Answer is no! The standard best practice is to build the image once and the image selected for production deployment should be promoted it till prod. This is the workflow we are discussing in this guide. 💡 What does image promotion really mean? When we say image promotion, taking a verified container image and moving it across environments. In practice, this means either retagging the image or copying it to a different registry using tools like crane or skopeo. Next lets look at the key container registry usage patterns. ## Container Registry Patterns One of the common questions asked by a [DevOps engineer](https://devopscube.com/become-devops-engineer/) is, *how many container registries should we have for a project?* Well, it depends on the project. The common pattern used in enterprise environments is **Per-Account Registry Pattern.** ### **1\. Per-Account Registry Pattern** Meaning, each account (environment) gets its own container registry. (Eg, [AWS ECR](https://devopscube.com/setup-argocd-image-updater/)). So the dev account has its own registry, the staging account has its own, and so on. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-60.png) Illustration of Per-Account Contianer Registry Pattern So why separate registries? Its the same concerns we discussed above. - If the dev account is compromised, they can't touch the prod registry or its images. The accounts are completely separate. - Each account has different permissions. For example, Dev teams may get full access to the dev registry for productivity. However, **only the CI pipeline job can push to prod**. No one can push or modify images in prod manually. - It also helps comply with SOC2, HIPAA, and PCI-DSS for strong security controls. ### 2\. Shared Registry Pattern In this pattern, you have one container registry for multiple environments. For example, dev, QA, stage, and pre-prod use the same registry. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-61.png) Illustration of shared Contianer Registry Pattern You have to use namespaces or paths to separate environments. For example, - In Dockerhub, you have to use naming conventions like `myorg/dev-payment-svc`, `myorg/stage-payment-svc` - **GCR/Harbor / JFrog Artifactory** supports project-based separation with individual access control (e.g., `harbor.company.com/dev/payment-svc`) So the common structure of registries that support paths looks like the following. ```bash registry.company.com/ ├── dev/ │ ├── payment-svc │ ├── auth-svc │ └── order-svc ├── stage/ ├── release/ └── prod/ ``` 💡 The key issue in this pattern is access control and no isolation between non-prod environments. Anyone with push access can push to both `qa-payment-svc` and `stage-payment-svc` Also, this approach is simple and cost-effective. You have to manage two registries. One shared for non-prod, one dedicated for prod. ## Registry Storage and Garbage Collection Garbage Collection is the key thing you should plan in your pipeline. Think of 100+ services pushing images daily. What happens to registry storage? That is where **garbage collection policies** come in. You can configure policies to automatically clean up old images based on certain criteria. For example, - Delete after a certain number of days or - After a set number of images. Most registries (Harbor, ECR, GCR, Artifactory) support this natively. 💡 ****Key Production Insight** When it comes to production images, every organization has compliance rules to keep certain versions that were deployed to production for a certain period of time. For example, in financial services, the compliance requirement is to keep production artifacts for 5 to 7 years ## Image Tagging Strategy (Immutable vs Mutable Tags) One of the key things that helps in how we track, promote, and trace images across environments is image tags. There are two types of tags. 1. **Immutable tag:** It is a tag that never changes and always points to the same image. For example, tag based on the GitHub commit SHA ID (`registry/service:sha-abc1234)`.The best part is, it is a one to one mapping between the image and the exact source code that built it. 2. **Mutable tag:** It is a tag that can be updated to point to a different image. For example, the `latest` tag. It always points to the last pushed image. It is actually useful for quick testing. ![Immutable vs Mutable Tags in Docker images](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-62.png) 💡 ****Note:** Production deployments should always use immutable tags so we can always track exact version of the application. It also helps in easy rollback. ## Docker Image Build Pipeline Architecture Before we dive deep, lets look at the high-level architecture. Our pipeline is **split into four stages**. Each stage get triggered at a different point in the development lifecycle. 1. PR Check Workflow 2. [Image Build](https://devopscube.com/build-docker-image/) \+ Dev Deployment 3. Image promotion from dev to stage environment 4. Image promotion from stage to prod environment. The following image illustrates those four stages. ![Docker Image Build Pipeline Architecture with GitHub Actions](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/build-promotion.png) ****(Click the image to view in HD)** Before we get into the image build pipeline, you need to **first understand the branching strategy**. Why? Because every workflow in this pipeline is triggered by a branch event. If you don't understand which branch does what, the workflow triggers won't make sense. ## Branching Strategy Our pipeline follows a Git-flow style branching model. The key branches `develop`, `release`, and `main` drive the pipeline through dev, stage, and prod environments. 💡 There are other branching strategies like [trunk based](https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development?ref=devopscube.com) where all developers commit directly to a single main branch with short-lived feature branches. Here is the key thing to understand. Not every environment needs its own branch. For example, for **environments like perf, UAT, or pre-prod** the same image that is ready for production gets promoted into them without a separate branch. The following image illustrates the git branching strategy. ![branching strategy](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-promotion4-1.png) Here is the development flow. - `**feature/***` : Developers create feature branches from `develop`. When the feature is ready, they raise a PR. This triggers the PR check workflow. - **`develop`** : Merging a PR triggers the image build followed by deployment to the dev environment. This happens many times. - `**release/***` : When a version is finalized for production deployment, the team cuts a release branch from `develop`. This triggers the stage promotion. QA and integration testing happen here. Also, all the bugfixes go directly on this branch. - `**main**` : Merging the release branch into `main` triggers the production promotion. Now lets say, the app is running in production and what if we want to fix something in production? This is where, we will create a hotfix branch. For emergency production fixes, a hotfix branch is created from `main`, tested quickly, merged back to both `main` (prod deploy) and `develop` (so the fix is not lost). ![hotfix branch flow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-promotion5.png) Now lets look at the image build workflow in detail. ### PR Check Workflow This is where everything begins. When you raise a Pull Request (PR) to the `develop` branch, this workflow kicks in automatically. The goal here is very simple. We need to verify that everything is correct before the code gets merged. ![steps involved in PR check workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/build-promotion02.png) Here is how it works. - The PR first checks out the files and folders on the GitHub repository. - Then, it uses [Hadolint](https://devopscube.com/lint-dockerfiles-using-hadolint/) to lint the [Dockerfile](https://devopscube.com/create-dockerfile-using-docker-init/) that catches common issues (like missing version pinning or running as root). - Then it uses Buildx to build the Docker image using the Dockerfile to check if the image builds without any issues. - For the built image, it generates an SBOM (Software Bill of Materials) report using Trivy and uploads it to GitHub Actions artifacts. - Then, it scans the Docker image using [Trivy](https://devopscube.com/scan-docker-images-using-trivy/) for vulnerabilities. - Finally, it uses the [container structure test](https://github.com/GoogleContainerTools/container-structure-test?ref=devopscube.com) to verify if it meets your compliance rules. So far, so good. **If the PR check passes**, it means the Dockerfile has no issues, the image builds as expected, there are no known vulnerabilities in the image, and the container structure is compliant. **Only then we will merge the PR.** ### Build Multi-Architecture Docker Image and Deploy to Dev Once the PR is merged into the `develop` branch, the image build workflow triggers automatically. ![steps involved in the Image Build workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/build-promotion03.png) Here is how it works. - The build workflow starts with checking out the files and folders on the GitHub repository. - Then it installs QEMU and Buildx to [build multi architecture Docker image](https://devopscube.com/build-multi-arch-docker-image/). In the workflow, we specify to build `linux/amd64 and linux/arm64` architecture. - Logs in to DockerHub using credentials stored in GitHub Secrets. - Builds and pushes the image to the dev container registry with two tags. An **immutable git commit SHA** (e.g., `sha-2b2e927`) based tag and a mutable tag (`latest`). The SHA tag is what we will use later to promote the exact image to stage and prod. - Deploys the image to the **dev environment** ([Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), [ECS](https://devopscube.com/setup-ecs-cluster-as-build-slave-jenkins/), or whatever your team uses). Now, the built image is running in dev. The Dev team uses this deployment to test their changes for the latest code. 💡 ****Important Note:** Developers keep pushing changes through PR's and the pipeline builds new images deploys it to to dev environment until a version is finalized for production. Once the code is stable and ready for deployment, the specific image version gets promoted to the stage environment. ### Promote Docker Image from Dev to Stage Registry Next, the **dev team picks a specific application version/commit** that has been tested, reviewed, and agreed upon for production deployment. That is the image that gets promoted to the stage environment. For that, we need to create a `release` branch from the **specific commit** on `develop` the branch. The image that was built from that commit is the one we want to promote to stage environment. For example, lets say `2b2e927` is the SHA of the commit development team chose for production. The following command **creates a release branch** named `release/v1.2.0-sha-2b2e927` from that exact commit `2b2e927`. ```bash $ git checkout develop $ git checkout -b release/v1.2.0-sha-2b2e927 2b2e927 ``` Here, - `release/v1.2.0` \- Branch name with semantic versioning - `2b2e927` \- The specific commit on the develop branch This way, anyone looking at the branch instantly knows which image version it is promoting. 💡 The branch naming convention depends on your team. Common patterns include `release/sprint-42`, `release/2025-03-10`, or `release/v1.2.0` if you follow semantic versioning. You can pick whatever works for your project. Here is the important part. The stage promotion workflow is manual. We need to pass the Docker image tagged with SHA in the pipeline as input. ![image promotion workflow from dev to stage](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/build-promotion04.png) Here is what happens in this promotion pipeline. - It runs a **Trivy vulnerability scan** on the dev image to catch issues before staging. - Once it passes the vulnerability scan, it uses **Crane to copy (promote)** the image from the dev registry to the stage registry. - Finally, the image gets deployed to the stage environment for **integration and QA testing.** ### Promote Docker Image to Production with Cosign Signing This is the final gate in the pipeline. After stage environment tests pass, we push the changes to the `main` branch and manually trigger the production promotion. ![image promotion from stage to prod](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/build-promotion05.png) Now, you might ask, *don't we need to rebuild the image from `main`?* No. The whole point of the promotion model is that **we should never rebuild between environments**. The exact same image (same SHA digest) that was tested in stage gets copied to the prod registry via Crane. Why? Because even with the same source code, an image rebuild can pull different base image layers, get updated code dependencies, etc. So the code merge from release to main is **just for keeping the Git history in sync.** Here is what this pipeline does. 1. It runs one last Trivy vulnerability scan on the staged image. This is called **admission-time scanning**. It is sort of a safety net to catch any new vulnerabilities that appeared between staging and now. 2. It then uses **Crane** to copy the image from the stage registry to the production registry. 3. Finally, the image is digitally signed using **Cosign.** This way, during deployment, we can **verify if it was created by our image pipeline** and has not been modified after it was pushed to the registry. 4. The signed image is deployed to the **production environment**. ## Conclusion In this guide, we have gone through sections to learn how a [Docker](https://devopscube.com/docker-tutorial-getting-started-with-docker-swarm/) image is built and promoted to different environments. A key thing to understand it the process would differ based on the project requirements. What I have explained in this guide is to, build once and deploy everywhere. However, I have personally worked on projects where the image gets built again from the release branch when the production commit is decided. So overall, it depends on the project and team. In the next guide, we will walk through a complete hands-on guide on a production-grade Docker image build pipeline using [GitHub Actions](https://devopscube.com/github-actions-self-hosted-runner/). ### Argo CD Architecture: A Complete Guide URL: https://devopscube.com/argo-cd-architecture/ Last updated: 2026-03-17T12:57:24.000Z Argo CD has become the widely used GitOps tool for Kubernetes. But here is the thing. Knowing how to use it and knowing how it works are two very different things. By the end of this blog, you will have the clear mental model of the following. - Every core component in Argo CD and what it actually does - How components communicate and hand off work to each other - How Argo CD stores data and how to back it up properly - How to run Argo CD in high availability mode - Security features you should know and use - How to monitor Argo CD with Prometheus and Grafana Let's get started. ## Argo CD Architecture Overview Argo CD has the following seven key components. 1. Argocd Server (API Server) 2. Application Controller 3. ApplicationSet Controller 4. Repository Server 5. Dex (optional SSO) 6. Redis 7. Notification Controller The following diagram shows you the overall architecture of Argocd. ![argocd architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image--1-.webp) The diagram shown only three components of Argo CD, but there are also other components that work with these components. In the next section, we will look into each component in detail. ## Component Deep Dive Now lets look at each component in detail. 💡 The components are deployed as a deployment except the Application Controller, it is deployed as a StateFulSet (An important distinction we will come back to when discussing scaling). ### Argo CD Server This is the API server of Argo CD that exposes Argo CD REST APIs, which we use to interact with [Argo CD](https://devopscube.com/setup-argocd-image-updater/) through UI, CLI, and CI/CD tools. ![Argo CD Server](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/architecture6.2.png) By default, the Argo CD server saves and manages the user **credentials in a Kubernetes secret**, the user account configuration and permissions in a Kubernetes configmap. Also, this is the component that **saves the data of custom resources like Application, ApplicationSet, and Projects in ETCD**. This is important for backup and recovery, which we will cover later. ### Argo CD Application Controller Application Controller is the core component of [Argo CD](https://devopscube.com/configure-multiple-kubernetes-clusters-argo-cd/) and a Kubernetes controller, which deploys and manages the application. Its key roles are to deploy and continuously monitor the Applications created by it and compare their live state with the desired state in [Git](https://devopscube.com/git-basics-every-developer-and-administrator-should-know/). 💡 Every deployment done by Argo CD is referred to as an Application, it can be a tool, an application, or any deployment. Given below is a simple image that shows how Argo CD Application Controller reads and creates applications. ![Argo CD Application Controller](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/architecture5.2.png) ### Argo CD ApplicationSet Controller ApplicationSet Controller is a Controller to manage ApplicationSet custom resource that helps you to deploy multiple applications using a single custom resource. When an ApplicationSet custom resource is created, the ApplicationSet Controller service reads it and creates multiple Application custom resources. Then the Application Controller reads the custom resources to deploy applications. This is helpful in deploying the same application to multiple environments and deploying all services of an application using a single custom resource. ![Argo CD ApplicationSet Controller](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/architecture4.2.png) ### Argo CD Repo Server The repo server is the service that interacts with Git repositories and pulls the templates from the Git repository for the application deployment. ![Argo CD Repo Server](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/07.png) When the Application Controller requests a manifest to create an application, the Repo server clones it locally and **saves the cache in Redis for 24 hours.** The Repo server polls Git every 3 minutes by default to check for new changes, and you can also configure a webhook for Git. 💡 If webhook is configured, Git sends webhook POST request to notify a new change is made. The templates from Git can be in formats like, - Plain manifest files, - [Helm charts](https://devopscube.com/create-helm-chart/), and - [Kustomize](https://devopscube.com/kustomize-tutorial/). ### Argo CD Dex Server Dex server is an [OIDC](https://devopscube.com/github-actions-oidc-aws/) (OpenID Connect) provider for Argo CD, which helps to authenticate and authorize with external identity providers. It supports a wide range of OIDC providers like, - AWS SSO - Okta - Google - Microsoft (Azure AD) - GitHub, etc. **In enterprise environments**, you usually have a centralized identity manager. If it's a supported OIDC provider, you can configure it to Argo CD, and you can allow people in a certain group to access Argo CD. In Argo CD, not allowing everyone to do anything is a best practice. You can use **OIDC combined with RBAC** to limit their permissions. For example, - DevOps engineers can create, delete, and sync applications - Developers can only access the UI to view the application and its logs. ![Argo CD Dex Server](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/architecture8.3.png) ### Redis Redis is used in Argo CD for caching, which makes the request fast and reduces the stress on other components by caching repeated API calls. As we see in the Repo server, the manifest cloned by the repo server during application deployment will be **cached for 24 hrs.** And it also caches the information of the resource Argo CD creates, caches the application state like its status, sync state. It **does not store any credentials** or configuration temporarily, they are stored in Kubernetes secrets and configmap. With Redis, there will be low resource usage, syncing applications get faster, and frequent requests to Git will be reduced if the cache is present. ![Redis in argo cd](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/architecture9.2.png) ### Argo CD Notification Controller The Notification Controller monitors the Application custom resource for new events (changes) and s**ends them as notifications**, such as emails and Slack messages. ![Argo CD Notification Controller](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/architecture10.3.png) Argo CD events such as changes in sync status, health status, when a new version is deployed, etc., can be configured to send notifications. And, you can use custom messages or templates to send in the notifications. Argo CD supports a wide range of notification services like , - AWS SQS, - Slack, - Email, - Microsoft Teams - PagerDuty - And more.. Now that you have an understanding of each component, let's see how Argo CD saves its data. ## Argo CD Storage and Backup Unlike other tools, Argo CD does not store its data in PV for persistence. It has a Redis database, but it is only for caching. The actual configuration data is stored as native [Kubernetes objects](https://devopscube.com/kubernetes-objects-resources/). ![argocd storage](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/1756465118036.jpeg) The CRDs of Argo CD store data related to applications and projects. The configmaps in the argocd namespace contain general server configurations such as UI settings, [RBAC](https://devopscube.com/create-a-new-account-in-argo-cd/), etc. The secrets in the argocd namespace store all credentials, such as account username and password, cluster credentials, and all other authentication credentials. You can change the configurations on the configmap to make the changes, or when you change settings by CLI or UI, Argo CD will update the related configmap automatically. If you lose this data, recreating the configs manually can be time consuming. To perform a backup, you just need to back up the Argo CD namespace and the related CRDs. There are two main backup options: - **Option 1:** Using argocd admin - It's a built-in method, which is good for quick backups. - **Option 2:** Using [Velero](https://devopscube.com/backup-and-restore-eks-cluster-velero/) (Recommended for Production) Velero performs full namespace-level backups including all Secrets, ConfigMaps, and CRDs. This is the recommended approach for disaster recovery, as it captures everything and supports scheduled, automated backups. ## Argo CD High Availability & Scaling A single-replica Argo CD setup is a single point of failure. For production, you need to deploy Argo CD in high availability mode. ### Scaling the API and Repo Servers Argo CD provides a separate high availability setup manifest to make the setup simple. Instead of relying on 1 replica, you can scale the replicas so even if one replica goes down, the other keeps the processes running. 💡 If you are setting up Argo HA, make sure you have at least 3 nodes because the HA configuration ****has a pod anti-affinity rule** that prevents multiple replicas to schedule on same node. A single node cluster will not work for Argo CD HA setup. ### Redis HA with Sentinel In the HA setup, the pods Argocd server, and repo server are scaled to a minimum of 2 replicas, and Redis will use HA mode with 3 sentinels. 💡 Min 3 replicas are required because sentinals uses quorum for leader selection, when one is down. ### Application Controller Sharding Since Application Controller is deployed as a StatefulSet, even in an HA setup, the replicas will be 1 by default. But if you are managing more cluster using Argo CD, the Application Controller will consume more memory. In such a case, you can increase the replica of the Application Controller and enable Sharding to split workloads among the replicas. For example, there are 30 clusters managed by a single Application Controller, by enabling Sharding and increasing the replicas to 3, each replica will manage 10 clusters each. 💡 While configuring, the number of shard value count should match the Application Controller replica count. By default, it uses a hash-based shard algorithm, but it can be modified to use round-robin or other custom algorithms. ## Argo CD Security Given below are some of the security features in Argo CD ### Authorization When setting up Argo CD, there will be only one user present which is an admin user. The admin user gets a random password to log in to Argo CD, and you need to update the password once you log in. The updated password is stored in `argocd-secret` secret as an encrypted bcrypt hash `($2a$10$)`, not just the password of the user, but also all the credentials are saved as Kubernetes secrets. For example, even though the repo-server is responsible for getting the manifest from Git, the Git authentication credentials are saved as Kubernetes secrets. ### TLS Communication All the communication in Argo CD happens over TLS. Even the service-to-service communication between the components `argocd-server, repo-server, and application-controller` are on TLS. We can also set up TLS communication for Redis, but by default, the Redis communication is unencrypted. ### RBAC By default, Argo CD has two roles, readonly and admin. But you can create custom roles for users to limit their permissions, such as watch, deploy, update, delete, etc. You can even limit the namespace permission for argocd-server and application-controller by modifying their cluster roles. This will prevent Argo CD from accessing sensitive information in other applications that are not deployed by Argo CD. ## Monitoring Argo CD The status and health of the application created by Argo CD is not monitored from Argo CD, you have to configure Prometheus and Grafana for it. 💡 By default, the Argo CD components do not expose metrics, you need to enable it for each component while deployment or update the configuration if Argo CD is running. All components are exposed on `/metrics` endpoint and the port used by each component is given in the table below. | Application Controller | 8082 | | ------------------------- | ---- | | API Server | 8083 | | Repo Server | 8084 | | ApplicationSet Controller | 8080 | | Notification Controller | 9001 | | Dex Server | 5558 | The metrics, such as check application health, sync status, git request, and number of clusters managed, are some of the key metrics monitored. The Argo CD community **maintains a set of Grafana dashboards** you can import directly. Pair these with **alerting rules on sync failure rate and controller queue depth** to catch problems before they become incidents. ## Conclusion In summary, we have learned about the components of Argo CD, how they work, storage, High Availability security features, and monitoring of Argo CD. As a DevOps engineer or SRE, understanding the core architecture of Argo CD helps you in troubleshooting, scaling, and security. If you have any questions, drop a comment below. ### How to Setup GPU Operator on Kubernetes (Detailed Guide) URL: https://devopscube.com/setup-gpu-operator-kubernetes/ Last updated: 2026-08-17T10:45:55.000Z Looking for a guide to setup GPU operator on Kubernetes or to understand how to use GPUs with Kubernetes? This blog is for you. By the end of this blog, you will have a clear understanding of: - Need for GPU operator on Kubernetes - Setting up NVIDIA GPU Operator on a [Kubernetes cluster](https://devopscube.com/production-ready-kubernetes-cluster/) - Verify if Kubernetes detects GPUs - How to deploy a real GPU-based workload to validate the full stack. Lets get started. ## Why Kubernetes Can't See Your GPU By default, [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) will only have knowledge about CPUs and memory. If you are provisioning GPU nodes for [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/), it will not have knowledge about whether a GPU is attached to the node. The reason os GPU's are vendor specific hardware (NVIDIA, AMD, intel etc. [Kubernetes Device Plugins](https://devopscube.com/kubernetes-ai-ml-features/#kubernetes-device-plugins-stable) solves this by letting Kubernetes know about the GPU node details. Meaning, it helps hardware vendors (like NVIDIA or AMD GPUs) register their devices with the kubelet. Now, installing device plugin and drivers for the GPU nodes manually is a complex task. This is where Kubernetes GPU operators come in. The GPU Operators will automate the installation of device plugins, drivers, [Node Feature Discovery](https://devopscube.com/node-feature-discovery/), runtimes, etc. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-4.png) Here is an important thing. There is no standard operator for GPU's. You have to choose the **operator based on the hardware** you are using. For example, if the GPU you are using is NVIDIA, you have to install the **NVIDIA GPU Operator** (one we are using in this guide). 💡 ****Note**: If you are using GPU nodes of managed Kubernetes services like [EKS](https://docs.aws.amazon.com/eks/latest/userguide/ml-eks-optimized-ami.html?ref=devopscube.com#eks-amis-nvidia-al2023), [AKS](https://learn.microsoft.com/en-us/azure/aks/use-nvidia-gpu?tabs=add-ubuntu-gpu-node-pool&ref=devopscube.com#:~:text=By%20default%2C%20Microsoft%20automatically%20maintains%20the%20version%20of%20the%20NVIDIA%20drivers%20as%20part%20of%20the%20node%20image%20deployment%2C%20and%20AKS%20supports%20and%20manages%20it.%20While%20the%20NVIDIA%20drivers%20are%20installed%20by%20default%20on%20GPU%20capable%20nodes%2C%20you%20need%20to%20install%20the%20device%20plugin.), [DOKS](https://docs.digitalocean.com/products/kubernetes/?ref=devopscube.com), they may have pre installed GPU drivers on the GPU nodes. In that case, the NVIDIA GPU Operator will skip the driver installation. ## How GPU Operator works Before we get in to hands-on lets understand how a GPU Operator works. Here is how it works. - Kubelet collects the hardware details of the node (via cAdvisor) and sends them to the Scheduler. Kubelet has no awareness about the GPU at this stage. - Once we install the GPU operator, it installs a device plugin that collects the GPU details and registers `nvidia.com/gpu` as an extended resource with kubelet. - Once the GPU details are registered, you can deploy GPU based applications and request for GPU resources (For example, llama model). 💡 kubelet does NOT query GPU hardware directly. It relies entirely on the device plugin to discover and register GPU resources. The following diagram illustrated how GPU nodes gets exposed to Kubernetes. ![high level overview of how GPU nodes will be exposed to Kubernetes](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/gpu-operator10.png) In the diagram, not all operator components are shown; only a few important components are shown. These are the components that will be deployed by the NVIDIA GPU Operator. - `gpu-operator` \- Main controller of the operator which install and manages all components. - `nvidia-driver-daemonset` \- Install the NVIDIA GPU drivers on each GPU node so the node can use the GPU. - `gpu-operator-node-feature-discovery.*` \- Detects hardware details and adds as node labels. - `nvidia-container-toolkit-daemonset` \- Runs on all nodes and installed GPU runtimes for containers to use GPUs. - `nvidia-cuda-validator` \- Runs tests on the nodes to verify if drivers, plugins, and runtimes are installed on the node. - `nvidia-dcgm-exporter` \- This exports GPU metrics which can be scraped using Prometheus. - `nvidia-device-plugin-daemonset` \- This is the component that registers the GPU details to kubernetes - `nvidia-operator-validator` \- Checks the health of GPU operator If you are an infra person and need a deep understanding of the GPU infrastructure, you can try the [NVIDIA Certified AI Infra and Operations (NCA-AIIO)](https://devopscube.com/nvidia-certified-ai-infra-and-operations/) certification. Let's start the Nvidia GPU Operator setup. ## Setup Prerequisites Below are the prerequisites required for this blog. - [Kubernetes cluster](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps/) with GPU-enabled nodes - [kubectl](https://devopscube.com/kubectl-set-context/) - [Helm](https://devopscube.com/helm-best-practices-essential-tips-to-know/) ## Set Up the NVIDIA GPU Operator Follow the steps given below to setup the operator. ### Step 1: Label and Taint GPU Nodes In mixed clusters (GPU + non-GPU nodes), you must prevent non-GPU workloads from consuming GPU node resources. We can use taints and labels to enforce this segreration. Use the following command to add a taint and label the node. 💡 Update your GPU nodes name in below command before running it. ```bash kubectl taint node nvidia.com/gpu=present:NoSchedule kubectl label node node-type=gpu ``` This is one of the best practises for GPU nodes. 💡 In managed GPU nodes (EKS, AKS etc the taints `nvidia.com/gpu=present:NoSchedule` will be added as default. ### Step 2: Add Nvidia GPU Operator Helm Repo We are going to use Helm to install the Nvidia GPU operator, lets add the Helm repo for the chart. Run the following command to add the repo and update the Helm repos. ```bash helm repo add nvidia https://helm.ngc.nvidia.com/nvidia \ && helm repo update ``` And run the following command to verify if the NVIDIA repo has added. ```bash helm search repo nvidia ``` You will see the following charts. ```bash NAME CHART VERSION APP VERSION DESCRIPTION nvidia/nvidia-device-plugin 0.9.0 0.9.0 nvidia/nvidia-dra-driver-gpu 25.12.0 25.12.0 nvidia/cybersecurity-dfp 0.2.1 23.07 nvidia/cybersecurity-sp 0.1.0 23.07 nvidia/deepstream-its 0.2.0 1.0 nvidia/dps 0.7.8 0.7.8 nvidia/dps-bmc-simulator 0.7.8 0.7.8 nvidia/ds-face-mask-detection 1.0.0 1.2 nvidia/ds-lipactivity 0.0.1 0.0.1 nvidia/fed-svr-3 0.9.0 1.0 nvidia/fed-wrk-3 0.9.0 1.0 nvidia/gpu-operator v25.10.1 v25.10.1 nvidia/harbor-reef-operator 1.0.1 1.0.0 nvidia/isaac-lab-teleop 2.2.0 0.0.0 nvidia/k8s-nim-operator 3.0.2 3.0.2 nvidia/network-operator 25.10.0 v25.10.0 nvidia/nspect_test_policy_org_chart 1 1.16.0 nvidia/nvsm 1.0.1 1.0.1 nvidia/tensorrt-inference-server 1.0.0 1.0 nvidia/tensorrtinferenceserver 1.0.0 1.0 nvidia/tritoninferenceserver_aws 0.1.0 1.16.0 nvidia/video-analytics-demo 0.1.9 1.2 nvidia/video-analytics-demo-l4t 0.1.3 0.1.3 ``` ### Step 3: Install Nvidia GPU Operator Let's install the Nvidia GPU Operator. The GPU operator handles everything like installing and managing drivers, plugins, runtimes, etc. 💡 The Nvidia GPU Operator Helm chart has toleration for the taint we added in the previous step by default. So there is no need for any additional configuration. Now, use the following Helm command to install the operator. ```bash helm install --wait gpu-operator \ -n gpu-operator --create-namespace \ nvidia/gpu-operator ``` Then, run the following command to check if the pods are up and running. ```bash kubectl get po -n gpu-operator ``` You will get the following output. ```bash gpu-feature-discovery-kbcth 1/1 Running 0 43s gpu-operator-7569f8b499-dgzql 1/1 Running 0 57s gpu-operator-node-feature-discovery-gc-55ffc49ccc-6bvmc 1/1 Running 0 57s gpu-operator-node-feature-discovery-master-6b5787f695-lg584 1/1 Running 0 57s gpu-operator-node-feature-discovery-worker-f87lc 1/1 Running 0 57s gpu-operator-node-feature-discovery-worker-nggs5 1/1 Running 0 57s nvidia-driver-daemonset-dgzql 1/1 Running 0 57s nvidia-container-toolkit-daemonset-92vlv 1/1 Running 0 44s nvidia-cuda-validator-6pwtz 0/1 Completed 0 37s nvidia-dcgm-exporter-l92vx 1/1 Running 0 43s nvidia-device-plugin-daemonset-5t52d 1/1 Running 0 44s nvidia-operator-validator-4wcc6 1/1 Running 0 44s ``` ### Step 4: Verify GPU Detection Now, let's verify if the GPU nodes are detected by Kubernetes. Run the following command to check for the GPU capacity. 💡 Update your GPU nodes name in below command before running it. ```bash kubectl describe node | grep -A6 "Capacity" ``` You will get the following output. ```bash Capacity: cpu: 24 ephemeral-storage: 742911020Ki hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 247413472Ki nvidia.com/gpu: 1 ``` You can see the `nvidia.com/gpu=1`, which means 1 GPU is available. The Nvidia GPU operator setup is completed now. 💡 ****Debugging tip:** If `nvidia.com/gpu` is missing, the device plugin is not running correctly. Check logs with: `kubectl logs -n gpu-operator -l app=nvidia-device-plugin-daemonset` Next we will deploy a GPU based workload and schedule it on the GPU node. ## Deploy a GPU Workload: Ollama + Llama Let's validate the full stack by deploying a real GPU workload. We will use [**Ollama**](https://ollama.com/?ref=devopscube.com)**,** a lightweight runtime for open-source LLMs to run Llama 3.2 (3B parameters) on our GPU node. Let's start the Ollama deployment. ### Step 1: Add Ollama Helm Repo To install Ollama, we will use a community Helm chart. Run the following command to add the repo and update the Helm repos. ```bash helm repo add otwld https://helm.otwld.com/ ``` And run the following command to verify if the NVIDIA repo has added. ``` helm search repo ollama ``` You will get the following output. ```bash NAME CHART VERSION APP VERSION otwld/ollama 1.43.0 0.16.1 ``` ### Step 2: Create Custom Helm Chart To install Ollama, we need to make some configuration changes in the values file, like enabling GPU, adding toleration, selecting a node, etc. Below is the custom values file we used to [deploy Ollama](https://devopscube.com/deploying-llama-with-docker-and-vllm/). Create a `ollama.yaml` file and copy the following content. ```yaml ollama: gpu: enabled: true type: nvidia number: 1 models: pull: - llama3.2:3b nodeSelector: node-type: gpu tolerations: - key: "nvidia.com/gpu" operator: "Exists" effect: "NoSchedule" persistentVolume: enabled: true size: 30Gi resources: limits: nvidia.com/gpu: 1 ``` If you want to check more configurations in the default values file, use the following command to get the values files. ```bash helm show values otwld/ollama > values.yaml ``` ### Step 3: Deploy Ollama Lets use the custom values file and install Ollama. Use the following command to install it. ```bash helm install ollama otwld/ollama \ --namespace ollama \ --create-namespace \ -f ollama.yaml ``` Once the command is run, use the following command to verify if the pods are up and running. ``` kubectl get po -n ollama ``` You will get the following output. ```bash NAME READY STATUS RESTARTS AGE ollama-cc9b55478-v9ddq 1/1 Running 0 7m50s ``` ### Step 4: Verify GPU Usage To verify if the pod is using a GPU, use the following command. ```bash kubectl exec -n ollama deployment/ollama -- nvidia-smi ``` You can see the GPUs name as shown below. ![output to show that the pod is using GPU](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image-1.png) ### Step 5: Query the Model Now, Ollama pods are up and running, let's send a query to the llama model running on Ollama. Since the services are in Cluster IP, we will expose them using port forwarding. Use the following command to port forward the service. ``` kubectl port-forward svc/ollama 11434:11434 -n ollama ``` Once it's port forwarded, run the following command with the query as shown below. ``` curl -s http://localhost:11434/api/generate \ -d '{ "model": "llama3.2:3b", "prompt": "What do you know about Kubernetes?", "stream": false }' | jq -r '.response' ``` You will get an output similar to what is shown below. ![query output give my the llm model](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/03/image.png) ## Conclusion You now have a complete picture of GPU scheduling on Kubernetes. You have learned about setting up a GPU operator on Kubernetes and deployed a real LLM on a GPU node. When it comes to [MLOps](https://devopscube.com/devops-to-mlops/), understanding GPU node on Kubernetes is very important as many ML workloads need GPU based clusters. Having said that, getting GPUs working is step one. There are different strategies in managing GPUs in Kubernetes for the efficient use of GPU resources. For example, **GPU Time-Slicing, Multi instance GPU (MIG)** etc.. We will look at in the upcoming hands-on blogs. If you are facing issues when setting up GPU operator, do let us know in the comments. ### Cloudways Vs Hostinger: Which Is Better in 2026? URL: https://devopscube.com/cloudways-vs-hostinger/ Last updated: 2026-03-02T16:00:11.000Z If you are confused between **cloudways vs hostinger** cloud hosting and trying to decide which platform fits your needs, you are not alone. I have worked with both hosting platforms, so let me help you choose the right one. In my experience, both are great options, but they are built with different goals in mind. In this blog, I have covered both platforms performance, pricing, security, application support, ease of use, and customer support. In the end of this guide, you will know, which hosting is perfect for your website. Before we go deeper, here is the quick answer. If you want advanced control, flexible cloud provider choices, and strong performance tuning for WordPress, WooCommerce, Magento, Laravel and other PHP frameworks, you can go with ****Cloudways**. But if you prefer simplicity, lower pricing, and an easy all-in-one solution with support of multiple apps (Wordpress, NodeJs) then ****Hostinger** is a better choice. ## Feature Comparison Lets have a quick look at the features of both platforms. | Feature | Cloudways | Hostinger Cloud | | ------------------- | --------------------------- | ------------------------ | | Target Audience | Developers, Agencies | Beginners, SMBs | | Ease of Use | Moderate | Very Easy | | Web Server | NGINX + Apache | LiteSpeed | | Caching | Redis, Varnish, Memcached | Built-in LiteSpeed Cache | | Cloud Providers | DO, AWS, GCP, Vultr, Linode | Hostinger Infrastructure | | Root Access | No | No | | Node.js Support | Limited | Yes | | PHP App Support | Excellent | Good | | Staging Environment | Yes | No | | Security Stack | Imunify360 + Cloudflare | SSL, Firewall, 2FA | | Starting Price | $11/mo | $6.99/mo | | Pricing Model | Pay-as-you-go | Fixed Plans | | Support Rating | 9.3/10 | 8.8/10 | | 24/7 Support | Live Chat + Tickets | Live Chat + AI (Kodee) | ## What is Cloudways? [Cloudways](https://cloudways.com/?ref=devopscube.com) is a managed cloud hosting platform built for users who want the power and scalability of cloud infrastructure without the complexity of managing servers manually. Unlike traditional hosting providers, Cloudways does not run its own data centers. Instead, it has a management layer on top of major cloud providers such as [DigitalOcean](https://devopscube.com/get-free-digital-ocean-credits/), AWS, Google Cloud, Vultr, and Linode. ![Cloudways](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-50.png) You choose the provider and server size, and Cloudways handles the rest. Once your server is setup, Cloudways configures the full software stack, installs caching layers, handles security, enables automated backups, and sets up real-time monitoring. Also, you will get root-level power without the manual setup. 📚 We have also published a detailed [Cloudways review](https://devopscube.com/cloudways-review/) based on our own experience, which will definitely help you understand it better. ## What is Hostinger Cloud Hosting? [Hostinger cloud hosting](https://www.hostinger.com/in/cloud-hosting?ref=devopscube.com) is a managed cloud hosting plan for users who need more power than its shared hosting. ![Cloudways cloud hosting](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-51.png) You won't get root access or full server control because it is not VPS hosting. This hosting also gives you dedicated CPU, RAM, and storage in a fully managed environment. Everything is managed through Hostinger's custom hPanel dashboard, which is known for being one of the most beginner-friendly control panels in the industry. You can install WordPress, manage domains, configure email, and handle backups, all in a few clicks. This hosting is specifically built for beginners, small businesses, developers, agencies, and website owners who need better performance without dealing with server management. ## Cloudways vs Hostinger The biggest core difference between Cloudways and Hostinger is that Cloudways focuses on flexibility, while Hostinger focuses on simplicity. With **Cloudways**, you can choose your cloud infrastructure provider, server size, and data center location. You also get more control over how the server is configured and scaled. This means you have more customization and deeper control over your environment. When you come to **Hostinger,** it works a little differently. It offers predefined plans with fixed **CPU, RAM,** and **storage**. You simply choose a plan and start using it. The platform is designed to keep everything simple and ready to use. ## Ease of Use Everyone wants their hosting to be easy to use, not complicated. Especially if you are not a technical person. In **Hostinger Cloud Hosting,** you just log in, choose your domain, install WordPress (or another application), and you can begin building your site within minutes. In fact, Hostinger's hPanel dashboard is clean and easy to understand. Most settings are clearly labeled, so even beginners can use it without confusion. Hostinger also has an AI assistant called [**Kodee**](https://www.hostinger.com/blog/kodee?ref=devopscube.com), which can answer common questions, guide you through setup steps, and troubleshoot issues before escalating to a live support agent. When you look at **Cloudways**, it is also a managed platform, but it involves a few more decisions before you start hosting. For example, you need to choose the cloud provider, server size, region, and application before launching. Once your server is live, you have access to more configuration options than Hostinger offers, caching settings, PHP version management, staging environments, and team access controls. Cloudways feels slightly more technical compared to Hostinger. ## Performance and Speed To be honest, both platforms are built for better performance. **Hostinger** uses LiteSpeed web servers, which are known for fast page loading. LiteSpeed works very well with built-in caching, so most users get good speed without changing any extra settings. Since CPU and RAM are dedicated within the plan, performance remains stable even when traffic increases. Most performance optimizations are pre-configured, so you do not need to adjust anything manually to get good results. **Cloudways** takes a more customizable approach. It is using a performance stack that includes **NGINX, Apache, Redis**, and advanced caching layers. You can do deeper tuning, such as adjusting caching rules, enabling Redis, and fine-tuning settings based on your website’s needs. This layered setup offers more tuning potential than Hostinger's LiteSpeed stack. For high-traffic applications or WooCommerce stores with dynamic, uncacheable content, Cloudways' Redis-based object caching can provide a meaningful performance advantage. However, realizing that advantage requires manual configuration, it does not come pre-tuned. In the image below you can see the Cloudways speed and scalability performance. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-64.png) Source: [Cloudways](https://www.cloudways.com/blog/new-lightning-stack/?ref=devopscube.com) ## Pricing Comparison When it comes to pricing affordability, **Hostinger Cloud Hosting** provides a lower starting price than Cloudways. It offers massive discounts for first-time users. Lets take a look at Hostinger’s pricing plans. | Plan | Price | CPU Cores | RAM | Storage | | ------------------ | --------- | --------- | ----- | ----------- | | Cloud Startup | $6.99/mo | 2 cores | 4 GB | 100 GB NVMe | | Cloud Professional | $15.99/mo | 4 cores | 6 GB | 200 GB NVMe | | Cloud Enterprise | $29.99/mo | 6 cores | 12 GB | 300 GB NVMe | This is the starting fixed price. However, the renewal price is slightly higher than the introductory price because the first term comes with a discount. Renewal discounts are usually available during Black friday sales. [Checkout Hostinger Cloud Hosting](https://comtechies.com/recommends/hostinger-2?ref=devopscube.com) When it comes to **Cloudways**, you can choose either a **Flexible** or [**Autonomous**](https://devopscube.com/cloudways-autonomous-review/) plan depending on the cloud provider and server size you select. The Cloudways Flexible plan is ideal for developers who need more infrastructure control. Unlike Hostinger, Cloudways does not have a higher renewal because it follows a **pay-as-you-go pricing model**. Once you choose a plan, you pay based on the resources you use. If your usage increases, your billing adjusts accordingly. This is known as a pay-as-you-go payment model. Now, lets look at the pricing plans of Cloudways. The following table has the comprehensive price listing based on the backend cloud providers used by Cloudways. | Provider & Plan | Price | CPU Cores | RAM | Storage | | ------------------- | ------- | --------- | ------- | ------- | | DigitalOcean Micro | $11 | 1 | 1 GB | 25 GB | | DigitalOcean Small | $28 | 1 | 2 GB | 50 GB | | DigitalOcean Medium | $54 | 2 | 4 GB | 80 GB | | DigitalOcean Large | $99 | 4 | 8 GB | 160 GB | | Linode Micro | $14 | 1 | 1 GB | 25 GB | | Linode Small | $28 | 1 | 2 GB | 50 GB | | Linode Medium | $59 | 2 | 4 GB | 80 GB | | Linode Large | $105 | 4 | 8 GB | 160 GB | | Vultr Micro | $14 | 1 | 1 GB | 25 GB | | Vultr Small | $28 | 1 | 2 GB | 55 GB | | Vultr Medium | $54 | 2 | 4 GB | 80 GB | | Vultr Large | $99 | 4 | 8 GB | 160 GB | | AWS Micro | $20.56 | 2 | 1GB | 20 GB | | AWS Small | $38.56 | 2 | 2 GB | 20 GB | | AWS Medium | $91.84 | 2 | 4 GB | 20 GB | | AWS Large | $183.22 | 2 | 8 GB | 20 GB | | Google Cloud Small | $37.33 | Shared | 1.7 GB | 20 GB | | Google Cloud Medium | $84 | 1 | 3.75 GB | 20 GB | | Google Cloud Large | $152.02 | 2 | 7.5 GB | 20 GB | | Google Cloud XL | $241.5 | 4 | 15 GB | 20 GB | These are the starting prices for all Cloudways server providers, and you can scale your resources as your website grows. [Checkout Cloudways Hosting](https://devopscube.com/recommends/cloudways/) Also, check the [cloudways promo code](https://devopscube.com/cloudways-promo-codes/) to get discounts and reduce your cost. 🎁 ****Note:** New Cloudways users on [DigitalOcean](https://devopscube.com/get-free-digital-ocean-credits/) are eligible for [$200 in free credits](https://devopscube.com/recommends/digital-ocean-sidebar/), which is useful for testing performance before committing to a paid plan. ## Security Features In **Hostinger Cloud Hosting**, you get secure HTTPS with SSL, strong firewall protection, malware detection, regular backups, and login protection like two-factor authentication, all set up for you by default. It is especially built for beginners and small businesses who want security without technical setup. On the other hand, **Cloudways** goes a step further with its security features. It uses a professional server-level security stack powered by [Imunify360](https://blog.imunify360.com/cloudways-enhances-server-security-with-market-leading-imunify360-across-its-entire-fleet?ref=devopscube.com). This provides strong automated protection, including advanced bot blocking, brute-force prevention, IP and country blocking, and vulnerability scanning. You also have the option to add enterprise-level tools like Cloudflare Enterprise CDN and SafeUpdates for additional security and automation. Both platforms provide solid default security. Cloudways offers more advanced, customizable protection suited to agencies managing multiple production sites. ## Application Support Keep this in mind before choosing Cloudways or Hostinger. One of the most important things is understanding what type of applications you plan to host. Basically, Cloudways is mainly built for PHP-based applications. So, it comes with a pre-configured server that is optimized for performance and caching. Some of the supported applications include WordPress, WooCommerce, Magento, Laravel, Drupal, Joomla, and other PHP-based custom applications. And when you launch a server in Cloudways, you can choose the application type on your own. Once selected, the platform will automatically install and configure all the required software. Let me give you an example. If you choose **WordPress**, Cloudways will automatically set up an optimized stack, caching, database configuration, and basic security settings. Everything is handled for you. But, Cloudways does not directly support Node.js hosting, where you get full root access and complete server control. It is primarily focused on PHP-based applications. So, if your website runs on WordPress or other PHP frameworks, Cloudways is a strong choice. On the other hand, Hostinger Cloud Hosting supports WordPress, WooCommerce, PHP websites, static websites, Node.js applications, and several other types of applications, with built-in process management through hPanel. This makes Hostinger the better choice if your stack includes JavaScript-based backends, static site generators, or mixed PHP and Node.js workloads. ⚠️ ****Note:** If you need full control, you can go with Hostinger VPS-based hosting solutions (self-hosted n8n, OpenClaw etc). ## Customer Support **Hostinger** is providing 24/7 live chat support for all its cloud plans. It also offers a detailed knowledge base and tutorials to help clear your doubts. ![Hostinger customer support](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-48.png) The support team assists with setup, billing, domains, email configuration, and general hosting questions that may come up while you are working. From my experience, they usually explain things clearly without going too deep into technical details, which makes it easier for beginners. Hostinger also has an AI assistant called [Kodee](https://www.hostinger.com/blog/kodee?ref=devopscube.com). You can ask your questions or report issues with it first. If you are not satisfied with the response, you can contact the support team directly. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-47.png) **Cloudways** also offers 24/7 support through live chat, knowledge base, and tickets. ![Cloudways customer support](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-49.png) Since Cloudways is built around cloud infrastructure, the support team focuses more on server-level topics. They assist with performance tuning, scaling issues, caching, and cloud configuration. For example, One issue I noticed with my Cloudways hosting was that when I updated WordPress plugins, some content disappeared from the site. It turned out to be a caching issue. The content was still available in the page editor, but I had to republish it. I reported this issue to the Cloudways support team, and they provided clear guidance and helped resolve it quickly. So, both Hosting's customer support is really good and fast. But wait. Based on many [real user reviews](https://www.g2.com/compare/cloudways-vs-hostinger?ref=devopscube.com), Cloudways has received a rating of **9.3/10**, while Hostinger has received **8.8/10**. This shows that users are slightly more satisfied with Cloudways in terms of support and overall platform capabilities. ## Which platform is better for beginners? For most of the beginners, **Hostinger Cloud Hosting** feels easier from the first login. The signup process is simple, and the setup does not ask technical questions about infrastructure or cloud providers. You choose your plan, connect your domain, and install WordPress in a few clicks. Most features are clearly labeled, and common tasks like backups, [SSL](https://devopscube.com/setup-ssl-tls-aws-certificate-manager/) activation, and email setup are handled in one place. You do not need to understand what type of server you are using or how the cloud works. Everything is provided as a ready-to-use hosting environment. ## Which platform is best for Agencies and Developers? Agencies and developers often manage multiple projects, so Cloudways can be a better choice because it offers more flexibility. You can launch multiple servers under a single account and choose different cloud providers based on each client’s needs. This makes it easier to separate projects and scale them independently. Cloudways also supports staging environments, allowing you to test changes before pushing them live. For agencies managing client websites, this reduces risk and improves workflow. Also, it provides deeper control over caching, server settings, and performance tools. Cloudways also integrates well with CI/CD pipelines and supports SSH access, Git deployment, and WP-CLI for WordPress automation. ## Conclusion In this blog, I have explained which cloud hosting platform may be better for you, Cloudways or Hostinger. There is no single winner here. Here is a simple way to decide. If you want more flexibility, such as choosing your own cloud provider, PHP-heavy stack, scaling resources as your site grows, and fine-tuning performance when needed, then **Cloudways** is a better option. If you prefer a simple, Node.js support, ready-to-use setup without worrying about configuration, then **Hostinger** is the better choice. Honestly, both platforms are powerful and can handle traffic well. The right decision depends on which one makes your work easier and more comfortable. **Helpful Guides:** - [Set Up WordPress on Cloudways](https://devopscube.com/setup-wordpress-on-cloudways/) - [How to map Cloudways server to a domain](https://devopscube.com/map-cloudways-server-to-a-domain/) - [How to connect to Cloudways server \[SSH & SFTP\]](https://devopscube.com/connect-to-cloudways-server/) ### Best Kubernetes Certifications for 2026 [Ranked] URL: https://devopscube.com/best-kubernetes-certifications/ Last updated: 2026-10-15T06:33:49.000Z Looking for the **best Kubernetes certification**? In this guide, I explained the best Kubernetes certification along with other free choices, so you can choose the best one for you. Kubernetes is growing in popularity day by day. A survey conducted by [Cloud Native Computing Foundation (CNCF](https://www.cncf.io/?ref=devopscube.com)) reported that **96%** of the respondents are either using or evaluating Kubernetes. Engineers getting certified on Kubernetes are also growing at a rapid pace. A report by Kube Careers shows that Kubernetes Certifications stand in second place in the list of popular certifications. ![Kubernetes certification Rankings in popular certification list.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-9-14.png) Now you know why **getting certified in Kubernetes** is very important. There are total five Kubernetes focussed certification from the Linux Foundation. I will be running through each certification, plus an explanation of what purpose each certification is best suited to – everything you need to choose the best Kubernetes certification for your needs. Also, The [Linux Foundation Certifications](https://devopscube.com/linux-foundation-certification/) under CNCF are widely accepted and considered by organizations. However, sometimes, **certification is about learning and gaining experience**. As long as learning is your objective, you can choose to prepare for certifications that add value to your career. So I will also cover certifications that are not part of CNCF but will help you enhance your skills related to Kubernetes. 🚀 ****Limited Time Offer:** You can save up to 40% on all the Kubernetes certifications and bundles using coupon OCT26NONCYBERCT at [kube.promo/devops](https://kube.promo/devops?ref=devopscube.com) ## Best Kubernetes Certifications Let's take a look at each Kubernetes certification and see which one is right for you. ### 1\. Certified Kubernetes Administrator (CKA) **CKA is my #1 choice for Kubernetes certification.** CKA certification is a sought-after certification when it comes to DevOps Engineer Jobs. Whether you are an **experienced IT professional or a fresh college graduate**, CKA certification will add value to your resume. This is mainly due to the nature of the exam. Also, it is one of the [best devops certifications](https://devopscube.com/devops-certifications/) today. As per the latest cncf annual report, in 2024 Certified Kubernetes [Administrator (CKA) exam hit 250000 enrollments.](https://www.cncf.io/reports/cncf-annual-report-2024/?ref=devopscube.com) Unlike other certifications where exams have multiple-choice questions, CKA is a hands-on certification exam where you need to **solve Kubernetes tasks** and solve cluster issues from the command line. This certification is **aimed at sysadmins and DevOps engineers** who are involved with day-to-day Kubernetes operations. The Certified Kubernetes Administrator (CKA) program provides assurance that CKAs have the skills, knowledge, and competency to perform the responsibilities of Kubernetes administrators. training.linuxfoundation.org The CKA exam focuses on the following domains and competencies. 1. Storage 2. [Troubleshooting](https://devopscube.com/troubleshoot-kubernetes-pods/) 3. Workloads & Scheduling 4. [Kubernetes Cluster Architecture](https://devopscube.com/kubernetes-architecture-explained/), Installation & Configuration 5. Services & Networking Check out the [CKA Certification Guide ](https://devopscube.com/cka-exam-study-guide/)where I have given the detailed CKA exam resources and links to Kubernetes official documentation. And if you are searching for a CKA course, refer to our [best CKA Courses](https://devopscube.com/best-cka-courses/) blog, where we have covered the CKA courses based on the learning structure. ### 2\. Certified Kubernetes Application Developer (CKAD) I recommend CKAD certification for all developers & engineers who focus more on cloud-native microservices application development & deployment. [CKAD certification](https://devopscube.com/recommends/ckad-exam/) focuses more on the application aspects of Kubernetes. If you are a developer or a Devops engineer who wants to showcase your ability to deploy applications on Kubernetes with cloud-native best practices, CKAD certification is for you. The Certified Kubernetes Application Developer (CKAD) exam certifies that candidates can design, build and deploy cloud-native applications for Kubernetes. training.linuxfoundation.org It is also a performance-based hands-on exam where you need to solve Kubernetes tasks related to cloud-native application deployment on Kubernetes. CKAD covers the following **Domains & Competencies** 1. Application Design and Build 2. Application Deployment 3. Application Observability and Maintenance 4. Application Environment, Configuration, and Security 5. Services and Networking Check out the comprehensive [CKAD Study Guide ](https://devopscube.com/ckad-exam-study-guide/)where I have given the detailed CKAD exam resources and links to Kubernetes official documentation. ### 3\. Certified Kubernetes Security Specialist (CKS) The CKS exam is recommended for engineers involved in cloud-native security. [CKS certification](https://devopscube.com/recommends/cks-exam/) focuses more on Kubernetes security. When it comes to containerized environments, security plays a key role. From building a container image to deploying it on kubernetes, security best practices have to be applied to reduce the attack surface. This certification covers the security aspects from building images to deployment. You have to learn container security best practices and associate CNCF security toolings such as Falco and Trivy to prepare for this exam. The Certified Kubernetes Security Specialist (CKS) program provides assurance that a CKS has the skills, knowledge, and competence on a broad range of best practices for securing container-based applications and Kubernetes platforms during build, deployment and runtime. CKA certification is required to sit for this exam. training.linuxfoundation.org To appear for the CKS exam, you need to pass the CKA certification first. The CKS exam covers the following domains and competencies. 1. Cluster Setup 2. Cluster Hardening 3. System Hardening 4. Minimize Microservice Vulnerabilities 5. Supply Chain Security 6. Monitoring, Logging, and Runtime Security Check out the comprehensive [CKS Study Guide ](https://devopscube.com/cks-exam-guide-tips/)where I have given the detailed CKS exam resources, links to Kubernetes official documentation, and links to associate CNCF security tools mentioned in the CKS curriculum ### 4\. Kubernetes and Cloud Native Associate (KCNA) KCNA is recommended for students, IT managers, and engineers who need foundational knowledge of the cloud-native ecosystem. [KCNA exam](https://devopscube.com/recommends/kcna-certification/) focuses on Kubernetes and related tools in the cloud-native landscape. This exam is easy compared to CKA, CKAD, and CKS. It is a multiple-choice exam with 60 questions and a 90-minute exam time. The Kubernetes and Cloud Native Associate (KCNA) exam demonstrates a user’s foundational knowledge and skills in Kubernetes and the wider cloud native ecosystem. training.linuxfoundation.org The topics covered on the KCNA exam include: 1. Introduction to Kubernetes (10 questions) 2. Kubernetes Architecture and Components (20 questions) 3. Kubernetes Networking (15 questions) 4. Kubernetes Storage (15 questions) 5. Kubernetes Security (10 questions) 6. Kubernetes Monitoring and Logging (10 questions) 7. Cloud-Native Application Development (10 questions) 8. Container Orchestration with Kubernetes (5 questions) The passing score for the KCNA exam is 65%. Tips for preparing for and taking the KCNA exam: 1. Make sure you are familiar with the topics covered on the exam. You can find a list of topics in the Exam Topics section below. 2. Read through the Exam Guide and familiarize yourself with the structure of the exam. 3. Use practice exams to test your knowledge and identify areas where you need to focus your studies. 4. When taking the exam, take your time and read each question carefully before selecting your answer. 5. If you are unsure about an answer, eliminate the obviously incorrect answers and make your best guess. 📌 Check out the comprehensive [KCNA Study Guide ](https://devopscube.com/kcna-study-guide/)where I have given the detailed KCNA exam resources. ### 5\. Kubernetes and Cloud Native Security Associate (KCSA) [KCSA Certification ](https://devopscube.com/recommends/lf-kcsa/)is relatively a new certification focussed on baseline security configuration of Kubernetes clusters. If you are security background, this is the first certification to get started in the Kubernetes landscape. It helps you better understand the Kubernetes security, compliance and assessing security risks and vulnerabilities. A certified KCSA will confirm an understanding of the baseline security configuration of Kubernetes clusters to meet compliance objectives. The following are the topics covered in the KCSA exam. 1. Overview of Cloud Native Security - 14% 2. Kubernetes Cluster Component Security - 22% 3. Kubernetes Security Fundamentals - 22% 4. Kubernetes Threat Model - 16% 5. Platform Security - 16% 6. Compliance and Security Frameworks - 10% 💡 Check out the comprehensive [KCSA Study Guide ](https://devopscube.com/kcsa-exam-study-guide/)where I have given the detailed KCSA exam resources. ### 6\. Certified Kubernetes Network Engineer (CKNE) **Certified Kubernetes Network Engineer (CKNE)** is a newly launched Kubernetes certification. This certification will be available in 2026\. We will keep you updated once it is launched. ## Kubernetes Certification Cost I have added the **Kubernetes certification cost** in the following table. I have also added a volume with the bundle pricing that includes the relevant course. | Certification Name | Individual Price | Bundle Price (with Course) | | ----------------------------------------------------- | ---------------- | -------------------------- | | Certified Kubernetes Administrator (CKA) | $445 | $595 | | Certified Kubernetes Application Developer (CKAD) | $445 | $595 | | Certified Kubernetes Security Specialist (CKS) | $445 | $595 | | Kubernetes and Cloud Native Associate (KCNA) | $250 | $299 | | Kubernetes and Cloud Native Security Associate (KCSA) | $250 | N/A | | KCNA + KCSA Bundle | $595 | N/A | | CKA + CKAD + CKS Bundle | $1245 | N/A | | CKA + CKS Bundle | $825 | N/A | | Kubestronaut Bundle (KCNA + KCSA + CKA + CKAD + CKS) | $1645 | N/A | If you plan to complete all five certifications within a year, you can opt for the [Kubestronaut Bundle](https://training.linuxfoundation.org/certification/kubestronaut-bundle/?ref=devopscube.com). You will receive great bundle discounts, plus an additional discount when you use voucher codes. Additionally, you'll become part of the [Kubestronaut](https://devopscube.com/kubestronaut-roadmap/) program and earn the title of "Kubestronaut." The Kubestronaut program recognizes community leaders who have consistently invested in their ongoing education and grown their skill level with Kubernetes. Now, the Kubestronaut community has 1000+ members in 86 countries. 💰 You can get discount on Kubernetes Certifications .To get the latest Kubernetes promotion updates, check out the [Kubernetes certification coupon](https://devopscube.com/kubernetes-certification-coupon/) page. You could save up to 50% during exclusive Linux Foundation sales. ## How to Register for Kubernetes Certification? You can register for the certification exam on the [Linux Foundation training Portal](https://training.linuxfoundation.org/?ref=devopscube.com). **Step 1:** Head over to the [Cloud & Containers Category](https://devopscube.com/recommends/cloud-containers/) ![Kubernetes Certification in cloud & containers category.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-14-15.png) S**tep 2:** Choose a certification of your choice and click the "**Enroll Today**" Button. If you want to choose a bundle, select the "**Buy Bundle**" option as highlighted in the image below. With bundles, you can save an extra $210. ![Kubernetes certification enrollment.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-9.png) **Step 3:** On the checkout page, you will get an option to apply a coupon code. Use code **DCUBE20** to save 25%. ![kubernetes certification checkout.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-18-10.png) ## Which is the Popular Kubernetes Certification? The **popular Kubernetes certification is CKA,** as it covers the administrative aspects of Kubernetes clusters. Here is the latest CNCF annual report that shows CKA as the top certification with the highest number of enrolments (250000). ![Popular Kubernetes Certification 2025](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image.png) An interesting [Kubernetes job trend](https://devopscube.com/technologies-for-kubernetes-job/) shows that **CKA represented 54%** of the mentioned certifications. And in terms of popularity, the ranking goes like CKA > CKAD > CKS. ![Popular Kubernetes Certification graph](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-10-14.png) source: kube.careers As a **CKA-certified engineer** myself, I can say that you should opt for CKA if you are planning to work on Kubernetes cluster administration and deployment. However, if you are just focused on deploying apps on Kubernetes, CKAD is preferable. CKS certification is popular in the security domain. If you are someone involved in DevSecOps or someone interested in cloud-native security, CKS is definitely worth going for. ## Kubernetes Certified Engineers Salary Stats Let's look at some of the salary stats for candidates with Kubernetes skills. According to [Payscale](https://www.payscale.com/research/US/Skill=Kubernetes/Salary?ref=devopscube.com), the average salary for candidates with Kubernetes skills is **$117k**/ year. [Talent.com](https://www.talent.com/salary?job=devops+kubernetes+engineer&ref=devopscube.com) data shows a $150000/year average salary based on 728 salaries. In that highest salary is $180000/year. ![Kubernetes Certified Engineers Salary Stats](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-11-13.png) As per the latest [kube.careers](https://kube.careers/state-of-kubernetes-jobs-2023-q2?ref=devopscube.com) Kubernetes job trends report data, the salary range is between **$129,802 & 179,520.** And the highest salary reported is between **$275,000-319,000.** ![Kubernetes salary trends report data](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-13-14.png) LinkedIn search returned **124,565 results** for Kubernetes jobs in the USA. In that for salaries more than $10000, it's returned 28000 results. And for **salaries above $200000, it returned 302 results.** Glassdoor shows the highest reported salary of **$69,655** per year. Also, certification is not a key requirement in most of the Kubernetes job listings. ## Kubernetes Certification FAQs Following are the frequently asked questions about Kubernetes Certification ### Is the CKA certification worth it? Yes. The Linux Foundation CKA is a sought-after Kubernetes certification. CKA is a widely accepted certification that showcases a candidate's Kubernetes administration and management skills. You will also gain a competitive advantage over peers without the certification as recruiters and organizations are looking for certified professionals. ### What is the Certified Kubernetes Administrator Salary? As of 2023, data from popular job sites like Indeed and talent.com shows that the average salary for CKA-certified engineers ranges anywhere between $130,000 and $180,000/year. ### What are the latest Kubernetes Certification Voucher codes? The latest Kubernetes certification voucher code is **DCUBE30** where you get a flat 30% discount on CKA, CKAD, CKS, and KCNA certifications & bundles. ### Which Kubernetes Certification is good for entry-level engineers? If you are an entry-level DevOps engineer, a Certified Kubernetes Administrator (CKA) is the best option as it covers mostly administrative aspects of Kubernetes. It helps you gain core Kubernetes skills that are required for a DevOps engineer Job. ### Which Kubernetes Certification is Good for Developers? For developers, the recommended Kubernetes certification is Certified Kubernetes Application Developer (CKAD) as it covers concepts related to cloud-native Kubernetes development. ### Which Kubernetes certification is best for Devops engineers? CKA is the best certification for DevOps engineers as it focuses more on Kubernetes administrative aspects. ### Which Kubernetes Certification is Good for Security Professionals? Linux Foundation has two security-focused Certifications. Kubernetes and Cloud Native Security Associate (KCSA) and Certified Kubernetes Security Specialist (CKS). KCSA is objective type and CKS is a hands on exam. Both are best certifications for Security professionals. ## Conclusion In this blog, I have covered the Kubernetes certification path to choose the right certification. However, you will need to look at your current skill set and choose a certification that aligns with your career goals and aspirations. For example, if you are more interested in the DevSecOps path, **CKA+CKS is the best choice**. If you are in the DevOps engineer path, CKA is the best option. If you are getting started with cloud-native tools, KCNA is the best entry-level certification. If you are interested in [service mesh](https://devopscube.com/service-mesh-tools/) certifications, you can try the [**Istio Certified Administrator**](https://devopscube.com/istio-certified-associate-study-guide/)certification. For GitOps, you can opt for [ArgoCD Certification](https://devopscube.com/certified-argo-project-associate/). It will be a great addon skills on top of k8s certifications. Also, try to build the practice labs on your own. I recommend [kubeadm cluster setup](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) for the lab Also, if you are learning Kubernetes, check out the list of [comprehensive kubernetes tutorials](https://devopscube.com/kubernetes-tutorials-beginners/) with practical examples. If you want a structured learning roadmap, check out the comprehensive [Kubernetes learning path](https://devopscube.com/learn-kubernetes-complete-roadmap/). ### [60% Off] Whizlabs Promo Code and Review for 2026 URL: https://devopscube.com/whizlabs-promo-code/ Last updated: 2026-03-02T12:45:44.000Z In this post, I have added the **latest Whizlabs Promo Codes** and savings tips to get discounts on the **Whizlabs Premium Subscription**. [Whizlabs](https://www.whizlabs.com/?ref=devopscube.com) is one of the best platforms for IT online certification courses and practice tests. The platform covers Java, [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/), Cloud Computing, Big Data, Project Management, Agile and Scrum, Linux, Networking, and Digital Marketing. If you are preparing for IT certifications, you can find the best certification training and practice tests on Whizlabs. **Note**: We update the Whizlabs promo codes every month through offers we get from official communication channels. ## Whizlabs Promo Codes for March 2026 Let's look at all the latest **Whizlabs coupons & offers** to get a maximum discount on Whizlabs Premium Subscription. ### \[50% Off\] Whizlabs Plus Discount \[Premium & Premium Plus\] When you opt for the annual **Whizlabs Premium or premium plus Subscription**, you can **save 50%** of the subscription price. Usually, the yearly premium subscription is **$3**. With this exclusive annual discount, you can get a subscription for just **$199**. [Get 50% Whizlabs Premium Plus Discount ](https://devopscube.com/recommends/whizlabs-pricing/) **Validity:** Premium discount is the best option as it has sandboxes. With a premium subscription you get the following. 1. 25,000+ Practice Questions 2. 4500+ Videos 3. 1000+ Hands-on Labs 4. Cloud Sandbox 5. Exclusive Capstone Projects ![Whizlabs Promo Code](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/02/image-10.png) ### Free Whizlabs Practice Tests You can get started with your certification preparation completely free from Whizlabs. It offers one free test on all the major certifications from its library. [Get FREE PRACTICE TESTS ](https://devopscube.com/recommends/whizlabs-free-tests/) It offers a library of free practice tests in the following categories. 1. **Amazon Web Services**: Get a free practice test on all the AWS certification tests. 2. **Microsoft Azure Certifications**: Get free Azure certifications practice test. 3. **Google Cloud certifications:** Get free access to Google Cloud certification practice tests. 4. **DevOps certification:** Get free practice tests on Terraform and Docker associate certifications. ![Whizlabs free courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-21.png) ### \[63% Off\] Certified Cloud Security Professional (CCSP) Certification - Practice Exams Get a **63% flat discount** on the CCSP exam practice test as part of the new launch offer. You can also try 14 free questions before purchasing the practice tests. [Get 63% discount ](https://www.whizlabs.com/certified-cloud-security-professional/?ref=devopscube.com) ### \[75% Off\] Entire Azure Training Library Get a 75% discount on Practice Tests, Video Courses, and Hands-On Labs. This promo code is applicable to the entire Azure training library. [Get 75% Discount ](https://www.whizlabs.com/microsoft-azure-certification-training-courses/?ref=devopscube.com) ### \[75% Off\] AWS Certified Solutions Architect Associate Exam As part of the July flash sale, get a **flat 75% discount** on the Whizlabs AWS Certified Solutions Architect Associate Exam practice test. It is a limited-time offer. [Get 75% AWS Discount ](https://devopscube.com/recommends/aws-associate/) ### \[20% OFF\] Whizlabs Summer Sale \[Expired\] As part of the summer get 20% discount on all the Whizlabs plans. [Get 20% Whizlabs Discount ](https://devopscube.com/recommends/whizlabs-pricing/) **Note:** This offer is valid only for a limited time. ### \[20% OFF\] Whizlabs Exclusive Promo Code \[Expired\] For a very limited time, get a flat 20% discount on Whizlabs yearly subscription. [Get 50% Whizlabs Discount ](https://devopscube.com/recommends/whizlabs-pricing/) **Coupon:** Use code **BIG20** at checkout. **Note:** This offer is valid only for a limited time. ### \[60% OFF\] Whizlabs Flash Sale \[Expired\] Get a **60% flash sale discount** on Whizlab's yearly subscription using this exclusive flash sale. Normally the yearly subscription is priced at $299\. With this sale, you can get it for just **$119.20**. This is a limited-time offer. Also, you can get a quarterly subscription for just $39. [Get 60% Discount ](https://devopscube.com/recommends/whizlabs-pricing/) Use Code: **SUB20MAY** at checkout. ![whizlabs 60% discount code](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-216.png) ### \[15% Off\] Whizlabs Sitewide Haloween Sale \[Expired\] As part of an exclusive Whizlabs Halloween sale, you will get a flat 15% discount on all the subscription plans. [Get 15% SITEWIDE Discount ](https://devopscube.com/recommends/whizlabs-pricing/) **Note:** This is a limited-time offer. ### \[40% OFF\] Whizlabs Black Friday Deal 2025 \[Expired\] Get 40% discount on the Whizlabs Annual plan using the Whizalabs Black Friday deal. Usually, the Annual plan has a 50% discount and with the Black Friday deal, you get an additional 40% discount on all the plans. When the deal is live for 2025, we will update the deal. [Get 40% Discount ](https://devopscube.com/recommends/whizlabs-pricing/) ### \[63% OFF\] Whizlabs Monthly Subscription \[Expired\] If you want to access the Whizlabs library with specific courses, you can opt for a monthly subscription, where you get a discount of 63%. [Get 63% Discount ](https://devopscube.com/recommends/whizlabs-pricing/) ![Whizlabs monthly promo code](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-3-21.png) ## Whizlabs Popular Courses & Practice Tests Following are the popular training and practice test courses from Whizlabs. All combined there are 25,000+ Practice Questions. 1. AWS Certified Solutions Architect Associate 2. AWS Certified Solutions Architect Professional 3. AWS Certified Cloud Practitioner 4. AWS Certified DevOps Engineer Professional 5. AWS Certified SysOps Administrator Associate 6. Exam AZ-900: Microsoft Azure Fundamentals 7. Exam AZ-104: Microsoft Azure Administrator 8. Google Cloud Certified Professional Cloud 9. HashiCorp Certified Terraform Associate 10. Docker Certified Associate (DCA) 11. Red Hat Certified System Administrator (RHCSA) Certification ## How to Redeem Whizlabs Promo Code? Follow the steps given below to redeem the **Whizlabs coupon code**. **Step 1:** First copy the discount coupon for annual or individual courses from the list of coupons given above. **Step 2:** Head over to the course you would like to purchase and click the "Buy Now" option. ![add whizlabs course to redeem discount coupon](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-23.png) **Step 3:** In the "**Enter the Promo Code**" option, apply the discount coupon you have copied as shown below. ![Whizlabs Promo Code checkout](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-2-18.png) **Step 4**: Validate the applied discount and checkout. ## Whizlabs Review Whizlabs was Founded in 2000 and is one of the first online platforms to provide IT training and certification. It has helped more than five million professionals in 150+ countries pass certification and train for career development. It primarily focuses on Cloud Computing (AWS, Azure, GCP), DevOps Java, BigData, Snowflake, CompTIA, Cybersecurity, and Blockchain ### Whizlabs Features Whizlabs offers training and IT certification practice tests. Its training and practice tests library includes the following top IT domains. 1. Cloud computing 2. DevOps 3. Cyber security 4. Java 5. Big Data 6. Blockchain 7. Python 8. Linux 9. Agile 10. Networking ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-220.png) Whizlabs has, 1. More than 200 courses 2. 25,000+ Practice Questions 3. 4,500+ Training Videos 4. 24x7 Tech Support 5. 750+ Guided Hands-on Labs 6. Cloud Lab Challenges 7. Azure, AWS, and Google Cloud Sandboxes. Most courses include practice tests and hands-on labs. You can check out the [DevOps Certification Category](https://devopscube.com/recommends/whizlabs-devops-courses/) if you are specifically looking for DevOps Certifications[.](https://devopscube.com/recommends/whizlabs-devops-courses/) ### Whizlabs Labs Platform [Whizlabs Labs](https://www.whizlabs.com/labs/library?ref=devopscube.com) platform helps you gain hands-on experience on the following cloud platforms. 1. AWS 2. Azure 3. GCP 4. Microsoft Power BI There are **400+ labs** in the lab's library focused on learning and cloud certification preparation. For example, 1. AWS Certified Advanced Networking 2. AWS-certified cloud practitioner 3. AWS-certified Data Analytics 4. AWS Certified DevOps engineer Labs have the following formats. 1. Guided Lab 2. Lab Challenge and 3. Lab Project ## Whizlabs Latest Updates Wihzlabs now supports the PowerBI sandbox. Sandbox subscriptions have a 50% discount for 6-month plans. Whizlabs announced **AWS, Azure, and Google Cloud Sandboxes**. With sandboxes, you can experiment with AWS and Azure cloud services without worrying about spending extra. It is an isolated environment given to you to experiment and learn all the AWS and Azure concepts. The best part is that you don't have a limitation on virtual machines. ## Whizlabs FAQs The following are the frequently asked questions for Whizlabs discount. ### Is Whizlabs free? Whizlabs is not free. However, you can access the Whizlabs practice tests one time for completely free. You can check out all the [free whizlabs practice tests](https://devopscube.com/recommends/whizlabs-free-tests/). ### Are Whizlabs tests good? Whizlabs cloud certification practice tests are very in-depth. It will help you prepare for certifications of major cloud providers like AWS, Azure, and Google Cloud. For DevOps Standpoint, it offers good practice tests for Terraform and docker certifications. Also, the platform offers good support for its users. ### Does Whizlabs offer a refund? Yes. You can request a refund within seven days of purchase. You can check the official [whizlabs refund policy](https://www.whizlabs.com/refund-policy/?ref=devopscube.com) for all the restrictions. ## Conclusion I have added all the latest Whizlabs promo codes and **course-specific discount coupons** to save the best on monthly and annual subscriptions. The best part about Whizlabs is, that you can purchase individual courses and practice tests at huge discounts. I update this page every month for the latest coupon codes. In addition, you can bookmark this page to get all the latest offers available. Also, if you are a developer or a DevOps engineer interested in learning system design and programming courses the right way, you can check out [educative.io](https://devopscube.com/recommends/educative-trial/). You can also save up to 40% using the [educative.io coupons](https://devopscube.com/educativeio-coupon/). ### CKAD Certification: The Comprehensive Guide for Future CKADs URL: https://devopscube.com/ckad-exam-study-guide/ Last updated: 2026-10-15T06:59:52.000Z This **CKAD Exam study guide** will help you prepare for the CKAD Certification exam with all the required resources. CKAD is one of the [best Kubernetes certifications](https://devopscube.com/best-kubernetes-certifications/) focused on the development aspects of Kubernetes. In this article, I will go through all the resources that can help you prepare for the CKAD exam. I will also be sharing many tips that helped me **pass the CKAD exam with a near-perfect score of 96 out of 100**. **Note**: All the authors of this blog are CKAD certified. ## What is the Certified Kubernetes Application Developer (CKAD) exam? The official CNCF certification page says: A Certified Kubernetes Application Developer can define application resources and use core primitives to build, monitor, and troubleshoot scalable applications and tools in Kubernetes. Certified Kubernetes Application Developer (CKAD) is one of the highest in-demand certifications in the industry right now. It is aimed at engineers interested in the design, development, build & management of applications on Kubernetes. So if you are someone who works on the development aspects of Kubernetes, this certification is for you. The purpose of the Certified Kubernetes Application Developer (CKAD) program is to assure that CKADs have the skills, knowledge, and competency to perform the responsibilities of Kubernetes application developers. ## Register for the CKAD Certification \[Save 40% Today\] To begin your journey of becoming a Certified Kubernetes Application Developer (CKAD) - start by registering for the CKAD exam on the Linux Foundation portal. When you register you **get free access to two sessions of killer.sh CKAD practice exams** that will help you clear the CKAD exam. ****Note:** Save 35% today on CKAD certification using the Voucher code given below. This offer expires soon. [Save 35% on CKAD Exam Today](https://devopscube.com/recommends/ckad-exam/) **CKAD Exam Voucher:**: Use Code **OCT26NONCYBERCT** at checkout If you are planning for all the Kubernetes certifications, You can choose the [**CKA + CKAD + CKS bundle**](https://devopscube.com/recommends/cka-ckad-cks/) to **save 40%** using code **OCT26NONCYBERCT**. Here are some things to keep in mind regarding the exam. 1. The CKAD certification exam is to be taken online, and it is proctored remotely. 2. A score of 66% or above must be earned to pass. 3. Certifications are valid for two years. 4. After registration, you get one year to schedule the exam. 5. After registration, you get a maximum of 2 attempts to take the test. If you miss a scheduled exam for any reason - your second attempt gets nullified. 6. **Free access to** [killer.sh](https://killer.sh/?ref=devopscube.com) for the CKAD practice exam. ****Note:** You can always check the [latest Kubernetes Certification Voucher Codes](https://devopscube.ghost.io/kubernetes-certification-coupon/?ref=devopscube.com) to save costs on the CKA, CKAD, and CKS certification registration ## Certified Kubernetes Application Developer (CKAD) Exam Preparation Guide This section will go over the complete resources and official CKAD kubernetes documentation pages that can help you prepare for the exam better. ## CKAD Exam prerequisites CKAD does not require any candidate to have any other certification before appearing for the CKAD exam. The only thing required to clear the exam is practice, practice, and practice. ## CKAD Exam details | Exam Duration | 2 hours | | ---------------------------- | ---------------- | | Pass Percentage | 66% | | CKAD Exam Kubernetes Version | Kubernetes v1.36 | | CKAD Validity | 2 Years | | Exam Cost | $445 USD | | Exam Retake | One retake | CKAD exam is an open book exam i.e. you can use the following websites while you are taking the exam (Resources Allowed):- 1. [https://kubernetes.io/docs/](https://kubernetes.io/docs/?ref=devopscube.com) 2. [https://kubernetes.io/blog/](https://kubernetes.io/blog/?ref=devopscube.com) and their subdomains. This includes all available language translations of these pages (e.g. [https://kubernetes.io/zh/docs/)](https://kubernetes.io/zh/docs/home/?ref=devopscube.com) 3. [https://helm.sh/docs](https://helm.sh/docs?ref=devopscube.com) The online proctored exam is taken on PSI’s Proctoring Platform “Bridge”, using the PSI Secure Browser (a web browser created to guarantee a secure exam delivery over a virtual connection). Read more about the [system and testing environment requirements.](https://docs.linuxfoundation.org/tc-docs/certification/lf-handbook2/candidate-requirements?ref=devopscube.com) The remote desktop is configured with all the tools and software needed to complete the tasks. This includes: 1. Terminal Emulator 2. Firefox browser to access “Resources Allowed” 3. Virtual Keyboard Read more about the [CKAD Exam user interface here.](https://docs.linuxfoundation.org/tc-docs/certification/lf-handbook2/exam-user-interface?ref=devopscube.com) ## CKAD Exam Syllabus The following are the domains and competencies part of the CKAD syllabus along with their respective topics and weightage. | Topic | Weightage | Concepts | | ---------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Application Design and Build | 20% | • Define, build, and modify container images• Understand Jobs and CronJobs• Understand multi-container Pod design patterns (e.g. sidecar, init, and others)• Utilize persistent and ephemeral volumes | | Application Environment, Configuration, and Security | 25% | • Discover and use resources that extend Kubernetes (CRD)• Understand authentication, authorization, and admission control• Understanding and defining resource requirements, limits, and quotas• Understand ConfigMaps• Create & consume Secrets• Understand ServiceAccounts• Understand SecurityContexts | | Services & Networking | 20% | • Demonstrate basic understanding of NetworkPolicies• Provide and troubleshoot access to applications via services• Use Ingress rules to expose applications | | Application Deployment | 20% | • Use Kubernetes primitives to implement common deployment strategies (e.g. blue/green or canary)• Understand Deployments and how to perform rolling updates• Use the Helm package manager to deploy existing packages | | Application Observability and Maintenance | 15% | • Understand API deprecations• Implement probes and health checks• Use provided tools to monitor Kubernetes applications• Utilize container logs• Debugging in Kubernetes | We will look at each section in detail below. ## CKAD Exam Practice Lab Setups The best way to prepare is to practice a lot! The below setups will give you a Kubernetes cluster where you can do all the required practice. The exam expects you to solve problems on a live cluster. CKAD does not have any MCQ-type format - so hands-on practice is a must. 1. [Killercoda](https://killercoda.com/killer-shell-ckad?ref=devopscube.com) 2. [Minikube](https://kubernetes.io/docs/tutorials/hello-minikube/?ref=devopscube.com) 3. [Kubernetes Setup using Kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) \[Detailed Guide\] 4. [Kubernetes Vagrant Setup using Kubeadm](https://devopscube.com/kubernetes-cluster-vagrant/) 5. [GKE Cluster](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) using free Google Cloud Credits 6. [EKS Service on AWS](https://devopscube.com/create-aws-eks-cluster-eksctl/) using [AWS $300 POC credits](https://devopscube.com/recommends/aws-free-credits/) 7. [AKS service on Azure](https://azure.microsoft.com/en-in/services/kubernetes-service/?ref=devopscube.com) using free cloud credits 8. Kubernetes Cluster on Digital Ocean\[ [Get $100 Digital Ocean Free Credits](https://devopscube.com/get-free-digital-ocean-credits/)\] ## CKAD Preparation Course Investing in a CKAD course will help you understand all the concepts for the CKAD exam in an easier manner. If you are a beginner and have no experience working on Kubernetes environments, I strongly suggest you invest in a good guided CKAD course of your choice. I recommend going for the CKAD preparation course by Mumshad. His course has a lot of quizzes and the quality is top-notch. [GET CKAD COURSE](https://devopscube.com/recommends/kodecloud-ckad/) Also, to practice for the CKAD exam, you can try the Mock exams. It will help you build confidence and practice many scenarios for the exam. [CKAD MOCK Exams](https://devopscube.com/recommends/kk-ckad-mock-exam/) Also, you can solve CKAD scenarios from [Killer coda CKAD practice scenarios.](https://killercoda.com/killer-shell-ckad?ref=devopscube.com) ## CKAD Certification Resources Here, I will be discussing **official Kubernetes resources** that can be used to prepare for each topic of the CKAD exam. You can use these documentation pages during the exam for reference. Also, ensure you have a very good understanding of [Kubernetes architecture](https://devopscube.com/kubernetes-architecture-explained/) before you start the hands-on learning. ## Application Design and Build ### Understand Kubernetes API primitives The Kubernetes API lets you query and manipulate the state of objects like Pods, Namespaces, ConfigMaps, and Events. **Official Reference:** [Kubernetes-API](https://kubernetes.io/docs/concepts/overview/kubernetes-api/?ref=devopscube.com) #### Understand how to use Labels, Selectors, and Annotations [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/?ref=devopscube.com) are key/value pairs that are attached to objects, such as pods. They help in filtering out specific objects. Using a Selector, the client/user can identify a set of objects. Imperative commands: ```bash kubectl get pods --show-labels //display labels of each pod kubectl get pods --selector=foo=bar //filter on basis of labels kubectl label pod k1=v1 k2=v2 k3=v3 //to add labels kubectl label pod k1- //to remove labels kubectl label pod k2=v2.1 --overwrite //to overwrite ``` [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/?ref=devopscube.com) are used to attach arbitrary non-identifying metadata to objects. Imperative commands: ```bash kubectl annotate pods description='desc' //add annotations kubectl annotate pods description- //to remove annotations kubectl annotate pods description='desc2' --overwrite//to overwrite ``` ### Define, build, and modify container images Pods are the basic objects where your images/code run. **Reference:** [Pod Concepts](https://kubernetes.io/docs/concepts/workloads/pods/?ref=devopscube.com) **Task:** [Configure Pods and Containers](https://kubernetes.io/docs/tasks/configure-pod-container/?ref=devopscube.com) ****Imperative commands**: These are commands which let you create objects via a CLI, i.e., they remove the need to write the whole YAML. Knowing imperative commands can help you save time in the exam. I highly recommend them. Refer [create Kubernetes YAML guide](https://devopscube.ghost.io/create-kubernetes-yaml/?ref=devopscube.com). Imperative commands for pods: ```bash kubectl run --image= ``` We can get the pod YAML pod by running this command and then changing it accordingly: ```bash kubectl run --image= --dry-run=client -o yaml > pod.yaml ``` Imperative command to change the pod image: ```bash kubectl set image pod = ``` ### Understand Jobs and CronJobs Kubernetes Jobs are used to create transient pods that perform specific tasks they are assigned to. CronJobs do the same thing, but they run tasks based on a defined schedule. Ensure you know the to cron expressions based on the given schedules. Imperative Commands: ```bash kubectl create job my-job --image=busybox kubectl create cronjob my-job --image=busybox --schedule="*/2 * * * *" -- date ``` **Reference:** [create Jobs and CronJobs](https://devopscube.com/create-kubernetes-jobs-cron-jobs/) ### Understand Multi-Container Pod design patterns In Kubernetes, each pod can run multiple [containers](https://devopscube.com/what-is-docker/) inside it. These containers share a common network, i.e., each pod can make requests to other containers using localhost. This has a lot of use cases in [Kubernetes logging](https://devopscube.com/kubernetes-logging-tutorial/) or metrics analysis in the cluster. **Official Reference:** : [Multicontainer pod patterns](https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns/?ref=devopscube.com) #### Understand Persistent Volume Claims for storage 1. **StorageClasses**: [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/?ref=devopscube.com) provides a way to describe the “classes” of storage offers available. 2. **PersistentVolume**: It is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using StorageClasses. They are created over StorageClasses. 3. **PersistentVolumeClaim**: It is a request for storage by a user. They are created over PersistentVolumes. **Official Reference:** [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/?ref=devopscube.com) #### Understand Taint and Tolerations [Taints and tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/?ref=devopscube.com) work together to ensure that pods are not scheduled onto inappropriate nodes. We apply taint on Node and toleration on Pod. Read about [Node Affinit](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/?ref=devopscube.com#affinity-and-anti-affinity)y as well, we can restrict a Pod to run on a particular node or prefer to run on some particular nodes. ```bash kubectl label node = kubectl taint node =: ``` ## Application Environment, Configuration, and Security #### Understand ConfigMaps Configmaps are useful to store non-critical data in key-value pair format. They can also be used to inject env vars into pods. Imperative commands for Configmaps: ```bash kubectl create cm --from-file=hello.txt kubectl create cm --from-literal=key1=value1 ``` Ensure you know how to inject values as environment variables from configmaps. **Official Reference**: [Configmaps](https://kubernetes.io/docs/concepts/configuration/configmap/?ref=devopscube.com) #### Understand SecurityContexts A security context defines privilege and access control settings for a Pod or Container. **Official Reference**: [security contex](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/?ref=devopscube.com)t We define the security context at the **pod level and at the container level**. Understand the differences correctly so that you can solved the scenarios in the exam without much confusion. ### Define an application’s resource requirements It is used to define the CPU and memory requirements of a container. Imperative commands for resources: ```bash kubectl run test --image=alpine --requests=cpu=100m,memory=256Mi --limits=cpu=200m,memory=512Mi ``` **Official Reference:** [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/?ref=devopscube.com) #### Create & Consume Secrets Secrets are useful to store sensitive data in key-value pair format. They can also be used to inject env vars into pods. Imperative commands for secrets: ```bash kubectl create secret generic --from-file=hello.txt kubectl create secret generic --from-literal=key1=value1 ``` Understanding of injecting secret values in to env values is a must have knowledge. **Official Reference:** [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/?ref=devopscube.com) #### Understand ServiceAccounts [Kubernetes service account](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/?ref=devopscube.com) provides an identity for processes that run in a Pod. Imperative commands for service account: ```bash kubectl create sa ``` Learn to figure out if the deployment or pod had the correct service account mounted. Learn list serviceaccount and check its permissions. **Reference**: [Create Kubernetes Service Account](https://devopscube.com/kubernetes-api-access-service-account/) #### Understand Authentication, Authorization, and Admission Control In Kubernetes, you must be authenticated (logged in) before your request can be authorized (granted permission to access). There are multiple modes of Authorization i.e Node, ABAC, RBAC, and Webhook. [Authorization](https://kubernetes.io/docs/reference/access-authn-authz/authorization/?ref=devopscube.com) mode is defined in kube-apiserver setting in kube-system namespace. Check the [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/?ref=devopscube.com) mode which is widely used. [Admission Controllers](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/?ref=devopscube.com) help us implement better security measures to enforce how a cluster is used. ## Services & Networking ### Understand Services [Services](https://kubernetes.io/docs/concepts/services-networking/service/?ref=devopscube.com) are an abstract way to expose an application running on a set of [Pods](https://kubernetes.io/docs/concepts/workloads/pods/?ref=devopscube.com) as a network service. They are used for inter-pod communications. The fact that each service’s IP address remains unchanged until it is deleted & recreated is why Services are used for inter-pod communications instead of Pod IP addresses. Imperative commands: ```bash kubectl expose deployment nginx --port=80 --target-port=8000 --type=ClusterIP kubectl create service nodeport my-ns --tcp=5678:8080 ``` ### Demonstrate a Basic understanding of Network Policies [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/?ref=devopscube.com) are an application-centric construct that allows you to specify how a pod is allowed to communicate with various network “entities” such as pods, deployments, etc over the network. Basically, you can tell Kubernetes through Network Policies whether pod A should be allowed to take requests from pod B or whether pod A can communicate with pod C. It gives you much tighter control of the network flow and traffic. [Ingress](https://devopscube.com/kubernetes-ingress-tutorial/) exposes HTTPS and HTTP routes outside the cluster to services within the cluster. Traffic routing is controlled by rules defined on the Ingress resource. Imperative Command: ```bash kubectl create ingress --rule=<"rule-name">=: -n //rule name is the url name for eg. abc.com/word* ``` Practice network policy scenarios well. It might seem easy but during the exam you might get confused. You can use the [network policy editor](https://networkpolicy.io/editor?ref=devopscube.com) to visually learn about Network Policies. ## Application Deployment ### Understand Deployments and how to perform rolling updates [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/?ref=devopscube.com) ensure a minimum no of replicas of an application running at all times. In case a replica goes down, the Kubernetes API ensures that a new one is created within minutes. Imperative commands: ```bash kubectl create deployment --image= -n //create deployment kubectl create deployment --image= -- sleep 300 //with command arguments kubectl scale deployment --replicas=4 //scale up or down kubectl edit deployment -n //edit the deployment ``` ### Understand Deployments and how to perform rollbacks Sometimes, you may want to roll back a [Kubernetes Deployment](https://devopscube.com/kubernetes-deployment-tutorial/); for example, when the Deployment is not stable, such as crash looping. Kubernetes handles this in the form of rollbacks. Imperative commands: ```bash kubectl set image deployment = //update image kubectl rollout status deployment //see status kubectl rollout history deployment //see history kubectl rollout undo deployment //rollback kubectl rollout undo deployment --to-revision= //rollback to the specific version ``` **Official Reference:** [Rolling Back a Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/?ref=devopscube.com#rolling-back-a-deployment) ### Understand Helm Package Manager [Helm](https://helm.sh/docs/?ref=devopscube.com) is a Kubernetes package manager. It helps us to define, install, and upgrade complex Kubernetes applications. Helm Charts are easy to create, version, share, and publish. You can expect Helm package and release management scenarios in the exam. Ensure you know how to manage releases and rollbacks using Helm. You are allowed to use the official Helm documentation. ### Application Observability and Maintenance Ensure you have good understanding of health probes. Understand LivenessProbes, ReadinessProbes and StartupProbes 1. Liveness probes are used to know when to restart a container. 2. Readiness probes are used to know when a container is ready to start accepting traffic. 3. Startup probes are used to know when a container application has started. **Official Reference:** [Liveness & Readiness Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/?ref=devopscube.com) Also, learn to check application logs using kubectl commands. ### Understand container logging Application logs can help in understanding the activities and status of the application. The logs are particularly useful for debugging problems and monitoring cluster activity. Tools like [EFK Stack](https://devopscube.com/setup-efk-stack-on-kubernetes/) and Istio are popular as they make the management of these logs very easy. There are certain flags in kubectl commands which can help speed up your debugging cases, they are given below. Commands: ```bash kubectl logs pod kubectl logs pod --tail=10 kubectl logs pod --tail=10 -f ``` **Reference:** [Kubernetes Logging Tutorial For Beginners](https://devopscube.com/kubernetes-logging-tutorial/) ### Understand how to monitor applications in Kubernetes Monitoring applications can be done by storing logs and studying the application’s metrics. Tools like Prometheus-Grafana are popular as they make the management of metrics very easy. Very often, sidecar containers are used as metrics exporters of the main application container. ### Understand debugging in Kubernetes The exam requires you to be able to identify errors, understand the root cause, and rectify the errors. For this practice is required. There are certain basic steps one can take to understand the error very easily. These steps involve – studying the logs of the pods, setting up probes, and studying the application metrics. Commands: ```bash kubectl describe deployment kubectl describe pod kubectl logs deployment kubectl logs pod kubectl logs deployment --tail=10 kubectl logs deployment --tail=10 -f kubectl top node kubectl top pod ``` **Official Reference:** [Debug Running Pods](https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/?ref=devopscube.com) ### Understand API Deprecations As the Kubernetes API evolves, APIs are periodically reorganized or upgraded. When APIs evolve, the old API is deprecated and eventually removed. Read more about it: To update the API in the manifest files: ```bash kubectl convert -f --output-version ``` **Official Reference:** [API deprecation Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/?ref=devopscube.com) ## Kubernetes Objects Shortcuts Use the following [Kubernetes object](https://devopscube.com/kubernetes-objects-resources/) shortcuts to save time: | Objects | Shortcuts | | ---------------------- | --------- | | pods | po | | deployments | deploy | | services | svc | | serviceaccounts | sa | | nodes | no | | configmaps | cm | | namespaces | ns | | ingresses | ing | | persistentvolumes | pv | | persistentvolumeclaims | pvc | | replicasets | rs | To know the shortcuts of all the resources, execute the following command. ```bash kubectl api-resources ``` ## Unofficial Resources For CKAD Practice | Interactive CKAD Practice Lab | [CKAD Killerkoda Practice Lab ](https://killercoda.com/killer-shell-ckad?ref=devopscube.com) | | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CKAD Practice Questions | [CKAD Exercises](https://github.com/dgkanatsios/CKAD-exercises?ref=devopscube.com) | | CKAD Questions & Answers With Explanation | [5 Set of Kubernetes CKAD Practice Questions ](https://thospfuller.com/2020/11/09/answers%5Fto%5Ffive%5Fkubernetes%5Fckad%5Fpractice%5Fquestions%5F2021/?ref=devopscube.com) | | Vim shortcuts | [Vim Tips & Tricks](https://devhints.io/vim?ref=devopscube.com) | | Cheat Sheet | [Kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/?ref=devopscube.com) | ## CKAD Do's 1. When you start preparing for the exam, start using the alias and object short names from day one. 2. Use the two **killer.sh** free practice sessions environment before attempting the real exam. The exam environment is almost similar to the simulation exam. 3. Use Imperative Commands as much as possible. 4. While giving practice exams, try to wrap up 15 minutes before the deadline – it will give you additional time to revise the solutions. 5. Give a lot of practice exams, identify your weak topics, and spend more time on those. 6. On exam day, keep an alternative internet source handy in case of Wi-Fi internet goes down. 7. If any particular question is going to take more than 6-7 mins to solve, flag/mark it to solve for later and come back once you solve the rest. 8. Use the [kubectl alias](https://devopscube.com/configure-kubectl-with-kuberc/) (k) for all the imperative commands. The alias will be present in the exam terminal by default. 9. If possible, try to use a wide screen monitor with dedicated webcam. Because you can use only one live screen. A wide monitor will give you a lot of real estate to work on during the exam. ## CKAD Don't's 1. Most people don't even use an alias. So no need to overwhelm yourself with an `alias` for everything. 2. Don’t take the exam on the last day. The idea is to give it in a pressure-free environment. 3. At the time of the exam, you shouldn't have anything on the table other than your system. ## CKAD FAQ'S ### Is there any coupon code for the CKAD exam? Yes. You can use code **DCUBE30** to get exclusive 30% discount for the CKAD exam registration. ### Does the CKAD exam ever go on sale? Yes. The CKAD exam often goes on sale during events like Black Friday, Cyber Monday, Kubernetes anniversaries, and Linux Foundation seasonal sales. You can get the updated coupons form the [Linux Foundation Coupon](https://devopscube.com/linux-foundation-coupon/) page. ### How much discount can I get on the CKAD exam? You will get a maximum of 50% discount on CKAD exam during Linux Foundation sales. Instantly you can get 30% discount using code **DCUBE30**. ## Conclusion Preparing for the CKAD exam will help you understand application development on Kubernetes in a much better way and help in your career progression. CKAD is a sought-after DevOps certification for [DevOps engineers](https://devopscube.com/become-devops-engineer/) out there. So give your best and prepare well! This **CKAD exam preparation guide** has given you all the best resources, tips, and tricks to pass the CKAD exam. We will keep updating it with new tools and resources—all the best for your preparations. You might also like our [Kubernetes beginner tutorials](https://devopscube.com/kubernetes-tutorials-beginners/) that have several topics covered under Kubernetes certification. If you want a structured roadmap, check out the [Kubernetes learning path.](https://devopscube.com/learn-kubernetes-complete-roadmap/) Do check out the CKA & CKS certification guides as well. 1. [CKA Certificataion Exam Guide](https://devopscube.com/cka-exam-study-guide/) 2. [CKS Certification Exam Guide](https://devopscube.com/cks-exam-guide-tips/) Also, If you are interested in DevOps certifications, check out our comprehensive guide on the best [devops certifications](https://devopscube.com/devops-certifications/). ### 8 Best Websites to Practice DevOps Hands-On (Free & Paid Labs) URL: https://devopscube.com/websites-to-practice-devops/ Last updated: 2026-08-04T05:41:29.000Z Looking for best platforms to learn Devops practially? You are in the right place. When people start learning [DevOps](https://devopscube.com/become-devops-engineer/), they usually start by watching tutorials like videos, blogs, and docs etc. But very soon they will struggle with one problem. You understand the concept, but when you open a terminal, everything feels different. With **over a decade of DevOps experience**, I can say that most of my learning came from designing solutions, hands-on implementation and **troubleshooting real issues.** If you learn by doing things on your own, that’s great. But if you want a structured way to practice real-world scenarios, you need a platform that offers guided practice. In this blog, I have listed the best websites where learners can practice DevOps scenarios and gain real hands-on experience. ## List Of Websites to Learn DevOps Practically We have listed the best hands-on DevOps labs platforms that our DevOpsCube Engineers usually practice at the beginning stage. ## 1\. KodeKloud Labs KodeKloud is my #1 recommendation. [KodeKloud](https://devopscube.com/kodekloud-review/) is basically an online learning platform that is focused on DevOps, Cloud, and automation tools, and more importantly, it has practice labs to help with hands on practice So, in this lab, you can do things like log into [Linux](https://devopscube.com/list-of-linux-commands-every-developer-should-know/) machines, run real commands, [build Docker images](https://devopscube.com/build-multi-arch-docker-image/), [deploy Kubernetes](https://devopscube.com/kubernetes-deployment-tutorial/) workloads, write [Terraform code](https://devopscube.com/terraform-checkov-scan/), and you can also break things and fix them. Also, you will get AI assistance inside the lab with real-time help. In fact, KodeKloud had over [1+ million learners](https://kodekloud.com/blog/1-million-hands-on-lab-learners/?ref=devopscube.com) as of 2026 and pretty popular in the DevOps community. [Try KodeKloud Labs](https://devopscube.com/recommends/kodekloud-pricing/) The following video shows an example browser based KodeKloud lab. 0:00 /0:48 1× Source: KodeKloud Here is the common question everyone asks. *What Can You Practice on KodeKloud Lab?* The following are the key verticals you can practice inside the Lab. 1. Linux fundamentals and shell commands 2. Git and version control 3. Docker and container workflows 4. Kubernetes from basic to advanced concepts 5. CI/CD tools (Jenkins) 6. Infrastructure as code using Terraform 7. Configuration management with Ansible 8. Cloud platforms like AWS, Azure, and GCP 9. Security and certification-based topics 10. AI playgrounds such as Claude code, OpenAI Codex, Qwen Coder, n8n, KideKey, MCP, AWS AI, and Azure AI. In these labs, you can learn by doing and experiment in real environments. To understand these labs in more detail, you can visit the [KodeKloud Playgrounds](https://kodekloud.com/playgrounds/?ref=devopscube.com) page. Now, when it comes to pricing, you get access to all hands-on labs for **$35 per month**. This is very affordable for most learners and makes it one of the best platforms to practice DevOps. | **Plan** | **Monthly Price** | **Yearly Price** | | -------------------------- | ----------------- | ---------------- | | Standard | $35/mo | $228/yr | | Pro | $70/mo | $456/yr | | AI | $99/mo | $684/yr | | Team & Enterprise (Custom) | Custom quote | Custom quote | You can also **launch a free lab** to try the platform before upgrading to a paid plan. If you decide to continue, you can use a [KodeKloud coupon](https://devopscube.com/kodekloud-coupons/) to get the maximum discount, sometimes up to **50% off**. In the table below, you will find the features included in the **free KodeKloud lab.** | Feature | What You Get | | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Browser-Based Labs | • Launch real Linux and Kubernetes environments directly in your browser• No installation required• Instant lab access | | Interactive Terminal Access | • Access live lab machines• Run real commands• Practice troubleshooting and configuration tasks | | Structured Lab Scenarios | • Step-by-step guided challenges• Real-world DevOps practice tasks• Repeatable scenarios | | Playgrounds | • Open environments without fixed tasks• Experiment with Linux and Kubernetes• Practice freely within session limits | | Certification Practice | • Kubernetes-related foundational labs• Practice tasks aligned with certification topics (limited selection) | | Community Scenarios | • Access selected community-created labs• Explore different DevOps learning paths | | Free-Tier Limits | • Lab sessions typically limited to around 1 hour (varies by lab)• Only one active lab or playground session at a time• No persistence, environment resets after session ends• Access limited to selected free labs (not full premium library) | So, from a practical point of view, KodeKloud is a valuable platform for practicing real-world DevOps scenarios. ## 2\. iximiuz Labs Looking for a KodeKloud alternative to dive deep in to internals? Well, you will love [iximiuz Labs.](https://labs.iximiuz.com/?ref=devopscube.com) In this platform the focuse is less on step-by-step tasks and more on **how things really work under the hood**. If you are someone who wants to understand Kubernetes, containers, networking, and Linux internals through real experiments and not just commands, this platform is for you. [Checkout iximiuz Labs](https://labs.iximiuz.com/premium?ref=devopscube.com) iximiuz Labs offers browser-based lab environments where you can set up real systems in seconds and start experimenting. You will get around **60+ playgrounds to practice** concepts in depth using guides and hands-on commands. It covers eBPF & Observability, Networking Internals, Kubernetes Internals, Containers (Deep Level), Linux Internals, Debugging & Experiments and more.. ![iximiuz Labs](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-47.png) You can start labs with: - Plain Linux virtual machine. - [Docker host](https://devopscube.com/provision-docker-hosts-on-azure/). - Single-node or [multi-node Kubernetes cluster.](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) You also get multiple connected machines for networking experiments and custom environments where you control how everything is wired. These labs are really great when you want to understand **how things really work**. You can freely test ideas without worrying about breaking your local machine. And the most interesting part is that you can break things on purpose and fix them, which is something you usually can't do in real projects. **Here are some interesting facts we found.** - In 2025, [iximiuz Labs](https://x.com/iximiuz?ref=devopscube.com) got over **21,000 new users**. - Based on the recent report, last year it generated **$185,000 in revenue**. - It has an active enrollment of [500 students](https://newsletter.iximiuz.com/?ref=devopscube.com) who are solving multiple hands-on challenges. The following table shows you the monthly, annual, and lifetime pricing plans. | Plan | Monthly Price | Annual Price | | ---------------- | ------------- | --------------- | | Free | Free | Free | | Premium | $8 / month | $96 / year | | Lifetime Premium | \- | $250 (one-time) | 💡 ****Tip:** The Lifetime Premium plan is worth considering only if you plan to use the platform long term. Here are the free features and labs you will get in the **free Iximiuz labs.** | Feature | What You Get | | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Browser-Based Playgrounds | • Launch real terminal environments directly in your browser• No local installation required• Instant access to Linux and DevOps tools | | Live Shell Access | • Execute real Linux commands• Practice Docker, Kubernetes, and networking tasks• Learn by experimenting in real environments | | Guided Tutorials & Challenges | • Access selected official and community tutorials• Step-by-step learning with attached playgrounds• Hands-on problem-solving exercises | | Free-Tier Limits | • Around 1 hour of playground usage per day• Only one playground can run at a time• Limited VM resources (approximately 2 CPU / 4 GB RAM)• Restricted internet access (safe destinations only) | ## 3\. KillerCoda Killercoda is a **browser-based, interactive lab platform** that helps you to practice real command-line work for technologies like Linux and Kubernetes without installing anything on your computer. All labs run directly inside your browser, giving you live terminals with real environments to work in. [Checkout KillerCoda Labs](https://killercoda.com/?ref=devopscube.com) Also, it will let you learn and experiment with tools like KubeVirt, [Grafana](https://devopscube.com/grafana-loki-architecture/), Thanos, [Argo](https://devopscube.com/argo-cd-ultimate-guide/), Flux, [Ansible](https://devopscube.com/ansible-playbook-examples/), [HashiCorp](https://devopscube.com/setup-hashicorp-vault-beginners-guide/), DataStax, OpenTofu, KubeVela, OpenFeature, [Istio](https://devopscube.com/istio-opensource-platform-microservices-management/), [Nginx](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/), [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), [Helm](https://devopscube.com/create-helm-chart/), [Docker](https://devopscube.com/docker-tutorial-getting-started-with-docker-swarm/), gVisor, etc. ![Killer coda](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-58.png) In killercoda, when you start a scenario related to any certification, the labs will create new temporary VMs for the scenario and connect them to your environment. The labs in killercoda are similar to the environment in certification exams like [CKA](https://devopscube.com/cka-exam-study-guide/), [CKAD](https://devopscube.com/ckad-exam-study-guide/), etc. You just have to read the question and do the hand-on part in the terminal and in the background there will be validation script. You can use the validation button to validate your answer once it is done. 📌 [DevOpsCube CKA Practice Course ](https://courses.devopscube.com/p/cka-complete-prep-course-practice-tests?ref=devopscube.com)labs are hosted on KillerCoda platform. You can also use the platform to create labs for others for free. In killercoda, you get a real shell, can open multiple terminals, expose ports and access services, can use an editor or an IDE if needed, and restart, reset, or recreate the lab at any time. We would rate it **4.6 out of 5 stars**. KillerCode has a free and paid(PLUS) version. In the **paid(PLUS) version**, you use **4 hours per section**, open up to 3 scenarios at the same time, solve the CKA, [CKS](https://devopscube.com/cks-exam-guide-tips/), CKAD scenarios in the exam remote desktop, get faster loader times, and more. The following table shows the price of PLUS. | PLUS Pricing | Price (USD) | | ------------ | ----------- | | 1 month | $9.99 | | 3 months | $21.99 | | 6 months | $39.99 | | 12 months | $69.99 | In the **free version**, you can use all the labs, but you have limitations. You can use only **1 hour per section**. Read the table below to know more about the **free version.** | Feature | What You Get | | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Browser-Based Interactive Labs | • Use real Linux and Kubernetes environments right in your browser• No local environment setup required• Access Linux, Kubernetes, and other hands-on scenarios | | Interactive Terminal Access | • Practice commands in live terminal sessions• Explore and troubleshoot systems and clusters• Test real commands and tools with instant feedback | | Playgrounds (Custom Environments) | • Start predefined playground setups like Kubernetes clusters• Try single-node or small multi-node clusters• Good for experimentation and learning basics | | Scenario Library | • Access community and platform scenarios• Practice guided challenges based on real tasks• Learn topics through structured exercises | | Community/Creator Support | • Create and share your own scenarios for others to use• Use Katacoda-compatible formats if needed | | Free-Tier Limits | • Sessions usually run up to about 1 hour before expiring• Only one active session/playground at a time• Environments reset when the session ends (no persistence)• Some advanced or extended-time options require paid PLUS | ## 4\. Pluralsight Labs Pluralsight Labs are **live, browser-based practice environments** that set up real systems or sandboxes where you can run commands, experiment, and complete tasks just like you will do in the real project. ![Pluralsight Labs](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-59.png) In fact, it doesn't have only one kind of lab, it has several formats, such as hands-on labs, interactive coding, Dev labs, cloud, and sandbox environments. If you need more details about Labs, we have published a detailed review of our [Pluralsight hands-on labs](https://devopscube.com/pluralsight-review/#pluralsight-hands-on-labs). Here are the pricing plans for Pluralsight. You cannot purchase the labs separately. You need to subscribe to one of these plans to access the labs. | **Plan** | **Monthly Price** | **Annual Price** | | --------- | ----------------- | ---------------- | | Core Tech | $49/month | $449/year | | Complete | $29/month | $299/year | | AI+ | $29/month | $299/year | | Cloud+ | $29/month | $299/year | | Data+ | $29/month | $299/year | | Security+ | $29/month | $299/year | [Checkout PluralSight Labs](https://devopscube.com/recommends/pluralsight-free-trial/) > Pluralsight is not offering a free labs. 🎁 ****Note:** If you are planning to purchase, we have listed the [Pluralsight offers and discounts](https://devopscube.com/pluralsight-coupons-offers/) to help you save the maximum amount. ## 5\. Educative Labs Basically, [Educative](https://devopscube.com/educative-io-review/) is an online learning platform which is mainly for developers and tech professionals. This platform provides text-based and interactive courses, and most include built-in hands-on labs, playgrounds, and cloud environments where you can practice while you learn. [Checkout Educative Labs](https://devopscube.com/recommends/educative/) Its labs are specifically the parts where you get real, interactive environments to try code or work with cloud services without installing anything locally On Educative, labs aren’t a separate product, they are usually part of courses or cloud learning paths. Here are the most highlighted things you will get: - You can practice with **200+ real-world** and AI-enabled cloud projects. - You get easy access to serverless computing resources. - You can use the **Cloud Labs AI assistant** to troubleshoot issues. - You can also test your skills with cloud challenges. To access Educative labs, you need to choose the **Premium Plus plan**. The cost is **$19 per month**. Also note that it does not offer free access to labs. 🎁 ****Note:** Use [Educative.io coupon](https://devopscube.com/educativeio-coupon/) to get upto 70% off. ## 6\. Prepare.sh If you want to go beyond just reading concepts and actually perform real technical tasks in a live environment, Prepare.sh labs are another great option recommended by our team. Its focus is primarily on Devops/SRE interviews in top tier companies. [Checkout Prepare.sh Labs](https://prepare.sh/?ref=devopscube.com) It gives you an exact, interactive lab environment where you solve real problems on real systems in your browser ![Prepare.sh](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-60.png) You find the types of labs into categories such as DevOps Engineering, DevOps, Data Engineering, Data Analysis, Quality Assurance, Live Environments, and Roadmaps. There are **576+ interactive labs** available, from simple to complex tasks. Advanced content, labs, and projects may require a premium subscription. So, the premium subscription starts at **$30 per month**, but if you have luck, you will get upto **50% off**. However, most of the labs are free. In the table below, you will see the features included in Prepare.sh free labs. | Feature | What You Get | | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Interactive Hands-On Labs | • Practice real tasks and projects from beginner to advanced levels• Work with real development and DevOps environments• All labs run in your browser with no setup required | | Multiple Lab Categories | • DevOps labs covering CI/CD, containerization, cloud, and automation• Backend engineering and web service labs• Data engineering, QA, and data analysis labs | | Real Company-Style Interview Questions | • Questions and problems from real tech companies (Meta, Amazon, Google, etc.)• Practice solving interview-style challenges interactively | | Free Projects | • End-to-end project labs such as foundational DevOps projects• Build complete applications, containerize, deploy, and manage them | | Live Code Environments | • Each lab runs a live sandboxed environment for practice• No downloads or local setup needed | | Free-Tier Limits | • Some labs may be limited in access compared to premium content• Not all labs or advanced environments are free (premium badge incidcated paid labs) | ## 7\. AWS Skill Builder AWS Skill Builder Labs is a **cloud-based hands-on learning lab environment**, where you work directly with AWS services inside a sandboxed AWS console environment, without risking your own AWS account or bill. ![AWS Skill Builder](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-62.png) If you are learning [AWS](https://devopscube.com/reduce-github-actions-runner-cost/), you can read documents and watch videos all day. But unless you practice in a real cloud environment, it is hard to build real hands-on experience. So, practicing will help you remember things better and give you the confidence that companies actually look for. Most of the hiring managers are struggling to get real talent, so make this your real platform to **gain real-world work experience**. In this lab, you will get free access, or you can upgrade to full lab access for **$29/month**. Here are the paid plans and pricing of AWS Skill Builder. | **Subscription Type** | **Price** | | --------------------- | ---------------------- | | Free | Free | | Individual Monthly | $29 per month | | Individual Annual | $449 per year | | Team (Per Seat) | $449 per seat per year | [Checkout AWS Skill Builder Labs](https://skillbuilder.aws/?ref=devopscube.com) I have provided the features and details of what you will get in the free AWS Skill Builder labs. | Feature | What You Get | | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Free Hands-On Labs (Builder Labs) | • A curated set of around 10 foundational labs covering core AWS services like VPC, S3, EC2, IAM, Lambda, DynamoDB, CloudFront, API Gateway, KMS, etc.• Labs run in a real AWS sandbox environment without needing your own AWS account credentials.• Step-by-step guidance helps you build and test actual AWS resources. | | Learning Plans / Guided Curriculum | • Structured plans like the Introduction to AWS Cloud that combine labs with guided learning.• You can complete labs in any order and track your progress. | | Free Digital Courses | • Over 500+ free courses on AWS cloud fundamentals, services, and concepts.• Includes videos, quizzes, and knowledge checks. | | AWS Cloud Quest (Limited) | • Gamified cloud learning experience focusing on foundational skills like Cloud Practitioner. | | Free-Tier Limits | • Only basic labs are free, many hands-on labs require a paid subscription to unlock the full Builder Labs library.• Some advanced real environment labs are paid-only and require Skill Builder Individual or Team subscription• You must have an AWS account to access free labs and perform exercises in AWS sandbox. Limited access is subject to AWS account and Skill Builder availability. | ## 8\. SadServers SadServers is a browser-based, hands-on platform where you can practice real Linux and DevOps troubleshooting challenges. It gives you access to live servers with intentionally introduced problems that you need to investigate and fix, just like in real-world operations and interviews. In the video below, you can see how this platform works! 0:00 /0:30 1× Source: SadServers (How SadServers work) This platform is useful if you want to improve your debugging skills, build confidence solving real infra problems, and prepare for SRE, DevOps, or Sysadmin job interviews using practical scenarios. You will find real-world scenarios such as: - Fixing log flooding issues and service crashes. - Troubleshooting web servers, databases, or networking problems. - Solving Kubernetes or Docker workload issues, and more. The scenarios are divided into three levels, **Easy, Medium,** and **Hard**. Currently, there are 25 Easy scenarios, 57 Medium scenarios, and 15 Hard scenarios. ⚠️ ****Note:** To practice some of the scenarios, you have to upgrade to the ****pro** or ****pro+ plans**. I have shown some of these scenarios in the video below. 0:00 /0:14 1× SadServers Labs SadServers offers one free plan and two paid plans: **Hobbyist, Pro,** and **Pro+**. | Plan | Monthly Price | Yearly Price | | -------- | ------------- | ------------ | | Hobbyist | Free | Free | | Pro | $9/month | $72/year | | Pro+ | $11/month | $88/year | [Checkout SadServers Labs](https://sadservers.com/?ref=devopscube.com) Now, let’s look at what you get in the free plan. | Feature | What You Get | | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Free Scenarios | • Practice a selection of Linux & DevOps troubleshooting scenarios• Real challenges on live ephemeral servers with a browser terminal• Scenarios include incident troubleshooting, networking errors, and server misconfigurations | | Coverage of Skills | • Focus on real‑world Linux and DevOps debugging skills• Includes capture‑the‑flag style tasks to find and fix problems | | Progress Tracking | • Dashboard showing which scenarios you’ve completed• Track your progress through the free scenarios | | Free‑Tier Limits | • Limited number of free scenarios available (30+ of total 80; rest are Pro paid• Rate‑limited access, you can only run a few scenarios per day unless you upgrade • Free anonymous users have fewer scenarios than free registered users• Sessions are temporary, environments are destroyed when the scenario ends | ## Why DevOps Tutorials are not Enough? Following tutorials is not enough. Let me tell you why. Following DevOps tutorials feels productive. You learn commands, tools, and definitions. You are just following a structured guide where teaching is limited to implementation. But in DevOps interviews, the questions would be more from a troubleshooting perspective. You will be able to crack it only if you you hands-on practice by breaking systems or fixing broken systems. For example, lets say, a [Kubernetes pod ](https://devopscube.com/kubernetes-pod/)is running, but traffic is not reaching it. The Logs look fine, but users are still seeing errors. How do you troubleshoot it? or what is the first command you'd run to [debug a CrashLoopBackOff pod](https://devopscube.com/troubleshoot-kubernetes-pods/)? That is why you need hands-on practice so that you can answer these types of scenario-based questions. ## Conclusion In this guide, we have listed the top websites for learning DevOps scenarios using hands-on labs. We hope this guide helps you choose the right labs based on your preference. If you have any questions about the listed labs or want to suggest other labs you have worked on, please share them in the comments, and we will add them to this guide. ### List of 8 Best System Design Books For 2026 URL: https://devopscube.com/system-design-books/ Last updated: 2026-02-11T09:21:07.000Z Looking for the best system design books? This blog is for you. 2026 is the year of AI. There is so much advancements happening in software engineering, cloud and DevOps world. Generating code, configs and template are much easier than ever. However, system design is the key area that most organizations focus on. If you can design systems better, you will have an edge in interviews. It applies to SWE's, [DevOps engineers](https://devopscube.com/become-devops-engineer/), SREs and Platform Engineers. In this blog, I have listed the **System Design books for practical learning** for both beginners and professionals, and these books will help to clear the interview. 💡 If you are looking for course format, please checkout the [best system design courses](https://devopscube.com/system-design-interview-courses/). While learning portal like ByteByteGo, educative.io, exponent are great at system design, some of you may prefer reading a full book. If you are someone like that, this list if for you. Lets get started with the list. ## **1\. System Design on AWS** (Written by Jayanth Kumar and Mandeep Singh) ![O'Reilly best book on System Design on AWS ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-66.png) [System Design on AWS](https://learning.oreilly.com/library/view/system-design-on/9781098146887/?ref=devopscube.com) is an intermediate to advanced-level learning guide. You know that enterprises are building complex applications in the cloud face multiple challenges. So, figuring out the right tool for provisioning can be difficult. So, this practical book helps you decide which tool to use and how to fit them together effectively. [Start Learning Now](https://learning.oreilly.com/library/view/system-design-on/9781098146887/?ref=devopscube.com) In this book, you will learn the following: - You will learn the basics and best practices of system design - Learn about key [AWS](https://devopscube.com/aws-codecommit-tutorial-beginners/) services and their strengths and limitations for building large-scale systems. - You will examine engineering patterns and principles, which will support large-scale systems, and you will learn how to design architecture with scalability, operations, and resilience. - Learn about performant and cost-optimized architectures on [AWS](https://devopscube.com/reduce-github-actions-runner-cost/) and the tools and frameworks that are best for specific use cases. ## **2\. Acing the System Design Interview** (Written by Zhiyong Tan) ![O-Reilly best book on Acing the System Design Interview](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-67.png) [Acing the System Design Interview](https://learning.oreilly.com/library/view/acing-the-system/9781633439108/?ref=devopscube.com) is an intermediate to advanced-level guide and it is mainly for who want to crack the system design interview. While I was talking to System Design professionals, I got to know that clearing the interview is one of the hardest and challenging tasks. So, to ace the interview with practical knowledge, this book will definitely be helpful for you. [Start Learning Now](https://learning.oreilly.com/library/view/acing-the-system/9781633439108/?ref=devopscube.com) In this book, you will learn: - How to scale applications to support heavy traffic. - Learn distributed transactions techniques to ensure data consistency. - Learn about services for functional partitioning, such as [API gateway](https://devopscube.com/kubernetes-gateway-api/) and [service mesh](https://devopscube.com/service-mesh-tools/). - Learn common API paradigms, including REST, RPC, and GraphQL, - You will learn caching strategies, including their tradeoffs. - Logging, monitoring, and alerting concepts are critical in any system design. - Communication skills that demonstrate your engineering maturity. If you are now a reading person, it also has a video edition in a beginner-friendly manner. [Get the Video Edition Here](https://learning.oreilly.com/videos/acing-the-system/9781633439108VE/?ref=devopscube.com) ## **3\. System Design Guide for Software Professionals** ![O'Reilly best book on System Design Guide for Software Professionals ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-68.png) The book [System Design Guide for Software Professionals](https://learning.oreilly.com/library/view/system-design-guide/9781805124993/?ref=devopscube.com) is authored by Dhirendra Sinha, an Engineering leader at Google, and Tejas Chopra, a senior Software Engineer at Netflix and an educator. This book is best suited for software engineers, backend developers, and system architects who want to gain in-depth knowledge about scalable systems. [Start Learning Now](https://learning.oreilly.com/library/view/system-design-guide/9781805124993/?ref=devopscube.com) This book will help you to gain the following: - Learn an in-depth understanding of distributed system principles and techniques. - Learn about design strategies for scalable, efficient, and real-world software systems. - You will master the architecture behind popular applications like Uber and Google Docs. - You will definitely develop confidence in answering system design questions during tech interviews. - Get to know yourself with practical tools and frameworks for modern cloud systems. ## **4\. Machine Learning System Design** (Written by Arseny Kravchenko, Valerii Babushkin) ![O'Reilly best book on Machine Learning System Design ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-69.png) The [Machine Learning System Design](https://learning.oreilly.com/library/view/machine-learning-system/9781633438750/?ref=devopscube.com) book will help you learn how to deploy and design a [machine learning](https://devopscube.com/udacity-machine-learning/) end-to-end. At the end of this practical guide, you will get a good practical knowledge about a reliable framework for building, maintaining, and improving machine learning systems at any scale or complexity. [Start Learning Now](https://learning.oreilly.com/library/view/machine-learning-system/9781633438750/?ref=devopscube.com) In this book, you learn: - Learn about machine learning system design - Learn to analyze a problem space to identify the optimal ML solution - You will ace ML system design interviews - Learn to select appropriate metrics and evaluation criteria - You will learn how to prioritize tasks at different stages of ML system design - Learn to solve dataset-related problems with data gathering, error analysis, and feature engineering - Learn about recognizing common pitfalls in [ML](https://devopscube.com/kubernetes-ai-ml-features/) system development - Learn to design [ML](https://devopscube.com/deploy-ml-model-kubernetes-kserve/) systems to be lean, maintainable, and extensible over time ## **5\. Building Microservices: Designing Fine-Grained Systems** ![O'Reilly best book on Building Microservices: Designing Fine-Grained Systems](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-70.png) This book is for architects, developers, testers, and IT operators by author Sam Newman, with practical advice. You learn how the latest solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services work with real-world use cases. [Start Learning Now](https://learning.oreilly.com/videos/building-microservices-designing/9781663728203/?ref=devopscube.com) In this book, you will learn the following: - Stay up-to-date with the latest information on user interfaces, [container orchestration](https://devopscube.com/docker-container-clustering-tools/), and serverless [computing](https://devopscube.com/best-cloud-computing-certifications/). - Learn to align system design with your organization's goals. - You will explore options for integrating a service with your system. - You will learn how to independently deploy microservices. - Examine the complexities of testing and monitoring distributed services. - Learn about how to manage security with expanded content around user-to-service and service-to-service models. ## **6\. Designing Distributed Systems** ![O'Reilly best book on Designing Distributed Systems](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-72.png) The [Designing Distributed Systems](https://learning.oreilly.com/library/view/designing-distributed-systems/9781491983638/?ref=devopscube.com) book's author, Brendan Burns, is director of engineering at Microsoft Azure. He explains how you can adapt existing software design patterns for designing and building reliable distributed applications. [Start Learning Now](https://learning.oreilly.com/library/view/designing-distributed-systems/9781491983638/?ref=devopscube.com) In this practical book, you will learn the following: - Learn about how patterns and reusable components enable the rapid development of reliable distributed systems - Learn to use the sidecar, adapter, and ambassador patterns to split your application into a group of containers on a single machine. - Learn loosely coupled multi-node distributed patterns for replication, scaling, and communication between the components. - Learn about distributed system patterns for large-scale batch data processing, covering work-queues, event-based processing, and coordinated workflows. ## **7\. Frontend Architecture for Design Systems** ![O'Reilly best book on Frontend Architecture for Design Systems](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-74.png) The book **Frontend Architecture for Design Systems** includes real-world examples, case studies, and practical tips drawn from the real experiences of its author, Micah Godbolt. This is an intermediate to advanced-level book, and the skill you will learn is Software architecture. [Start Learning Now](https://learning.oreilly.com/library/view/frontend-architecture-for/9781491926772/?ref=devopscube.com) Also, he mentioned four pillars, which are code, process, testing, and documentation. - **Code:** Learn how to approach the HTML, CSS, and JavaScript of a design system. - **Process:** Learn about tools and processes for creating an efficient and error-proof workflow. - **Testing:** Learn to create a stable foundation on which to build your site. - **Documentation:** Explore tools for writing documentation while the work is in progress. ## 8\. Spring System Design in Practice ![O'Reilly best book on Spring System Design in Practice](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-75.png) The author of this book, Spring System Design in Practice, is a seasoned Software architect and educator with a huge experience in designing enterprise-grade applications using Java and Spring technologies. This book is best for software developers, and it will help to master modern web application development using Spring Framework and Spring Boot. So, you will learn clear explanations and real-world examples to design and implement scalable, resilient microservice architectures while writing clean and efficient code. [Start Learning Now](https://learning.oreilly.com/library/view/spring-system-design/9781803249018/?ref=devopscube.com) In this book, you will learn, - How to implement robust microservices for building scalable and maintainable applications. - Learn how to decompose business requirements into actionable technical deliverables. - Learn the techniques for improving software performance and reliability through effective design. - You will gain expertise in utilizing Spring components for achieving system architecture goals. - You can explore methods of achieving secure and asynchronous communication in distributed systems. ## Conclusion I have listed the top System Design Books to improve your skills and crack the interview. If you are looking for any specific book on System Design, please drop it in the comments, and I will list it out here. Happy Learning! ### Best DevOps Projects For Practical Learning URL: https://devopscube.com/devops-projects/ Last updated: 2026-02-05T11:57:25.000Z This blog is for you if you are looking for the best devops projects for learning and practice. It contains a curated list of **real-world DevOps project ideas** that will help you learn the concepts and well as gain experience with DevOps tools. As per [alliedmarketresearch](https://www.alliedmarketresearch.com/devops-market?ref=devopscube.com), the Devops market is projected to reach **$57.90 billion by 2030**, registering a CAGR of 24.2% from 2021 to 2030\. So, organizations need DevOps engineers with hands-on knowledge, and you need to demonstrate those skills The best way to **show your skillsets** is by working on real-world devops projects. All the projects listed in this blog based on real-world learning to gain hands-on experience. It includes the following. 1. Project Architecture 2. Project Workflow 3. Full Infrastructure source code in GitHub 4. Project Documentation All of these DevOps projects are structured to provide practical learning opportunities based on my **12+ years of experience** working as a cloud and DevOps engineer. > **Note**: It is a growing list. ## DevOps Projects Github Repository All the code for the projects listed in this guide is present in the Github DevOps projects repository. It contains all the CLI commands, configuration management codes, IaC codes, and much more. You can clone the repo using the following command. ``` git clone https://github.com/techiescamp/devops-projects ``` Here is how to get started. - Clone the GitHub repo - Choose a beginner project - Follow the checklist - Build an online portfolio - Share code on GitHub with README Now lets look at each project in detail. ## List of DevOps Projects For Learning (Hands-on) If you are a fresh graduate or an experienced person looking to start your DevOps journey, it is very important to learn the basics. 💡 ****Important Tip:** Stay curious with every project you work on. Even something as straightforward as setting up a simple web server can teach you ****key fundamentals** that play a big role in a DevOps engineer's daily work. With the right fundamentals in place, you can pick up and work with any DevOps tools much more easily. The following set of projects will help you learn some of the core IT fundamentals and DevOps real-world to help you prepare for [DevOps engineer](https://devopscube.com/become-devops-engineer/) interviews. ****Note:** You dont need to spend any money for the labs for theses projects. You can use vagrant based VMs locally or use ****$1000+ free cloud credits** on AWS, Google Cloud, Digital Ocean, Linode, Vultur etc ## Project 1: Setup a Static Website Using Nginx This project aims to help you learn to set up a static website using Nginx and configure DNS to make the website publicly accessible. | Project Tasks | Key Concepts Covered | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | | 1\. Buy a domain name from a domain registrar.2\. Spin up a Ubuntu server.3\. SSH into the server and install Nginx.4\. Download HTML website files.5\. Use SCP to copy files to Nginx directory.6\. Validate using server IP address.7\. Create an A record in DNS and point to Elastic IP.8\. Use dig to check DNS records.9\. Verify site via domain.10\. Create Let's Encrypt certificate and configure Nginx.11\. Validate SSL with OpenSSL. | 1\. DNS2\. Linux3\. Webserver4\. Nginx5\. Dig command6\. SSL (Let's Encrypt)7\. OpenSSL | Optionally you can try using a [self-signed SSL certificate](https://devopscube.com/create-self-signed-certificates-openssl/) to understand the difference between self-signed and trusted SSL certificates. ## Project 2: Setup Multiple Static Websites on a Single Server Using Nginx Virtual Hosts In this project, you will learn the concept of subdomains and hosting multiple websites on a single server using Nginx Virtual Host configuration. | Project Tasks | Key Concepts Covered | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | 1\. Create two subdomains 2\. Install and configure Nignx on a server3\. Create two website directories with two different website templates.4\. Configure the Virtual host to point two subdomains to two different website directories.5\. Add the IP of the server as A record to the two subdomains.6\. Validate the setup accessing the subdomains.7\. Create a wildcard Letsencrypt SSL certificate for the root Domain.8\. Configure wildcard SSL on Nginx for two websites.9\. Validate the subdomain websites' SSL using OpenSSL utility. | 1\. Subdomains2\. Nginx Virtual Hosts routing.3\. Wildcard SSL (Letsencrypt) | ## Project 3: Setup Load Balancing for Static Website Using Nignx This project aims to learn Layer 7 load balancing and load balancing algorithms using Nginx as a Load Balancer. | Project Tasks | key Concepts Covered | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | | 1\. Deploy three servers2\. Set up static websites on two servers using Nginx. Make a small change in the index.html file of one of the websites to differentiate between two servers.3\. Set up Nginx on the third server. It will act as a load balancer.4\. Configure Nginx to load and balance traffic between two static websites. 5\. Add the Nginx Load balancer IP to the DNS A record.6\. Try accessing the website. Every time you reload the website you should see a different index.html.7\. Try different Nginx load-balancing algorithms and options.8\. Understand L7 load balancing. | 1\. Load balancing2\. Load balancing algorithms4\. L7 Load balancing | ## Project 4: Setup WordPress Website Using LAMP Stack The aim of this project is to learn about Dynamic websites that use Databases. Here you will learn to work with a Relational Database, apache web server, and PHP language. | Project Tasks | Key Concepts Covered | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | | 1\. Deploy a Ubuntu server2\. Set up the LAMP stack on the server.3\. Configure WordPress Application4\. Map the IP address to the DNS A record.5\. Access the DNS and validate the WordPress website setup. | 1\. Basic Database setup and administration.2\. Setting up open-source PHP application. | DevOps basics can be learned by setting up a simple WordPress blog for yourself as shown in the following architecture. ![devops project to setup self hosted WordPress blog](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-39.png) Click to View in HD You can gain practical experience with the following: 1. **DNS records:** A, CNAME, MX, TXT, and more. 2. **Content Delivery Network:** Cloudflare. 3. **Web Server Configuration:** Apache. 4. **Reverse Proxy Configuration:** Nginx. 5. **Application configurations:** WordPress (PHP). 6. **Database Management:** MySQL. 7. **SMTP Settings:** for email delivery. 8. **Server/Data Backup:** WordPress Backup, MySQL Backup. 9. **Custom Domain Email:** Zoho Mail. Here's what it will cost you: **A Domain Name** \- you can get it for very cheap from Godaddy (\~$1) Everything else is free. You can then use the blog to publish your learnings. ## Project 5: Setup Service Discovery Using Nginx & Consul [Service discovery](https://devopscube.com/service-discovery-explained/) is an important concept every DevOps Engineer should learn. It is the concept of discovering service information in real time. It involves a centralized service registry that maintains information about available services Service discovery is of two types 1. ✅ 𝗖𝗹𝗶𝗲𝗻𝘁 𝗦𝗶𝗱𝗲 𝗦𝗲𝗿𝘃𝗶𝗰𝗲 𝗗𝗶𝘀𝗰𝗼𝘃𝗲𝗿𝘆: In this model, the request goes to a service registry to get the information available for backend services. For example, an application connects to a service registry to get information about the database endpoint. 2. ✅ 𝗦𝗲𝗿𝘃𝗲𝗿 𝗦𝗶𝗱𝗲 𝗦𝗲𝗿𝘃𝗶𝗰𝗲 𝗗𝗶𝘀𝗰𝗼𝘃𝗲𝗿𝘆: In this model, the request goes to a load balancer and the load balancer uses the service registry to get the information of the backend servers. The example is shown in the image. If you implement this project, it will serve as a solid foundation for all the service discovery-based implementations on both VM and container-based implementations. ![Devops project to learn service discovery concepts using consul](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-19-22.png) Click to View in HD To understand service discovery practically, the consul service discovery integration with Ngnix will be great start. You will learn how the the concept of service discovery work. **Project Documentation:** [Consul Service Discovery for Nignx](https://devopscube.com/service-discovery-example/) 💡 Service Discovery is a key concept in Kubernetes. If you look at the [Kubernetes architecture](https://devopscube.com/kubernetes-architecture-explained/), the component named etcd plays a key role in kubernetes service discovery. ## Project 6: Create an API Based Application Programming is a requirement for DevOps engineers now. Be it for implementations or interviews, it is a must-have knowledge. One way to **develop an interest in learning** programming is by developing sample web applications. During each module completion, you will have a sense of satisfaction, and your confidence level to learn programming will improve. My suggestion would be to develop an API-based application using Python Flask or FastAPI to practically understand REST APIs, database connection configuration, and a little bit of UI (HTML & Javascript) ## Project 7: Design a AWS VPC Based on Application Architecture. Every DevOps engineer should have a good understanding of cloud networking. In most organizations, the VPC is managed by the central network team. However, DevOps engineers need to work with those teams to create the required networks for projects by providing all the network details. The best way to learn cloud networking is by designing and implementing it practically. In this project you will use a sample application infrastructure architecture to design a AWS VPC with standard best practices that includes most of the AWS VPC concepts. | Project Tasks | Key Concepts Covered | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | | 1\. Understand VPC Requirements2\. VPC Network Design3\. Subnet Design4\. VPC Documentation5\. Route Table Design6\. AWS VPC Topology7\. Network ACLs8\. VPC Endpoints | Creating VPC design based on application infrastructure architecture | **Project Documentation:** [Design AWS VPC](https://devopscube.com/aws-vpc-design/) ## Project 8: Deploy Scalable Java Application on AWS Cloud In this project, you will learn to build and deploy a Java application on the AWS platform. **Project Code:** [Scalable Java Application on AWS Code](https://github.com/techiescamp/devops-projects/tree/main/03-scalable-java-app?ref=devopscube.com) | Project Tasks | Key Concepts Covered | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1\. Build a Java application2\. Use Packer & Ansible to build the AMI With application code, cloudwatch agent for application logging, prometheus JMX exporter for application metrics, and consul agent to register service information. 3\. Use Terraform to provision MySQL RDS instance and to store the MySQL username and password in the AWS secrets manager4\. Provision Load Balancer5\. Provision Autoscaling Group with Launch template that uses AMI built by packer and attaches it to Loadbalancer.6\. In the ec2 user data use the boto3 script to retrieve the RDS password in realtime that could be used by the application.7\. Verify the application by accessing it using the Load Balancer endpoint.8\. Verify application logs in Cloudwatch9\. Verify application metrics in Prometheus.10\. Test application autoscaling11\. Creating monitoring dashboards on Cloudwatch. | 1\. Java application build.2\. [Immutable infrastructure ](https://devopscube.com/immutable-infrastructure/)model for java application3\. [AWS cloudwatch custom logging](https://devopscube.com/how-to-setup-and-push-serverapplication-logs-to-aws-cloudwatch/)4\. AWS Autoscaling5\. AWS Loadbalancer6\. AWS secrets manager.7\. IaC using Packer, Terraform and Ansible.8\. Consul for service discovery9\. Prometheus for application monitoring | Here is the high-level application architecture. ![DevOps Project to deploy a scalable java application on AES.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-18-29.png) Click to View in HD ## Project 9: One-Way and Mutual SSL/TLS Implementation The Idea of this project is to learn the concepts of oneway and mutual SSL/TLS implementations. For practical learning, you can start with One Way SSL Only the server must have a digital certificate in One-way SSL to establish a secure connection. 1. Deploy an Nginx website over a valid domain name. 2. Next, you can set up Let's Encrypt SSL, a certificate authority that provides free SSL/TLS certificates. 3. You can also set up a wildcard domain and configure Let's Encrypt to understand wildcard DNS and SSL. Another concept to learn is Mutual TLS, which is common in most distributed systems. For example, Kubernetes components interact via mTLS. Also, you will encounter this concept in server mesh implementations. mTLS (Mutual TLS) is a security protocol that allows both client and server to authenticate each other using certificates. To learn Mutual TLS, you can generate client and server certificates using [OpenSSL](https://devopscube.com/create-self-signed-certificates-openssl/). Next, you can create a simple Python Flask API that requires SSL and a client program that makes a request to the Flask API using its certificates. Finally, you can verify that the request succeeds and that the client and server exchange SSL/TLS certificates. ![devops project to learn one way and mutual SSL/TLS](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-30.png) Click to View in HD ## Project 10: Setup Client to Site VPN on AWS Most devops engineers work in cloud environments. One of the key requirements in such environments is **VPN connectivity** to access the cloud resources securely. Organizations typically use **site-to-site VPN** connectivity. However, for learning purposes, we can set up a **client-to-site VPN** on AWS and understand all the key concepts involved. ![AWS managed client VPN solution project](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/05/image-96.png) We have created a mini project to learn the client-to-site VPN setup using AWS managed client VPN solution. **Project Documentation:** [AWS Client VPN Endpoint Setup](https://devopscube.com/aws-client-vpn/) ## Project 11: Setup VPN on AWS Using Pritunl Small to medium businesses who wants to cut costs on VPN setup for AWS always used custom solutions like Pritunl. Pritunl is a a fast, reliable client to site VPN solution used by many organizations and startups. ![VPN on AWS ec2 Using Pritunl](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/05/image-95.png) By setting up this project, you will learn to manage custom self-hosted client to site VPN solution and associated protocols. **Project Documentation:** [VPN Setup using Pritunl](https://devopscube.com/setup-pritunl-vpn-on-ec2/) ## Project 11: Deploy Prometheus Stack Using Docker Compose The idea of this project its to put your Docker knowledge in to a hands on project. The project aims at implementing the following concepts. 1. Infrastructure as Code using Terraform 2. Multi-Container Deployments using Docker Compose 3. Monitoring & Alerting using Prometheus Stack ![Prometheus Stack Using Docker Compose project](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-113-9.png) Click to View in HD You will learn the following from the project. 1. Provision an ec2 server using well-structured Terraform code. 2. Deploy prometheus, Alert Manager, Node Exporter, and Grafana as Docker containers using Docker Compose. 3. The project also makes use of Shell script and Makefile. **Project Documentation:** [Setup Prometheus Stack & Grafana Using Docker](https://devopscube.com/setup-prometheus-using-docker/) ## Project 12: Set Up AWS Route 53 Private Hosted Zone Setting up a Private Hosted zone on AWS **Route53** will help resolve DNS resolution within the VPC. This project aims to access the production applications using DNS names on the private VPC subnets. ![Private Route53 Hosted DNS workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image.png) You will learn the following from the project. 1. What is a Route53 Private Hosted Zone? 2. Setup of the Private Hosted zone on Route53 3. VPN connection to pass the DNS settings to the local workstation. 4. Setup of DNS for a sample web application. **Project Documentation:** [How to Set Up AWS Route 53 Private Hosted Zone](https://devopscube.com/route53-private-hosted-zone/) ## Project 13: Set Up Self Hosted Kubernetes Cluster Anyone who wants to gain experience in Kubernetes should build a self-hosted cluster from scratch. You can do it in any cloud platform. This way, you can work with the networks, firewalls and other cloud features as part of the setup. We have a video walkthrough of setting up self-hosted cluster. For this project you can make use of that video for learning. **Project Documentation:** [Set Up Kubeadm Cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) ## Upcoming List Details and breakdowns for the following projects will be added soon. 1. Complete Docker Image Build Pipeline 2. Implement Forward Proxy on Cloud using Squid Proxy. 3. Secret Management With Hashicorp Vault 4. Terraform With AWS 5. End-to-end application Deployment on Kubernetes 6. GtiOps With ArgoCD on Kubernetes 7. Entire CI/CD setup for application deployments on Kubernetes ## High-Impact Project Recommendations We get this question from the DevOps community. *What high-impact DevOps projects help candidates stand out in interviews?* As you might know, the DevOps industry is very competitive in 2026\. You should demonstrate practical application of the required skills. Your projects should showcase solving real enterprise challenges using Devops hands-on projects. Here is the list of DevOps portfolio projects that you can use in your resume. ### Project 01: Build Autonomous Self-Healing Environment Build Kubernetes setup that uses AIOps capabilities to monitor the application health. The system should automatically trigger an ArgoCD rollback when error rates exceed a threshold. ### Project 02: Internal Developer Portal with Scaffolding Setup a Backstage portal (IDP) and create a deployment template. Here is what the template should do. Whenever a devops engieer or a developer uses the template, it should provision a Github repo, CI/CD pipeline (Github workflow), and provision a managed database instance (Eg RDS) via Crossplane. ### Project 03: Enterprise RAG Pipeline for Documentation Build a system that ingests a Kubernetes documentation into a vector database (Eg: Pinecone). (Ideally this would be enterprise documentation's) Create a frontend app with chat interface integrated with LLM (deployed via Kubeflow) to answer Kubernetes specific questions for engineers. ### Project 04: Automated FinOps Governance Agent Create a Python based app that monitors cloud spend across multiple cloud accounts. If an account exceeds its daily forecast, the script should identify the top cost-drivers, scan for un-tagged resources, and send an automated breakdown to the team's Slack channel. ### Project 05: Zero-Trust CI/CD Pipeline Design a CI/CD pipelin using Github actions or Jenkins that generates an SBOM for every Docker build, signs the container image. The deployment pipeline should use OPA Gatekeeper to ensure that only signed images from verified registries can be deployed to a Kubernetes cluster ## Why should You Work on DevOps projects? One of the problems faced by aspiring devops engineers is a lack of hands-on knowledge doing DevOps projects. Often, it becomes a big hurdle in getting a DevOps engineer role or moving into a different domain in DevOps itself. You can overcome this issue by working on real-devops hands-on projects. It will help you gain experience with DevOps tools, infrastructure design, and troubleshooting. Moreover while working on projects, you will be able to apply and gain an understanding of Linux, scripting, and other fundamental devops concepts. This way you can confidently attend DevOps interviews. ## FAQ's ### What is the best way to use this project list? If you are getting started with DevOps, start with beginner projects to get good at fundamentals. Then move to intermediate and advanced. ### How do I show these projects to employers? The best way to showcase your projects is by building a portfolio website with project screenshots and GitHub links. This gives employers proof of your skills and shows you can organise work like a real engineer would. ## Conclusion The best way to learn DevOps is by doing practical projects. The idea is to understand the core fundamentals of each implementation. Even though the implementation could differ from organization to organization, the underlying concepts, workflows and best practices remain the same. In DevOps interviews, companies expect real-world project experience with tools. However, if you have strong hands-on knowledge of the tools through learning projects, even without project experience, they might give you a change. Also, this blog will be constantly updated with more project workflows for real-time learning and production scenarios. If you have any questions, do drop it in the comment below. ### What is a Vector Database? A Complete Guide with Comparisons URL: https://devopscube.com/vector-database-explained/ Last updated: 2026-01-29T05:45:01.000Z In an earlier blog [**embeddings**](https://devopscube.com/what-are-embeddings-in-ai/), we explored how text, images, and unstructured data can be turned into vectors using models like BERT, CLIP, or OpenAI Embeddings. These vectors help capture the meaning behind the data. But once you create these vectors, you need a place to store them and a fast way to search through millions of them. That's where a **vector database** becomes important. In this blog, you will learn, - What a vector database - How it works and the key features - How popular vector databases compare - Real-world use-cases - Common challenges and best practices for production ## What is a Vector Database? A vector database is a special type of storage system designed to store and search embeddings. Embeddings are nothing but a numerical representation of text, images or audio. These embeddings capture the meaning behind the data, not just the words. Now the key questions. *Why do we need a Vector database? What does it actually solve?* When we build AI systems, matching exact words is not enough. We want the system to understand meaning. Traditional keyword-search fails when the words change but the intent stays the same. That's where **embeddings** and **vector databases** help. The following image illustrates the vector database workflow. ![Architecture diagram explaining the vector database workflow](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/vector-db.png) **Why traditional databases don't work?** Databases like [SQL](https://devopscube.com/sql-for-data-science/) ([MySQL](https://devopscube.com/install-mysql-operator-on-kubernetes/), [PostgreSQL](https://devopscube.com/deploy-postgresql-statefulset/)) or NoSQL ([MongoDB](https://devopscube.com/deploy-mongodb-kubernetes/), [DynamoDB](https://devopscube.com/setup-terraform-remote-state-s3-dynamodb/)) are great for structured data such as user IDs, product names or order details. They work great for simple queries like: ```sql # Fetching all orders where status = 'pending' SELECT * FROM orders WHERE status = 'pending' # Listing all users from city='Bengaluru' SELECT * FROM users WHERE city ='Benguluru' ``` But they fail when you ask something like: ```text Show me all support tickets similar to "I don't have an account" ``` This is where traditional databases struggle because they store plain text and querying such is not possible. On the other hand, embeddings solve this by turning text into vectors, for example: ``` "I forgot my password" -> [0.23, -0.15, ....., 0.53] "I don't have an account" -> [0.54, 0.64, ...-0.34, 0.25] ``` Now we can measure how close these two vectors using [cosine similarity](https://en.wikipedia.org/wiki/Cosine%5Fsimilarity?ref=devopscube.com) or [Euclidean distance.](https://en.wikipedia.org/wiki/Euclidean%5Fdistance?ref=devopscube.com) **Closer vectors = more similar meaning.** With ****Cosine similarity**, we check the angle between vectors. For example: A = \[1, 1\], B = \[2, 2\]. `Cosine = A.B/(|A| X |B|) = ` *`4`*`/(`√`2 X 2*`√`2) = 4/4 = 1` The angle is 0°, so cosine similarity = 1 → meaning they are very close in meaning. With ****Euclidean distance**, we measure the straight-line gap. For example: A = \[1, 1\], C = \[5, 5\]. `Euclidean distance = √((5–1)² + (5–1)²) = √32 ≈ 5.65`, Traditional SQL/NoSQL systems are **not built to search millions of vectors** efficiently. Even if you store them, the search becomes extremely slow. That's why vector databases exist. They are optimized to store embeddings and find similar vectors quickly. Now let's look at how they work. ## How do Vector Databases Work? Vector databases are built to store and search through embeddings. It stores the embeddings in long lists of vectors that represent meaning. Here's how they work in simple steps: ### Convert text into embeddings First, an AI model like [OpenAI Embeddings](https://platform.openai.com/docs/guides/embeddings?ref=devopscube.com) or BERT converts your sentence into a vector. Example: "I can't access my account" can convert to `[0.12, 0.89, -0.44, ..., 0.34]`. ### Store the vector with metadata Each vector is saved along with the original text and extra info like category, date, or user ID. A typical record looks like: ```json { "id": "ticket_12345", "vector": [0.12, 0.89, -0.44, ..., 0.45], "content": "I can’t access my account", "metadata": { "category": "support", "language": "English", "date": "2025-07-23", "user_id": "u_9876" } } ``` This helps filter results later like searching only with billing tickets from 2025. For example: `category = "billing"` and `date > 2025-01-01` when you search. ### Find similar vectors When user ask question, the query also goes through embedding model and convert to vectors. The database then compares your query vector to stored ones using similarity measures like cosine or Euclidean distance. Also you can optimize vector databases by, - **Indexing:** Searching millions of vectors is slow, so vector databases use clever indexing tricks to make it fast, often in milliseconds. - **Filters:** You can combine vector search with filters like `category = "support"` or `date > "2024-01-01"`. This is called hybrid search. - **Rank results:** The database gives you the closest matches. Some systems re-rank them using business logic like showing newer results first. ![This is a code snippet showing a hybrid search workflow for a vector database](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-86-1.png) ## Key Features of Vector Databases Let's look at the features that make vector databases powerful for real-world AI systems. ![Features of vector DB](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/vdb2.jpg) A visual summary of the five key capabilities of Vector Databases ### Fast Similarity Search Vector databases don't scan millions of records one by one. They use smart shortcuts (like ANN algorithms) to quickly find similar items, saving time and computer power. ### Hybrid Search with Filters It is a combination of vector search with filters. Example: "Find tickets similar to 'I was overcharged' but only from billing after Jan 2025" This helps you get relevant results that also match your business rules. ### Smart Indexing for Speed To make searches faster, vector databases organize data using different methods: - **IndexFlatL2** \- The most basic way. Checks every vector one by one. Accurate but slow if the data is huge. - **IVF (Inverted File Index) -** Think of it like searching in a library. Instead of checking every book, it only looks at the right section. - **HNSW (Hierarchical Navigable Small World) -** Uses a graph to jump quickly between similar items. - **PQ (Product Quantization) -** Compresses vectors to save memory and speed things up. ### Horizontal Scaling As data grows, one server is not enough. Modern vector databases like **Weaviate, Qdrant,** [**Pinecone**](https://docs.pinecone.io/guides/get-started/overview?ref=devopscube.com)**,** and **Milvus** are designed for distributed scaling across multiple machines. They support: - **Sharding:** Splits data into chunks. - **Replication:** Keeps backup copies. - **Autoscaling:** Adds more power when needed. - **Streaming:** Updates data in real-time. ### Integration with AI Tools Modern vector databases easily integrate with AI frameworks. They work natively with: - LangChain and LlamaIndex for chatbots. - Hugging Face, OpenAI embeddings for embeddings. - [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/), [Docker](https://devopscube.com/what-is-docker/) for deployment. ## Popular vector databases The vector databases **market is expanding quickly**, with analysts predicting it could [**grow 4–8X in about a decade**](https://www.marketsandmarkets.com/PressReleases/vector-database.asp?ref=devopscube.com) The following table shows some of the popular vector databases with their use cases. | Vector Database | Description | Ideal use-case | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | | FAISS | Developed by Facebook, it is an open-source library for in-memory indexing and fast similarity search. | Best for local setups, experimentation, and research environments. | | Pinecone | Fully managed cloud-native vector database with built-in scalability and production-ready APIs. It handles sharding, replication and indexing automatically. | Best for production-ready systems, semantic search engines and recommendation systems where uptime and scalability are key. | | Weaviate | An open-source and cloud-hosted vector databse built for hybrid search and supports GraphQL and REST APIs. | Ideal for hybrid search with metadata filtering and semantic similarity search. Perfect for document search and RAG chatbots. | | Qdrant | An open-source vector databases known for its speed and efficiency. It supports real-time filtering, payload based search and Docker/Kubernetes deployments. | Best for self-hosted environments and applications needing fast filtering, like chatbots, personalization engines, or recommendation APIs. | | Milvus | An enterprise-grade vector dtabase that supports horizontal scaling. | Ideal for large-scale enterprise AI systems, multi-modal search (images + text), and production clusters with petabytes of embeddings. | ## Choosing the Right Vector Database Now the key question. ***Which vector database should you choose?*** With so many options, picking the right database can be confusing. Choosing the right tool early saves time, money and rework. The short answer is, choosing the right vector database **depends on your project size, budget**, and whether you need cloud scaling or local experimentation. ![A quick reference guide mapping use cases to recommended Vector databases](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/vdb-1.jpg) When to use vector database? Here is my two cents in choosing a vector database. - For **startups** or MVPs,go with **FAISS** or **Qdrant** (self-hosted). They are simple, lightweight and open-source. - For **enterprise** applications, **Milvus** is strong and reliable choice. - For **cloud scalability**, consider **Pinecone** and **Weaviate**. They are great for fully-managed services with built-in support. - For **heavy filtering** needs, **Qdrant** and **Weaviate** work best because they handle metadata filters very well. Now that you have a good understanding of vector databases, the following question naturally arises. *But which industries are actually using vector databases?* Let’s look at that in the next section. ## Real-World Use Cases Vector databases are used across industries to power smarter search, recommendations, and AI assistants. Lets look at some of the real world examples. ### 1\. eCommerce & SaaS **Shopify** and **eBay** use[**Pinecone**](https://www.pinecone.io/?ref=devopscube.com)to improve product search and recommendation engines. It helps customers find what they need faster, even if they don't use exact keywords. **Notion** uses Pinecone to help users find notes and documents quickly using natural language. It helps users search the workspace like you talk, no need to remember exact titles. ### 2\. Media & Content Search **Netflix** uses [**FAISS**](https://ai.meta.com/tools/faiss/?ref=devopscube.com) (Facebook AI Similarity Search) to search through millions of videos and images quickly. They built their own infrastructure to make it work at scale. It helps recommend similar shows or scenes based on visual or semantic similarity. ### 3\. Enterprise Search & Data Integration [**Weaviate**](https://weaviate.io/?ref=devopscube.com) helps companies like **SOS International** and **Synology** build semantic search systems. Employees can find relevant documents even if they don’t know the exact phrasing. **Weaviate** also works with **Snowflake**, so teams can search directly inside their data warehouses. This way there is no need to move data, search happens where your business data already lives. ### 4\. AI Assistants & Chatbots [**Qdrant**](https://qdrant.tech/?ref=devopscube.com) is trusted by **Microsoft**, **HP**, **Disney**, and **Mozilla** for fast vector search. t powers smarter chatbots that understand user intent and give better answers. **Qdrant** is often used in **RAG chatbots** and AI-powered search tools with frameworks like **LangChain** and **LlamaIndex**. These tools help build AI systems that can pull in relevant facts while chatting. 💡 Adding a vector database to an existing system isn't always plug-and-play. It takes planning, integration, and testing to get it right. Now that we have seen how companies use vector databases in the real world, let's look at the common challenges teams face and the best practices to handle them. ## Challenges and Best Practices Even though vector databases are powerful, they come with a few challenges. Here are the most common ones and how to handle them in simple, practical ways. ### Handling Vector Drift Over Time When embedding models change or get updated, old vectors may no longer match new ones. Keeping vectors consistent ensures your search results stay accurate. Best practice is to: - **Tag vectors** with the model version used. - Test search **accuracy** regularly. - **Re‑index** your data when switching models or when results start to degrade. ### Managing Cost and Latency Large datasets and frequent queries can get expensive, especially if every search calls an LLM. So smart optimization keeps your system fast and affordable. Best practice is to: - Use **batch indexing** to reduce processing costs. - Add a **cache** to store common queries so you don’t recompute them. ### Balancing Relevance and Business Logic Semantic similarity alone isn't enough for businesses needs. With filtering, you get results that are not only relevant but also aligned with real business needs. Best practice is to: - Use **hybrid search**: vector similarity + metadata filters. - **Re‑rank** results using both meaning and business rules. ## Conclusion Vector databases are changing the way we build AI systems. They help apps understand meaning, not just exact words, whether you are building a chatbot, a search tool, or a recommendation engine. They don't just store vectors. They let you search, filter, and manage them at scale. When you choose the right database and follow good practices, you get fast, accurate, and cost‑efficient AI search. As AI continues to grow, vector databases will become a normal part of modern tech stacks just like SQL databases are today. In fact, in a recent project implementation, **we used a vector database for a RAG solution** to search internal DevOps documentation effectively. I will cover the full RAG implementation workflow in a separate hands-on blog. Over to you! Are you planning to use any Vector databases? Do you think you have use cases where Vector databases would be a right fit? Let us know your thought in the comments below. ### What is Azure DevOps? (Beginners Guide) URL: https://devopscube.com/what-is-azure-devops/ Last updated: 2026-01-28T02:59:01.000Z In this blog, you will learn how to start working in Azure [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) in a step by step manner. In this beginner's guide, you will learn the following. 1. What is Azure DevOps? 2. Components of Azure DevOps 3. Advantages of Azure DevOps 4. Set up of Azure DevOps Organization and Project Let us start by looking into what Azure DevOps is. ## What is Azure DevOps? [**Azure DevOps**](https://azure.microsoft.com/en-us/products/devops?ref=devopscube.com) is a **Software as a Service (SaaS)** and is part of the Azure Cloud. It provides a set of tools to manage the entire software lifecycle, from planning to deployment. It is similar to [GitLab CI/CD.](https://devopscube.com/gitlab-architecture/) Now, we can move to the components of Azure DevOps. ## Components of Azure DevOps If you want to get started with Azure DevOps, you should know about the following key components. The following image illustrates the workflow of how these Azure DevOps components align the entire software development lifecycle. ![Azure DevOps Architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-80.png) Let us start by knowing about the Azure Boards, where all the work begins. ### **1\. Azure Boards** This service is to plan the project and work in the Agile method, like organizing tasks, features, bugs, etc, similar to Jira boards. ### **2\. Azure Repos** This is for storing our code in central private storage and is a version control system, similar to GitHub, BitBucket, etc. ### **3\. Azure Pipelines** This service is to automate the building, testing, and deployment of our application, similar to CI/CD tools like Jenkins, GitHub Actions, etc. ### **4\. Azure Test Plans** This is for creating test cases and tracking them for the project. ### **5\. Azure Artifacts** It is a private storage to store our software packages and libraries for our application. These are the components of the Azure DevOps. In the next section, we can look into the difference between Azure DevOps Server vs Service, where most of them get confused initially. ## Azure DevOps Server vs Azure DevOps Service Azure DevOps Server is designed to run the full Azure DevOps service **on your own servers.** It is suitable for organizations that want to [**run Azure DevOps on-premises**](https://learn.microsoft.com/en-us/azure/devops/server/install/single-server?ref=devopscube.com) due to strict security and compliance requirements. On the other hand, the Azure DevOps service is managed by Microsoft, so we do not have to worry about the underlying infrastructure. All the resources and servers will be managed by Microsoft. In the next section, we will look at why you might choose to use Azure DevOps. ## Advantages of Azure DevOps The main advantage of Azure DevOps is that you can manage the entire software lifecycle in one place. This includes planning, coding, testing, and releasing the software. Another benefit is that you do not need to manage the infrastructure yourself, because it is handled by the Azure cloud. Let us look at some more advantages: - The whole team can track progress in one tool instead of using separate tools. You can use Scrum or Kanban boards to manage work. - You can set up the full [CI/CD process ](https://devopscube.com/learning-ci-cd-tools/)(build and deployment) in a single place. - Azure DevOps works well for both small teams and large organizations. In the next section, we will see how to get started with Azure DevOps by creating an Azure DevOps organization and a project. ## Azure DevOps Initial Setup Here, we cover the initial setup of the Azure DevOps, which includes the following. 1. **Organization Creation** 2. **Project Creation** The first step is creating an Azure DevOps organization. ### Create an Azure DevOps Organization An organization in Azure DevOps refers to the top-level workspace where all our projects and teams are managed. Inside an organization, we can manage - Users - Permissions - Billing - Authentication (e.g., Azure Active Directory (AAD)) To create an organization, first, we need to reach the Azure DevOps console. Azure DevOps is a dedicated page that you can directly reach from the Azure Cloud itself. In Azure Cloud, search for Azure DevOps. ![selecting the azure devops organization from the azure cloud](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-264.png) On the next page, select the `My Azure DevOps Organizations` to reach the Azure DevOps page. ![selecting the my azure devops organziation to navigate to the organziation creation page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-265.png) Now, you will be in the Azure DevOps page, where you will get an option to create an organization. ![the azure devops organization creation page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-266.png) On the next page, you will be asked to give a name for the organization. Once the organization creation is completed, we can start creating projects. ### Create an Azure DevOps Project A project in Azure DevOps is an isolated workspace to manage our application code, [pipelines](https://devopscube.com/setup-self-hosted-runner-azure-devops-pipeline/), artifacts, and other related items. Projects can only be created inside an organization, and one or more projects can be created in a single organization. To create a project, go to the organization console, select an organization where you want to create the project, and click "New Project" to create a new one. ![the project creation from the azure devops organization console.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-42.png) On the next page, give a name and description for your project, then click the "Create Project" button to complete the project creation. ![filling the azure devops project creation form](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-43.png) Once the project is created, we can see the project home page, similar to the following. ![the azure devops project dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-44.png) Now, we are ready to upload the application code and automate the application build, test, and deploy. ## Conclusion This is a beginner’s guide to help you get started with Azure DevOps for your projects. In the upcoming blog posts, we will cover integrations and how to set up pipelines. ### How to Setup Self Hosted Linux Runner for Azure DevOps Pipeline? URL: https://devopscube.com/setup-self-hosted-runner-azure-devops-pipeline/ Last updated: 2026-01-23T07:06:28.000Z In this blog, you will learn how to set up a **self-hosted linux based runner** for **Azure DevOps** pipeline. By the end of this blog, you will learn 1. What is a self-hosted runner? 2. How to set up a self-hosted Linux runner in Azure DevOps? 3. How to test self hosted runner in Azure DevOps? 4. Best practices for self-hosted runners. Before we begin the setup, lets understand what is a self-hosted runner in Azure. ## What is a Self-Hosted Runner ? [Self-hosted runners](https://devopscube.com/github-actions-runner-aws-eks/) are servers or containers that we manage to run our Azure DevOps pipeline tasks. **Self-hosted** means we control the environment where the pipeline runners execute. This setup is typically used for **production-level projects**, where we need more control over security, performance, and dependencies. The following can be a self-hosted runner. 1. Virtual machine 2. Physical server 3. [Container](https://devopscube.com/what-is-a-container-and-how-does-it-work/) 4. [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) **Organizations generally use self-hosted runners** because they can control performance, cost, security, networking, compliance, and other aspects. By having control over the runners, you can install all required security tools, logging agents, build tools, and packages that are needed to meet the **organization’s compliance requirements.** 💡 For production use cases, it is recommended to use self-hosted runners inside the organization’s network. This helps avoid data exposure and allows secure access to internal resources. ## Setup Prerequisites The following are the requirements to setup a self hosted runner. 1. Azure DevOps account with required permissions 2. Azure DevOps project with a pipeline. 3. A virtual machine (e.g., [AWS EC2](https://devopscube.com/reduce-github-actions-runner-cost/), Azure VM, etc) 📌 In this setup we are using an Azure Ubuntu 24.04 VM as the runner. ## Setting Up an Azure DevOps Self-Hosted Runner Here, we are going to use a virtual machine as a runner. Assuming you already have an Azure VM ready. Now, we can start with the Personal Token creation. ### Step 1: Generate a Personal Access Token (PAT) The runner needs a Personal Access Token (PAT) to authenticate with Azure DevOps. To create a PAT, open **Azure DevOps** \--> login to the Azure DevOps **organization** \--> Select **Project**. On the project console, click the user icon on the right side corner and select the "**User settings**" ![selecting azure devops project user setting to create a PAT](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-195.png) Select the "**Personal access tokens**" option to create a new one. ![selecting pat of azure devops project](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-183.png) Click the "**\+ New Token**" button. ![creating a new pat for the self hosted runner](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-184.png) On the creation section, you need to provide a name for the PAT, select the organization, expiration date, and the permission level. 💡 Here, in the scope, I am giving full access, but in real projects, select "****Custom defined**" and only give the least privileges. ![setting permission for the pat](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-185.png) Once the creation is completed, you will see a success message and have a warning to save the generated PAT. ![the generated pat for the azure devops self hosted runner](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-186.png) By default, the PAT will not be stored anywhere, so before closing the window, store the PAT. In the next section, we will configure the runner. ### Step 2: Create an Agent Pool on the Azure DevOps Project. To configure the project-level runner, go to **project settings** and select the "Agent pools" then click the "Add pool" button. ![the pool creation for the azure devops self hosted runner](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-188.png) On the agent pool form, select the pool link as "New" and select the pool type as "Self-hosted", give a name, and select the permission, then click the "Create" button to create the new pool. ![filling the pool creation form for the azure devosp pipeline](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-189.png) 💡 If you are not sure about the pipeline workload, you can choose the "****Azure virtual machine scale set**". So that the number of VMs will automatically scale up and down based on the workload. Select the created pool to add the agents. ![selecting the created pool to add the agents](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-190.png) 💡 We can even create an organization-level runner in Azure DevOps from the Organization settings. These runners can be used for all projects across the organization. ### Step 3: Create Agent in Azure DevOps Project Once open the pool, click the "**New agent**" to start the configuration. ![creating agent inside the pool](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-191.png) The next page will give you the instructions and commands to run on the server to turn it into a runner. ![the instructions and command to change the vm as runner](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-195.png) Here, I have selected the Linux OS because, we are going to use the Ubuntu server. Before we execute the commands on the virtual machine, we need the following prerequisites. 1. Server URL - E.g., `https://dev.azure.com/` 2. PAT 3. Agent Pool name Now, [SSH](https://devopscube.com/generate-ssh-key-pair/) to the virtual Machine. Create a directory ```bash mkdir myagent && cd myagent ``` Download the runner setup package ```bash wget https://download.agent.dev.azure.com/agent/4.261.0/vsts-agent-linux-x64-4.261.0.tar.gz ``` Extract the package ```bash tar zxvf vsts-agent-linux-x64-4.261.0.tar.gz ``` Configure the agent ```bash ./config.sh ``` Once you reach the `./config` step, it will prompt you to provide the following. 1. License agreement - Type `y` 2. Server URL - `https://dev.azure.com/` 3. Authentication type - Press `Enter` for PAT and paste the PAT 4. Agent pool name 5. Name for the Agent ```bash azureuser@azure-runner-vm:~/myagent$ ./config.sh ___ ______ _ _ _ / _ \ | ___ (_) | (_) / /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___ | _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __| | | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \ \_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/ | | agent v4.261.0 |_| (commit 45f3f01) >> End User License Agreements: Building sources from a TFVC repository requires accepting the Team Explorer Everywhere End User License Agreement. This step is not required for building sources from Git repositories. A copy of the Team Explorer Everywhere license agreement can be found at: /home/azureuser/myagent/license.html Enter (Y/N) Accept the Team Explorer Everywhere license agreement now? (press enter for N) > y >> Connect: Enter server URL > https://dev.azure.com/devopscube-org Enter authentication type (press enter for PAT) > Enter personal access token > ************************************************************************************ Connecting to server ... >> Register Agent: Enter agent pool (press enter for default) > custom-linux-pool Enter agent name (press enter for azure-runner-vm) > linux-agent Enter replace? (Y/N) (press enter for N) > n Scanning for tool capabilities. Connecting to the server. Successfully added the agent Testing agent connection. Enter work folder (press enter for _work) > 2025-10-22 09:51:04Z: Settings Saved. ``` The configurations are ready now, so we need to make them run the agent. ```bash ./run.sh ``` You will see the following output. ```bash $ ./run.sh Scanning for tool capabilities. Connecting to the server. 2025-10-22 09:58:14Z: Listening for Jobs ``` This output ensures that the agent is configured and running. We can confirm this from the dashboard. ![the confirmation of the agent creation and the status from the console](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/08/image-196.png) The console output also shows that the runner is active. So we can test now. ## Testing the Self-Hosted Azure DevOps Runner To test the self-hosted runner, we need to call it from a pipeline. We create a fresh test pipeline. For that, navigate to **Pipelines --> New pipeline --> Azure Repos Git --> \[Select Repository\] --> Starter pipeline**. Now, you can see a YAML file with some default configurations. Replace the entire contents with the following. ```yaml trigger: - main pool: name: 'custom-linux-pool' demands: - Agent.Name -equals linux-agent steps: - script: whoami displayName: 'Check current user' ``` Here, - `custom-linux-pool` is the custom pool name. - `linux-agent` is the agent name inside the pool. Then click "**Save and run**" and the pipeline will automatically start running. ![the pipeline running status with the self hosted runner.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-40.png) Once you select the specific run, we can see the summary. ![the list of pipeline runs in azure devops](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-41.png) Once you select the specific job, we can see the logs. ![the log of the specific pipeline job execution](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-42.png) Select the particular step to see the execution of the task. ![the log of the specific task execution](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/09/image-43.png) The output clearly shows that the jobs are run inside the self-hosted runner. Now, you can install the required tools inside the VM so that you can use it for your real pipeline. In the next section, we can see some of the best practices of the self-hosted runner. ## Best Practices Here are some of the best practices that you can follow 1. Instead of using a single runner for each project, use dedicated runners to improve security. 2. Set proper expiry and rotation for the PAT and give only necessary permissions to avoid any security threats. 3. Create [golden images using Packer ](https://devopscube.com/packer-tutorial-for-beginners/)so that when a new project requires a runner, we can easily spin up with all necessary tools. 4. For production setup, using private instances as runners can increase security. 5. Choosing the right size instance is very important to avoid any performance issues. 6. Choosing the spot VMs can reduce the cost. ## Conclusion In this guide, I showed you how to setup a virtual machine as a runner for the [CI/CD](https://devopscube.com/learning-ci-cd-tools/) pipelines in Azure. Self-host runners will give more flexibility than the built-in VMs, though choosing the right instances and following all the best practices only gives security and speed. If you face any errors during the setup, let me know in the comments. ### Top 6 System Design Interview Courses For 2026 URL: https://devopscube.com/system-design-interview-courses/ Last updated: 2026-02-13T12:04:34.000Z System design is a core part of almost every tech interview today, whether you are a software engineer, [DevOps engineer](https://devopscube.com/become-devops-engineer/), cloud professional, or working in AI/ML roles. In the AI era, it is extremely important for tech aspirants to **understand how a complex set of components works together** to solve problems at scale. The reason is simple: the core principles of scalability, availability, and reliability remain the same. In fact, these are the exact skills most companies are looking for in candidates in 2026. In this blog, I have listed the top platforms that offer the best system design courses. If you are interested in system design or preparing for system design interviews, these courses will be very useful. ## Best System Design Interview Courses I have reviewed many courses, but these six platforms stand out because they provide real-world experience and practical knowledge. That is why I wanted to share them with you to help you improve your skills and crack system design interviews. Lets take a look at each one of them. ### 1\. ByteByteGo ByteByteGo is a leading learning platform for system design interview preparation. It is well known for its visual, practical guides and real-world system architecture examples. [Checkout ByteByteGo ](https://bytebytego.com/?fpr=devopscube&ref=devopscube.com) I am personally a fan of the [ByteByteGo newslette](https://blog.bytebytego.com/?ref=devopscube.com)r, which offers many in-depth system design articles. However, if you are looking for a guided and structured path for system design preparation, you can check out their courses. 1. [System Design Interview](https://bytebytego.com/courses/system-design-interview/scale-from-zero-to-millions-of-users/?fpr=devopscube&ref=devopscube.com) 2. [Object-Oriented Design Interview](https://bytebytego.com/courses/object-oriented-design-interview/what-is-an-object-oriented-design-interview/?fpr=devopscube&ref=devopscube.com) 3. [Machine Learning System Design Interview](https://bytebytego.com/courses/machine-learning-system-design-interview/visual-search-system?fpr=devopscube&ref=devopscube.com) 4. [Mobile System Design Interview](https://bytebytego.com/courses/mobile-system-design-interview/introduction/?fpr=devopscube&ref=devopscube.com) 5. [Generative AI System Design Interview](https://bytebytego.com/courses/genai-system-design-interview/introduction-and-overview/?fpr=devopscube&ref=devopscube.com) ![ByteByteGo System Design Courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-53.png) These courses are best for Software Engineers who are preparing for System Design Interviews, and [developers](https://devopscube.com/platforms-sell-online-courses/) who want to understand the system architecture better. 💡 If you planning to get the ByteByteGo subscription, checkout [ByteByteGo discount](https://devopscube.com/bytebytego-discount/) page to get the latest deals. ### 2\. Educative: Grokking Modern System Design Interview [Eduacative.io](https://devopscube.com/educative-io-review/) Grokking Modern System Design interview built by FAANG engineers, and is a valuable course for system design interview preparation. You will be able to master the distributed system fundamentals and gain practice with real-world interview questions. [Checkout the Course ](https://www.educative.io/courses/grokking-the-system-design-interview?ref=devopscube.com) Here is what you get. - 180 Lessons - 8 Mock Interviews - 129 Quizzes, and - Certification - 26 hours of learning materials. ![Educative System Design Course](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-14.png) **Source: Educative* Here is what you will get from this course. - Practice mock interviews, model answers, and rubrics to build your confidence and speed. - Capacity and reliability skills. - Pattern toolkit such as sharding, replication, consistency models, CQRS, and event-driven design. - You will get a 45-minute answer structure with RESHAPED for any system design interview. - How to communicate under pressure(fast diagramming, clear trade-off narratives, and effective checkpoints). - Frame open-ended interview problems ### 3\. Tryexponent - System Design Interview Preparation The TryExponent System Design Interview course is one of the most valuable, beginner-friendly, and easy-to-understand courses available. [Checkout Tryexponent ](https://www.tryexponent.com/courses/system-design-interviews?ref=n2u2mmm) TryExponent has a combination of video and text lessons, as shown below. So if you are someone who needs a guided video course on system design, you will love Tryexponent. ![Tryexponent System Design Course Curriculam](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-54.png) The following table shows all the key concepts you will learn in this course. | Topics | You will learn | | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Overview | • How to answer system design interview questions• System Design principles• Rubric for system design interviews• System design glossary and get top Engineering blogs | | Networking & API Design | • Web protocol questions• API | | Scalable Systems | • Reliability, availability, and load balancing | | Databases | • SQL vs NoSQL• Database sharding• Replication | | Distribution Systemes | • Consistent hashing, CAP theorem, asynchronous processing, caching, encryption, authentication & authorization, cloud architecture, and CDNs. | | Real-time & Events: Mock Interviews | • Learn to design Facebook Messenger, WhatsApp, Tinder, ChatGPT, Uber Eats, and Weather App. | | Media & Content Delivery: Mock Interviews | • Learn to design YouTube, TitTok, Instagram, Netflix, and Twitter. | | Async & Data Processing: Mock Interviews | • Design a web crawler• Design a metrics and logging service• Design Dropbox• Design app that downloads user data• Design an application performance monitoring system | | Payments & Marketplaces: Mock Interviews | • Design a parking garage• Design the payment system for the Amazon Kindle• Design a hotel booking service• Design Zillow• Design a vending machine• Design Ticketmaster | | Distributed Infrastructure: Mock Interviews | • Design a key value store• Design a rate limiter• Desing a distributed message queue• Design a URL shortener• Design typeahead for seach box• Design a distributed LRU cache | ### Tryexponent Key Features: - Interactive exercises and AI feedback - Full mock interview videos - Completed interview walkthroughs ### 4\. Codemia.io Codemia.io is dedicated to System Design courses and helps with cracking system design interview problems. You will get the [System Design problems](https://codemia.io/system-design?ref=devopscube.com) and [object-oriented design problems](https://codemia.io/object-oriented-design?ref=devopscube.com) practice section. [Checkout Codemia ](https://codemia.io/?via=devopscube&ref=devopscube.com) There are four levels such as easy, medium, hard, and advanced. Also in the practice section, you can chat with a coach to clear your doubts. ![Codemia System Design Courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-55.png) Codemia has two key courses, - [System Design Fundamentals](https://codemia.io/courses/system%5Fdesign%5Ffundamentals?ref=devopscube.com) \- Beginner Level - [Tacking System Design Interview Problems](https://codemia.io/courses/tackling%5Fsystem%5Fdesign%5Finterview%5Fproblems?ref=devopscube.com) \- Beginner Level ### 5\. DesignGurus System Design DesignGuru.io is one of the best platforms for learning system design from scratch and preparing for interviews, offering a comprehensive roadmap for interview preparation. [Checkout DesignGurus ](https://www.designgurus.io/?aff=7ihg6v&ref=devopscube.com) Lets get into, what are the things you will get and learn from DesignGurus. #### **System Design Interview Roadmap:** - [Grokking System Design Fundamentals](https://www.designgurus.io/course/grokking-system-design-fundamentals?ref=devopscube.com) - [Grokking the System Design Interview](https://www.designgurus.io/course/grokking-the-system-design-interview?ref=devopscube.com) - [Grokking the Advanced System Design Interview](https://www.designgurus.io/course/grokking-the-advanced-system-design-interview?ref=devopscube.com) - [Grokking Scalable Systems for Interviews](https://www.designgurus.io/course/grokking-scalable-systems-for-interviews?ref=devopscube.com) \- New Arrival - [Grokking Microservices Design Patterns](https://www.designgurus.io/course/grokking-microservices-design-patterns?ref=devopscube.com) - [Grokking the Object Oriented Design Interview](https://www.designgurus.io/course/grokking-the-object-oriented-design-interview?ref=devopscube.com) - [Grokking SOLID Design Principles](https://www.designgurus.io/course/grokking-solid-design-principles?ref=devopscube.com) - [Grokking Design Patterns for Engineers and Managers](https://www.designgurus.io/course/grokking-design-patterns-for-engineers-and-managers?ref=devopscube.com) Look into the image below to know what learning you will get in each interview prep guide. > **Start to learn:** [System Design Interview Roadmap](https://www.designgurus.io/path/system-design-interview-playbook?ref=devopscube.com) ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-25.png) System Design Interview Roadmap (Source: DesignGurus.io) ### 6\. Algomonster (System Design School) AlgoMonster is an online platform built to help software engineers crack technical interviews. It was created by former engineers from top companies and focuses on pattern-based learning. [Checkout System Design School ](https://systemdesignschool.io/?ref=devopscube.com) To learn System Design, they created a platform called System Design School. ![Algomonster's system design school](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-30.png) You will learn from basic to advanced levels. Here are the topics covered in this course: - Introduction to system design - Microservices and data flow - Scaling services and storage - Data storage scaling - Batch and stream processing - Design patterns and templates ## Few Tips When it comes to system design, you need to look into the following Core Pillars of Modern System Design. 1. **Scalability:** Can the system handle a 10x or 100x increase in load? (Vertical vs. Horizontal scaling). 2. **Availability vs. Consistency:** Do you prioritize the system always being "up" (Availability) or every node having the same data at the same time 3. **Latency:** How fast does the system respond? This often involves implementing Caching (e.g., Redis) or Content Delivery Networks (CDNs) 4. **Resiliency:** How does the system behave when a component fails? This involves "Circuit Breakers," retries, and decoupled architectures using Message Queues (e.g., [Kafka](https://devopscube.com/multi-broker-kafka-cluster-beginners-guide/) or RabbitMQ). 5. **Throughput:** How many requests/transactions can the system process per unit of time? 6. **Fault Tolerance & Data Durability:** How does the system prevent data loss during failures? Understanding RPO (Recovery Point Objective) and RTO (Recovery Time Objective) 7. **Security:** Authentication and Authorization (OAuth, JWT, [RBAC](https://devopscube.com/create-a-new-account-in-argo-cd/)) 8. [**Observability**](https://devopscube.com/what-is-observability/)**:** Monitoring, [Logging](https://devopscube.com/kubernetes-logging-tutorial/), and Tracing (the three pillars of observability) 9. **Data Partitioning/Sharding:** How to split data across multiple databases/nodes ## Conclusion I have listed some of the best system design courses that will help you prepare for system design interviews. However, I would also like to mention that while courses give you a well-structured learning path, they are not enough on their own. To perform well in interviews, **you should also practice designing systems** on your own, understand real-world problems, and think clearly about scalability, reliability, and cost. Here is the key thing. Try to **break problems into components**, explain your decisions, and communicate your thinking step by step. Finally, refer to [engineering blogs](https://devopscube.com/list-of-devops-blogs-and-resources/#must-read-engineering-blogs-for-devops), study real-world systems, and discuss designs with others. This will greatly help you build confidence and succeed in system design interviews. Over to you. How are you preparing for system design interviews right now? What is your favorite learning resource? Which engineering blogs have helped you understand system design concepts? Drop your thoughts in the comments below. ### Setup Envoy Gateway API Controller On Kubernetes (Beginners Guide) URL: https://devopscube.com/setup-envoy-gateway-api/ Last updated: 2026-02-03T05:14:07.000Z In this detailed guide, you will learn how to set up and configure the **Envoy Gateway API Controller** for Gateway API implementation on **Kubernetes**. By the end of this blog, you will learn how to: 1. Install the Envoy Gateway 2. Configure EnvoyProxy, GatewayClass, Gateway, and HTTPRoute (CRDs of the Gateway API) 3. Test the traffic routing using a demo application with the Envoy Gateway. Before we move on to the installation, lets understand what is Envoy Gateway. ## What is Envoy Gateway? [Envoy Gateway](https://gateway.envoyproxy.io/?ref=devopscube.com) is an open-source project that is designed to simplify the use of Envoy Proxy as an API Gateway. It is a CNCF (Community-led) project. It acts as the controller that makes Gateway API resources work using Envoy Proxy. Here is an interesting thing about Envoy. Compared to other Gateway API controllers, **Envoy Gateway** stands out because it uses **Envoy Proxy**, which is built specifically for cloud-native environments. Envoy uses a fully dynamic control plane called **xDS (Discovery Service)**. This means configuration changes, such as adding or updating a route, are applied instantly in memory. There is no need to restart or reload the proxy process. In simple terms, traffic rules can change in real time without causing downtime. This makes Envoy **Gateway** a strong fit for modern Kubernetes and microservices setups where changes happen often and need to be safe and fast. 💡 Envoy's [xDS protocol ](https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds%5Fprotocol?ref=devopscube.com)has become the ****de facto standard** for [service mesh](https://devopscube.com/service-mesh-tools/) like [Istio](https://devopscube.com/setup-istio-ambient-mode/) and cloud-native proxy configuration. Also, Envoy Gateway is mainly used for **North–South traffic** and can be seen as a modern replacement for Ingress. From a Gateway API workflow perspective, Envoy Gateway is similar to the NGINX Gateway Fabric controller that we explained in the [Gateway API tutorial.](https://devopscube.com/kubernetes-gateway-api/) ## Envoy Gateway Workflow Envoy Gateway has the following two main components. 1. **Gateway Controller (Control Plane)** : Primary controller that watches the Gateway API Custom Resources and publishes the routing rules and configs to the Proxy controller. 2. **Proxy Controller (Data Plane):** This is the actual traffic routing proxy controller created by the Gateway controller to route the traffic to the intended services. Now lets understand the workflow of the Envoy Gateway. The following diagram illustrates the workflow of the Envoy Gateway API on Kubernetes. ![Envoy Gateway Controller Workflow With Gateway API](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-45.png) Here is how it works. 1. The cluster admin creates a Gateway (and related resources like `HTTPRoute`) using the Kubernetes Gateway API CRDs. 2. The Envoy Gateway controller watches these resources and configures the Envoy Proxy data plane. In most setups, it also creates a Kubernetes Service of type LoadBalancer, which triggers your cloud provider to provision an external load balancer. 3. Based on your `HTTPRoute` rules, Envoy is configured with the right routing logic to reach your backend workloads. 4. When a user sends a request, it first hits the external load balancer, then gets forwarded to the Envoy Proxy pods. 5. Envoy then routes the traffic to the correct backend Service, and from there Kubernetes forwards it to the right application pods. So the flow looks like the following. Client – >External Load Balancer – >Envoy Proxy (data plane) – >Kubernetes Service – >Application Pods Now that you understand how Envoy Gateway works, let’s get started with the setup. ## Prerequisites The following are the requirements to install the Envoy Gateway on the Kubernetes cluster. 1. A [Kubernetes Cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) 2. [Kubectl](https://devopscube.com/kubectl-set-context/) (Local Workstation) 3. [Helm](https://devopscube.com/create-helm-chart/) (Local Workstation) I assume you have a Kubernetes cluster to start the Envoy installation. If not, refer to this --> [**Create AWS EKS Cluster Using eksctl**](https://devopscube.com/create-aws-eks-cluster-eksctl/) ## Install Envoy Gateway using Helm Follow the steps given below to install the Envoy Gateway using the Helm chart. ### Step 1: Install the Envoy Gateway & Gateway API CRD's We can directly install the Gateway API CRDs and Envoy Gateway if you don't want to make any customization. Execute Helm command for the installation. ```bash helm install eg oci://docker.io/envoyproxy/gateway-helm --version v1.6.2 -n envoy-gateway-system --create-namespace ``` The installation will take a few minutes to complete. During that time, we can check the Gateway controller deployment status. For reference, below is the structure of the Envoy Gateway [Helm chart](https://devopscube.com/setup-prometheus-helm-chart/) used for the installation. ```bash envoy-gateway-helm ├── Chart.yaml ├── README.md ├── crds │ ├── gatewayapi-crds.yaml │ └── generated │ ├── gateway.envoyproxy.io_backends.yaml │ ├── gateway.envoyproxy.io_backendtrafficpolicies.yaml │ ├── gateway.envoyproxy.io_clienttrafficpolicies.yaml │ ├── gateway.envoyproxy.io_envoyextensionpolicies.yaml │ ├── gateway.envoyproxy.io_envoypatchpolicies.yaml │ ├── gateway.envoyproxy.io_envoyproxies.yaml │ ├── gateway.envoyproxy.io_httproutefilters.yaml │ └── gateway.envoyproxy.io_securitypolicies.yaml ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── _rbac.tpl │ ├── certgen-rbac.yaml │ ├── certgen.yaml │ ├── envoy-gateway-config.yaml │ ├── envoy-gateway-deployment.yaml │ ├── envoy-gateway-hpa.yaml │ ├── envoy-gateway-poddisruptionbudget.yaml │ ├── envoy-gateway-rbac.yaml │ ├── envoy-gateway-service.yaml │ ├── envoy-gateway-serviceaccount.yaml │ ├── envoy-proxy-topology-injector-webhook.yaml │ ├── infra-manager-rbac.yaml │ ├── leader-election-rbac.yaml │ ├── namespace.yaml │ └── namespaced-infra-manager-rbac.yaml └── values.yaml ``` The container images used on this Helm chart are. 1. `docker.io/envoyproxy/gateway:v1.6.2` \- Control Plane Controller 2. `docker.io/envoyproxy/ratelimit:99d85510` \- This will limit the request to the Envoy proxy based on the given rules. 3. `docker.io/envoyproxy/gateway-dev:latest` \- The Data Plane ⚠️ If you are setting up this in an enterprise environment, you may have to upload the images to your private container registry and then modify the helm chart to use those images for deployment. ### Step 2: Validating Installation We can check the deployment status of the Envoy Gateway to ensure the Control Plane controller is deployed. ```bash $ kubectl -n envoy-gateway-system get all NAME READY STATUS RESTARTS AGE pod/envoy-gateway-6dd8f9b8f-r5w47 1/1 Running 0 2m18s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/envoy-gateway ClusterIP 10.110.16.99 18000/TCP,18001/TCP,18002/TCP,19001/TCP,9443/TCP 2m18s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/envoy-gateway 1/1 1 1 2m18s NAME DESIRED CURRENT READY AGE replicaset.apps/envoy-gateway-6dd8f9b8f 1 1 1 2m18s ``` The status (`Running`) ensures that the Control Plane Controller is ready to watch the [Gateway API](https://devopscube.com/migrate-kubernetes-ingress-to-gateway-api/) and Envoy Custom Resources and deploy Data Planes. Before we create any Custom Resource, lets list the Custom Resource Definitions of the Gateway API as well as the Envoy Gateway. ```bash $ kubectl get crds | grep -iE "gateway" backends.gateway.envoyproxy.io backendtrafficpolicies.gateway.envoyproxy.io clienttrafficpolicies.gateway.envoyproxy.io envoyextensionpolicies.gateway.envoyproxy.io envoypatchpolicies.gateway.envoyproxy.io envoyproxies.gateway.envoyproxy.io httproutefilters.gateway.envoyproxy.io securitypolicies.gateway.envoyproxy.io backendtlspolicies.gateway.networking.k8s.io gatewayclasses.gateway.networking.k8s.io gateways.gateway.networking.k8s.io grpcroutes.gateway.networking.k8s.io httproutes.gateway.networking.k8s.io referencegrants.gateway.networking.k8s.io tcproutes.gateway.networking.k8s.io tlsroutes.gateway.networking.k8s.io udproutes.gateway.networking.k8s.io xbackendtrafficpolicies.gateway.networking.x-k8s.io xlistenersets.gateway.networking.x-k8s.io ``` Next, we will test the controller implementation using a sample application. ## Deploying a Sample Application To test the traffic routing using Envoy Gateway, we create an [Nginx](https://devopscube.com/service-discovery-example/) deployment on the cluster. ```bash kubectl create deployment web-deploy --image nginx --port 80 --replicas 2 ``` Create a service for this deployment ```bash kubectl expose deployment web-deploy --name web-svc --port 80 --target-port 80 --type ClusterIP ``` Once both deployment and service creation are completed, we can check them using the following command. ```bash $ kubectl get deploy,svc NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/web-deploy 2/2 2 2 2m10s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/web-svc ClusterIP 10.100.235.119 80/TCP 54s ``` Now that our demo application is ready, our next task is to setup external traffic to this application using the envoy gateway. Let's start with creating the Envoy Proxy Custom Resource. ## Create EnvoyProxy Resource 💡 By default, ****Envoy Data Planes** use a **`LoadBalancer`** service type for Data Planes. This means that if you are running in a cloud cluster, such as [EKS](https://devopscube.com/create-aws-eks-cluster-eksctl/) or AKS, the Load Balancer will be automatically created when you deploy the `gateway` CRD. Since this is a test setup, we do not want a LoadBalancer. So we can change the Data Plane configuration to use `NodePort` using the `EnvoyProxy` CRD. This changes the default behavior of the Control Plane so that the Data Planes created by the Controller will not use the Load Balancer service type. > **Note:** Skip the following EnvoyProxy modification if you can can use a Load Balancer to test the external traffic. Create the `EnvoyProxy` manifest with the parameter of `type: NodePort`. This will overwrite the default configuration available on the Control Plane. ```bash cat < envoyproxy.yaml apiVersion: gateway.envoyproxy.io/v1alpha1 kind: EnvoyProxy metadata: name: envoy-proxy namespace: default spec: provider: type: Kubernetes kubernetes: envoyService: type: NodePort EOF ``` Apply the Envoy Proxy on the Kubernetes cluster. ```bash kubectl apply -f envoyproxy.yaml ``` List the EnvoyProxy resource once the installation is completed. ```bash $ kubectl get envoyproxy NAME AGE envoy-proxy 22m ``` The first step is successfully completed, so we can now create the `GatewayClass` resource and attach this Envoy Proxy. ## Create GatewayClass Resource A cluster can have multiple gateway API controllers. The **`GatewayClass`** Custom Resource is used to identify which gateway API controller to be used. So in the GatewayClass manifest, we need to mention the controller ID on the `spec.controllerName` parameter as well as the created EnvoyProxy under the `spec.parametersRef` section. Execute the following to create `gatewayclass.yaml` ```bash cat < gatewayclass.yaml apiVersion: gateway.networking.k8s.io/v1 kind: GatewayClass metadata: name: envoy-gateway-class spec: controllerName: gateway.envoyproxy.io/gatewayclass-controller parametersRef: group: gateway.envoyproxy.io kind: EnvoyProxy name: envoy-proxy namespace: default EOF ``` The important config to note here is, `gateway.envoyproxy.io/gatewayclass-controller` is the default name given to the controller. This can be modified in the Helm chart when you use multiple controllers on a same cluster. > **Note**: Skip the `parametersRef` section, if you don't want to use the NodePort service for the Data Planes. Apply the Gateway Class configuration. ```bash kubectl apply -f gatewayclass.yaml ``` To check the resource creation. ```bash $ kubectl get gatewayclass NAME CONTROLLER envoy-gateway-class gateway.envoyproxy.io/gatewayclass-controller ``` The Gateway Class resource creation is now completed. We can now create the `Gateway` Custom Resource. ## Create Gateway Resource Gateway Custom Resource is like a router. When the traffic enters the cluster, it initially hits the Gateway. When you create a Gateway resource, the Control Plane controller essentially **deploys an Envoy Proxy pod** (Data Planes). So all the routing logic will be part of this proxy. Lets create a `Gateway` manifest for the HTTP protocol, with Port 80 traffic to enter. ```bash cat < gateway.yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: web-gateway namespace: default spec: gatewayClassName: envoy-gateway-class listeners: - name: http protocol: HTTP port: 80 allowedRoutes: namespaces: from: All EOF ``` As you can see in the manifest, **Gateways are listener-specific**. This means you must clearly define which port and protocol the incoming traffic should use. Now, apply the Gateway to the cluster. ```bash kubectl apply -f gateway.yaml ``` To check the Gateway status, use the following command. ```bash $ kubectl -n default get gateway NAME CLASS ADDRESS PROGRAMMED AGE web-gateway envoy-gateway-class 172.30.1.2 True 2m10s ``` Due to the modified Envoy proxy configs, the Data Plane will be deployed with the type `NodePort` service type. We can check it using the following command. ```bash kubectl -n envoy-gateway-system get deploy,svc ``` ![The output of the deployed envoy gateway pod with NodePort ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-110.png) **Note down your NodePort number** (`31299`) to test the application access in the upcoming section. Now the Gateway is ready, but we need to create one more resource called an `HTTPRoute`. ## Create a HTTPRoute Resource The `HTTPRoute` Custom Resource will help the traffic from the Gateway to the appropriate service of the application. We need to create a HTTPRoute manifest with the following contents. ```bash cat < httproute.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: web-httproute spec: parentRefs: - name: web-gateway rules: - backendRefs: - group: "" kind: Service name: web-svc port: 80 weight: 1 matches: - path: type: PathPrefix value: / EOF ``` Apply the HTTPRoute manifest. ```bash kubectl apply -f httproute.yaml ``` Once it is deployed, we can list the available HTTPRoute resources. ```bash $ kubectl -n default get httproute NAME HOSTNAMES AGE web-httproute 7m23s ``` We have configured everything needed to route external traffic to our application. Next is testing the traffic. ## Test the Application Traffic We can now try to access our application using the `curl` command from the local machine. For that, we need the `NodePort` of Gateway proxy and the [IP](https://devopscube.com/ip-address-tutorial/) of one of the worker nodes. Use the following command to see the output. ```bash curl [NODE_IP]:[NODE_PORT_NUMBER] ``` The output will show the Nginx web page. ![the output of the demo application](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/07/image-111.png) This ensures that the traffic is properly routed to the correct backend service through the envoy proxy. 💡 For production implementation, map the LoadBalancer DNS to a DNS service like Route53 so that you can easily access the application through a domain name. ## Advantages of Envoy Gateway We already have many [Gateway API controllers](https://gateway-api.sigs.k8s.io/implementations/?ref=devopscube.com), so why use Envoy Gateway? The following are some of the advantages. 1. This controller watches the Gateway API CRDs and automatically updates the Envoy proxy settings using the xDS API. The xDS API can make changes to running processes, so without downtime, we can make config changes. 2. Envoy proxy uses a **filter chain** to handle HTTP processing, rate limiting, and authentication. For this, it uses **WebAssembly (WASM),** so we can also create custom filters. 3. Popular services mesh like [**Istio**](https://devopscube.com/istio-opensource-platform-microservices-management/) use Envoy proxies, so using Envoy Gateway would be easier for the integration between them. ## Conclusion We saw how Envoy Gateway routes external traffic to backend services using the Gateway API. But Envoy Gateway can do much more using its custom resources. You can configure domain names and TLS secrets to encrypt traffic. You can also set up weighted routing for canary deployments, and method-based routing is supported as well. Over to you. Are you planning to implement Envoy gateway for your projects? Are you using any other controller now? Either way, let us know your thoughts in the comments. ### 16 Top DevOps Certifications: Guide to Choosing the Right Certification URL: https://devopscube.com/devops-certifications/ Last updated: 2026-08-31T09:27:57.000Z In this guide, I have listed the **popular DevOps certifications**, along with top choices, so you can choose the best one for you. Choosing the right **DevOps certification** is important in your DevOps career. For fresh graduates to experienced DevOps professionals, the right certification will help you gain DevOps skills and grow in your IT career. Also, DevOps is a growing field, and the following are some statistics showing DevOps growth. 1. As per the [Global DevOps Market Research Report](https://www.researchandmarkets.com/reports/4904705/devops-market-research-report-by-organization?ref=devopscube.com), the DevOps market is projected to grow at a Compound Annual Growth Rate (CAGR) of 19.04% to reach USD 14,554.23 million by 2027. 2. According to the [Upskilling IT 2023](https://www.devopsinstitute.com/upskilling-it/?ref=devopscube.com) survey report by the DevOps Institute, 65% of the survey respondents reported that DevOps certifications are very valuable. 3. As per the [Annual Open Source Jobs Report](https://linuxfoundation.org/tools/the-10th-annual-open-source-jobs-report/?ref=devopscube.com), 90% of employers are interested in getting their employers certified in DevOps tools. 4. According to the [Pearson VUE Certification](https://www.pearsonvue.com/content/dam/VUE/vue/en/documents/voc/pearson-vue-2025-value-of-certification-report.pdf?ref=devopscube.com) report, 32% of the employees received a salary increase after the completion of certification. This guide is based on the [latest trends in DevOps](https://devopscube.com/devops-trends/) & [DevOps tools](https://devopscube.com/best-devops-tools/) around Linux, cloud computing, Containerization, Infrastructure automation, Continuous Integration, Continuous Delivery, Continuous deployment, DevSecOps, observability, and configuration management. If you dont have time to read about all the certifications, I have organized the DevOps Certification in categories in the following table.envoy gate Here are my top picks for the DevOps certification in different categories. | Category | Certifications | | -------------------------- | ----------------------------------------------- | | Container Orchestration | CKA, CKAD & CKS | | Infrastructure as Code | Terraform Certification | | Cloud Computing | AWS Certifications | | DevSecOps | Hashicorp Vault Certification | | Service Mesh | Istio Certified Associate (ICA) | | Linux | LFCS | | CI/CD | Jenkins Certification | | Monitoring & Observability | Prometheus Certification (PCA) | | GitOps | GitOps With Argo | | Version Control | Git Skillcred | | Programming | PCEP™ – Certified Entry-Level Python Programmer | | MLOps | AWS Certified Machine Learning - Speciality | ## Top DevOps Certifications Now, let's look at each DevOps certification in detail, where I have added all the details about each certification, including registration, price, voucher codes, study guides, etc. ## 1\. Certified Kubernetes Administrator (CKA) **CKA is my #1 pick when it comes to DevOps certification due to the fact that it is a sought-after hands-on certification** **from the Cloud Native Computing Foundation (CNCF)** As per the [cncf annual report](https://www.cncf.io/reports/cncf-annual-report-2023/?ref=devopscube.com), in 2023 the CKA exam hit **176,000 enrolments.** Kubernetes is an open-source [container orchestration tool](https://devopscube.com/docker-container-clustering-tools/) for automating the deployment, scaling, and management of containerized applications. It has become the de facto standard for container orchestration and microservices deployment, and it is one of the sought-after DevOps skills in the current IT market. The CKA program offers a robust curriculum that covers all aspects of Kubernetes administration, from installation and configuration to networking and security. Candidates who successfully complete the CKA exam will earn a globally recognized credential that demonstrates their skills and knowledge in Kubernetes. If you're looking to start a career in DevOps, or simply want to deepen your understanding of Kubernetes, the CKA certification is a great place to start. Also, it is one of the most in-demand DevOps certifications. And if you are planning to take the CKA exam, we have covered the [best CKA courses](https://devopscube.com/best-cka-courses/), choose the course based on your learning style. The following table has the important CKA certification details. | **Exam Registration** | [CKA Exam Registration](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/?ref=devopscube.com) | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Assessment Type | Hands-on practical labs ( 17 questions.) | | Format | Online proctored | | Duration | 2 hrs | | Price | USD $395 with | | **Retake** | One Free retake | | Language | English | | Expiration | 2 years | | **CKA Exam Guide** | [Detailed CKA Study Guide](https://devopscube.com/cka-exam-study-guide/) | | **Other Resources** | [ killer.sh/cka](https://killer.sh/cka?ref=devopscube.com) for CKA practice tests & exam simulator. You will get two free sessions as part of exam registration. | ## 2\. Certified Kubernetes Application Developer (CKAD) CKAD is a Kubernetes certification that focuses on designing, building, and deploying cloud-native applications for Kubernetes. If you have CKA certification, passing CKAD is comparatively easier. It is a two-hour performance-based exam, and the following are the CKAD certification details. | **Exam Registration** | [CKAD Exam Registration](https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/?ref=devopscube.com) | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | | Assessment Type | Hands-on practical labs ( 19 questions.) | | Format | Online proctored | | Duration | 2 hrs | | Price | USD $395 | | Language | English | | Expiration | 2 years | | **CKA Exam Guide** | [Detailed CKA Study Guide](https://devopscube.com/ckad-exam-study-guide/) | | **Other Resources** | [ killer.sh/ckad](https://killer.sh/ckad?ref=devopscube.com) for CKA practice tests & exam simulator | ## 3\. Certified Kubernetes Security Specialist (CKS) CKS certification focuses on security best practices of Kubernetes application deployments. The certification topics are organized in a way that you learn all the concepts and tools around container security on Kubernetes. Also, you **must have a valid CKA certification** to appear for CKS. It is also a two-hour performance-based exam like CKA & CKAD. CKS is comparatively a tougher exam than CKA and CKAD. You need to practice well before appearing for the exam. | Exam Registration | [CKS Exam Registration](https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/?ref=devopscube.com) | | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | Exam Guide | [Detailed CKAD Study Guide](https://devopscube.com/cks-exam-guide-tips/) | | Other CKA Resources | [killer.sh/cks](https://killer.sh/cks?ref=devopscube.com) for CKA practice tests & exam simulator | **Note**: You can also start with the KCSA certification. It is an introductory kubernetes security certification. ## 4\. AWS Certified DevOps Engineer - Professional AWS dominates cloud infrastructure, and this Professional-level AWS DevOps certification provides advanced skills in automating deployments, CI/CD, and managing scalable systems. In 2025, it is one of the most in-demand DevOps certifications, with thousands of job postings asking for it. According to KodeKloud, around **6,000+ job** listings ask for an AWS Certified DevOps Engineer in 2025, making it the most in-demand [cloud certification](https://devopscube.com/best-cloud-computing-certifications/). Here is what AWS says about this certification. The AWS Certified DevOps Engineer - Professional showcases individuals’ technical expertise in provisioning, operating, and managing distributed application systems on the AWS platform, giving them increased confidence and credibility with peers, stakeholders, and customers. Organizations with these qualified professionals can ensure speedy delivery of secure, compliant, systems that are highly available and scalable. | Exam Registration | [AWS Certified DevOps Engineer - Professional](https://aws.amazon.com/certification/certified-devops-engineer-professional/?ref=devopscube.com) | | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | Level | Professional | | Length | 180 minutes to complete the exam | | Cost | 300 USD. Visit Exam pricing for additional cost information, including foreign exchange rates. | | Format | 75 questions, either multiple choice or multiple response. | | Delivery Method | Pearson VUE testing center or online proctored exam. | ## 5\. Microsoft Certified: Azure DevOps Engineer Expert This certification validates expertise in designing and implementing strategies for collaboration, code, infrastructure, source control, security, compliance, continuous integration, testing, delivery, monitoring, and feedback. It is primarily designed for **DevOps professionals** who combine people, processes, and technologies to continuously deliver valuable products and services that meet end-user needs and business objectives. | Attribute | Details | | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Certification Registration | [Microsoft Certified: Azure DevOps Engineer Expert](https://learn.microsoft.com/en-us/credentials/certifications/devops-engineer?ref=devopscube.com) | | Level | Expert | | Length | Varies per exam, typically around 150 minutes | | Cost | Approximately $165 USD per exam (subject to regional variations) | | Format | Multiple choice, multiple response, and scenario-based questions | | Delivery Method | Pearson VUE testing center or online proctored exam | | Skills Measured | Designing and Implementing Azure DevOps Solutions Infrastructure as Code (IaC) Continuous Integration and Continuous Deployment (CI/CD) Configuration Management Monitoring and Feedback | ## 6\. Google Cloud Professional DevOps Engineer This certification validates a DevOps Engineers expertise in using Google Cloud technologies to implement DevOps practices. It demonstrates the ability to use Google Cloud to build software delivery pipelines, deploy and monitor services, and manage and learn from incidents. This certification is primarily designed for DevOps professionals who are using Google Cloud Platform to automate infrastructure, build and release software, monitor operations, and manage service reliability. | Attribute | Details | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Certification Registration | [Google Cloud Professional DevOps Engineer](https://cloud.google.com/learn/certification/cloud-devops-engineer?ref=devopscube.com) | | Level | Professional | | Length | 2 hours | | Cost | $200 USD | | Format | Multiple choice and multiple select questions | | Delivery Method | Online proctored exam or in-person at a test center | | Skills Measured | Applying site reliability engineering principles to a service Optimizing service performance Implementing service monitoring strategies Building and implementing CI/CD pipelines for a service Managing service incidents | ## 7\. HashiCorp Certified Terraform Associate When it comes to [Infrastructure as Code](https://devopscube.com/infrastructure-as-code-configuration-management/), HashiCorp Certified Terraform Associate is my choice. HashiCorp Certified Terraform Associate is a modern **infrastructure automation certification** for professionals that validates your skills in using Hashicorp Terraform to provision, manage, and maintain any cloud or on-prem infrastructure. The certification exam covers the core set of skills required to effectively use T**erraform to provision infrastructure**. The Terraform Associate Exam is administered by Webassessor, an independent third-party proctoring service. The exam consists of **70 multiple-choice questions** and has a **2-hour time limit**. Candidates must achieve a passing **score of 70%** or higher to earn the certification. The Terraform Associate certification is valid for two years from the date of passing. To maintain active status, Terraform Associates are required to retake the exam prior to expiration. There are no prerequisites for taking the Terraform Associate Exam. When it comes to Devops, infrastructure automation plays a key role. Terraform is particularly popular in infrastructure provisioning. So from a cloud automation perspective, Terraform Associate is the best certification you can have. Here are the Terraform certification details. | **Exam Registration** | [HashiCorp Certified: Terraform Associate](https://www.hashicorp.com/certification/terraform-associate?ref=devopscube.com) | | --------------------- | -------------------------------------------------------------------------------------------------------------------------- | | Assessment Type | Multiple choice | | Exam Format | Online proctored | | Duration | 1 hour | | Price | $70.50 USDplus locally applicable taxes and feesFree retake **not included** | | Language | English | | Expiration | 2 years | ## 8\. Linux Foundation Certified System Administrator (LFCS) Linux administration is an essential skill for a DevOps Engineer. If you are starting your DevOps journey, getting certified in LFCS is the start of the DevOps certification roadmap. The Linux Foundation Certified System Administrator (LFCS) exam is ideal for candidates looking to validate their Linux system administration skill set. training.linuxfoundation.org | **Exam Registration** | [LFCS Exam Registration](https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/?ref=devopscube.com) | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | Assessment Type | Multiple choice | | Exam Format | Online proctored | | Duration | 2 Hours | | Price | $395 with a free retake | | Language | English | | Expiration | 3 years | The LFCS credential is valid for three years. To maintain the credential, holders must recertify every three years by passing the LFCS exam or another approved exam. The Linux Foundation also offers a Certified Engineer (LFCE) credential for candidates who wish to validate their skills in designing and implementing Linux systems. ## 9\. Istio Certified Associate (ICA) Most organizations use service mesh today. As a DevOps engineer, it is very important to showcase these skills in the IT market today. Istio Certified Associate is the only **service mesh-based certification** offered by the Linux Foundation. So if you want to demonstrate your understanding of Istio principles, terminology, and best practices, this certification is for you. The following are the certification details. | **Exam Registration** | [ICA Exam Registration](https://training.linuxfoundation.org/certification/istio-certified-associate-ica/?ref=devopscube.com) | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | Assessment Type | Performance-based & Multiple Choice Exam | | Exam Format | Online proctored | | Duration | 2 Hours | | Price | $250 with a free retake | | Language | English | | Expiration | 3 years | | Study Guide | [ICA Detailed Study ](https://devopscube.com/istio-certified-associate-study-guide/) | ## 10\. Docker Certified Associate (DCA) If you are getting started with your container journey, DCA is the best certification to start with. Over the years, [Docker](https://devopscube.com/what-is-docker/) has become the de-facto standard for container deployments. Even though it is not the only available container engine, developers and devops engineers prefer using Docker for containerizing applications. | **Exam Registration** | [Docker Certified Associate (DCA)](https://training.mirantis.com/certification/dca-certification-exam/?ref=devopscube.com) | | --------------------- | -------------------------------------------------------------------------------------------------------------------------- | | Assessment Type | 3 multiple choice and 42 discrete-option multiple-choice (DOMC) questions | | Format | Online proctored | | Duration | 90 minutes | | Price | USD $195 or Euro €175 | | Language | English | | Expiration | 2 years | Here is what you should know about the Docker Certified Associate exam. 1. You should have a minimum of 6 -12 months of Docker experience to take this exam. It is not a mandate. 2. You will get the exam result as soon as you complete the exam. ## 11\. HashiCorp Certified: Vault Associate As a DevOps engineer, you need to take care of security automation along with infrastructure automation and application deployments. And without any doubt, Hashicorp Vault is the best open-source secret management solution out there. So if you are into DevSecOps or responsible for managing security aspects of a project, this is one of the best security certifications in DevOps. Here are the exam details. | **Exam Registration** | [HashiCorp Certified: Vault Associate](https://www.hashicorp.com/certification/vault-associate?ref=devopscube.com) | | --------------------- | ------------------------------------------------------------------------------------------------------------------ | | Assessment Type | Multiple choice | | Format | Online proctored | | Duration | 1 hour | | Price | $70.50 USDplus locally applicable taxes and feesFree retake **not included** | | Language | English | | Expiration | 2 years | ## 12\. HashiCorp Certified: Vault Operations Professional Vault Operations Professional is an advanced certification. So, Vault Associate Certification is recommended before appearing for the operations professional certification. To appear for this exam, you need to have knowledge of the following topics. 1. Linux command line 2. IP networking 3. Public Key Infrastructure (PKI), including PGP and TLS 4. Network security and RBAC fundamentals. 5. Concepts and functionality of infrastructure running in containers. Here are the exam details. | **Exam Registration** | [HashiCorp Certified: Vault Operations Professional](https://www.hashicorp.com/certification/vault-operations-professional?ref=devopscube.com) | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Assessment Type | Lab-based and multiple choice | | Format | Online proctored | | Duration | 4 hours | | Price | $295 USDplus locally applicable taxes and fees[**Includes free retake**](https://hashicorp-certifications.zendesk.com/hc/en-us/articles/360049773991?ref=devopscube.com) | | Language | English | | Expiration | 2 years | ## 13\. Red Hat Certified Engineer (RHCE) exam (Ansible Certification) If you are someone who works with RedHat Enterprise Linux or wants to get your hands dirty with Redhat administration and automation, using Ansible, this certification is for you. The exam covers the following. 1. Red Hat Certified System Administrator tasks 2. Ansible Components. 3. Ansible control node setup 4. Shell Scripting tasks 5. Ansible playbook creation 6. Using Ansible modules for system administration tasks. 7. Working with Ansible Roles 8. Advanced Ansible Features like templating, Ansible vault, etc. | **Exam Registration** | [Red Hat Certified Engineer (RHCE) exam](https://www.redhat.com/en/services/training/ex294-red-hat-certified-engineer-rhce-exam-red-hat-enterprise-linux-8?ref=devopscube.com) | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Assessment Type | Hands-on, practical exam | | Format | Online proctored | | Duration | 3.5 hrs | | Price | $400 Plus Tax | | **Free Retake** | Within 90 days | | Language | English | | Expiration | 3 years | ## 14\. Prometheus Certified Associate (PCA) [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) is one of the best open-source and cloud-native monitoring tools. [Prometheus Certified Associate](https://devopscube.com/prometheus-certified-associate/) (PCA) certification is focused on [Prometheus monitoring](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) and observability. This certification will help you gain knowledge on the fundamentals of data monitoring, metrics, alerts, and dashboards using Prometheus. | **Exam Registration** | [Prometheus Certified Associate (PCA)](https://devopscube.com/recommends/pca-certification/) | | --------------------- | -------------------------------------------------------------------------------------------- | | Assessment Type | Multiple Choice Exam | | Format | Online proctored | | Duration | 1.5 hrs. | | Price | $250 | | **Free Retake** | One | | Language | English | | Expiration | 3 years | ## 15\. AWS Certified Machine Learning – Specialty This is one of the most recognized cloud ML certificates. It shows you can build, train, tune, and deploy scalable ML solutions on AWS, including production workflows, automation, and MLOps-style tasks. It is often listed in job requirements for MLOps/ML engineering roles because AWS is mostly used in enterprise ML workloads. | Exam Registration | [AWS Certified Machine Learning - Specialty](https://aws.amazon.com/certification/certified-machine-learning-specialty/?ref=devopscube.com) | | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | Level | Advanced | | Length | 180 minutes to complete the exam | | Cost | 300 USD. Visit Exam pricing for additional cost information, including foreign exchange rates. | | Format | 65 questions, either multiple choice or multiple response. | | Delivery Method | Pearson VUE testing center or online proctored exam. | | Languages Offered | English, Japanese, Korean, and Simplified Chinese. | This certification is valid for 3 years. You need to retake the exam before it expires to keep the certification active. 💡 ****Note:** If you already hold another AWS certificate, you get a 50% discount on your next AWS certification exam. ## 16\. Certified Argo Project Associate (CAPA) The [Certification Argo Project Associate ](https://devopscube.com/certified-argo-project-associate/) (CAPA) exam checks your knowledge about the tools in the Argo project. This certification covers all major tools in the Argo project, such as, Argo Workflow, [Argo CD](https://devopscube.com/setup-argo-cd-using-helm/), [Argo Rollouts](https://devopscube.com/argo-rollouts-setup-on-kubernetes/), and Argo Events. As a [DevOps Engineer](https://devopscube.com/become-devops-engineer/), you will be working with a [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) based CI/CD pipeline, and having this certification will show your skills in GitOps. The exam details are given in the table below. | Exam Registration | [Certified Argo Project Associate (CAPA)](https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/?ref=devopscube.com) | | Exam Type | Online, Proctored, Multiple Choice Questions | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------- | -------------------------------------------- | | Exam Cost | $250 USD | | | | | Exam Duration | 90 minutes | | | | | Number of Questions | 60 | | | | | Passing Percentage | 75% | | | | | Validity | 2 years | | | | | Retake Policy | One retake | | | | | Free DevOps CertificationsAll the popular DevOps certifications cost you money. If you are someone who cannot afford to pay for a certification exam, you can start with free DevOps certifications offered by organizations.1\. GitOps Certification with ArgoCodefresh is offering free training and certification on GitOps with ArgoCD. GitOps is a sought-after skillset for organizations adopting microservices and container orchestration frameworks like Kubernetes.Signup Here: Get Certified for GitOps with Argo2\. Certified Calico Operator: Level 1Calico is the CNI plugin for Kubernetes and is one of the commonly used CNIs for setting up Kubernetes clusters. Tigera, the company that developed Calico, offers a free certification specifically for Calico operators. You can make use of the certification to gain good knowledge about the Kubernetes network plugins.Signup Here: Certified Calico Operator3\. Intermediate for IstioThis free Istio certification by Solo.io covers all the Istio service mesh fundamentals. As per the websiteThis credential, by Solo.io, certifies that recipients possess the essential skills to deploy Istio, configure it, debug it, secure it, and operationalize it for their organizationSignup Here: Intermediate for Istio by Solo.ioBenefits of DevOps CertificationThe following are the benefits of getting certified in any DevOps tools or cloud.Better job opportunities. Companies use certifications as a filter to choose candidates for job interviews.Opportunity to get hands-on experience to understand a tool's features.Increased chances of a higher salary.Certification can also plays a key role in increased salary potential. For example, Glassdoor suggests that a CKA certification can potentially increase the salary by over $23,000 as compare to a non-certified professional.These reports clearly show the importance of DevOps adoption. So if you are certified in DevOps-related tooling, it's an added advantage for your career.DevOps Certifications RoadmapSo, when we talk about DevOps certifications, it is more certifications that are related to the DevOps practice. It could be a certification based on the tool, cloud platform, SCRUM, etc.My first certification as a DevOps engineer was AWS-certified solution architect because I was primarily working on AWS cloud-related projects. It makes more sense to start with a certification on the technologies you are working with.For example, if you are a Linux admin and want to become a DevOps Engineer, you can get certified in Kubernetes, as it is more relevant to the domain you are already in. That is “System Administration”.Here is my advice on DevOps certification.Start with one Certification that is closely related to your existing domain. If you are completely new to DevOps, the following DevOps certification roadmap would help.Most In-Demand DevOps CertificationsEven though there are many DevOps certifications, there are in-demand DevOps certifications in terms of job opportunities and salaries.As per the current DevOps trends, the following DevOps certifications are in demand.AWS Certified DevOps Engineer (AWS)Certified Kubernetes Administrator (CKA)Certified Kubernetes Application Developer (CKAD)Microsoft Certified: DevOps Engineer Expert (Azure)HashiCorp Certified: Terraform AssociateHow Long Does It Really Take to Learn DevOps?The core concepts can be learn in 2 to 5 months such as Devops principals, CI/CD, Containerization, version control, etc.The next level will give a deeper understanding of the tools, and it is possible to make solutions that are required for the organization. ConclusionBased on my 10+ years of working as a DevOps engineer with multiple certifications, I can say that there is no single certification that fits all the required DevOps skills. However, based on your career path, choose a certification that aligns with your career goals.Also, I have spoken more about the importance of certification in my becoming a DevOps engineer guide.In this blog, we have looked at the best DevOps certifications for you to showcase your knowledge in DevOps.Also, if you are specifically learning Kubernetes, check out our guide on the best Kubernetes certifications. | | | | | ### How to Get Digital Ocean Free Credits: $200 Free Credits URL: https://devopscube.com/get-free-digital-ocean-credits/ Last updated: 2026-09-01T07:45:47.000Z Who doesn't want Digitalocean free credits for creating VMs on the cloud? VMs come in handy to develop and test applications, deploy [docker containers](https://devopscube.com/what-is-docker/), or even deploy [Kubernetes clusters](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) Digitalocean is my go-to cloud platform for deploying virtual machines to host my personal applications and client projects. For example, I host one of my WordPress blogs in DigitalOcean. To support all Devopscube readers to get free Digital Ocean credits, we have developed a small guide to bring you the free credits. ## Digital Ocean Free Credits: $200 Coupon \[2026\] You can get $200 free Digital Ocean credits if you are a new user. This credit is valid for two months. You can try all the Digital Ocean services like Droplets, [Kubernetes clusters](https://devopscube.com/key-considerations-kubernetes-cluster-design-setup/), volumes, etc. [Get $200 Free Credits ](https://devopscube.com/recommends/digital-ocean-sidebar/) **Note:** When you signup you get $200 free credits ## How to Redeem Digital Ocean Free Credits? Follow the steps given below to redeem the **free $200 digital ocean credit**. **Step 1:** Visit [digitalocean.com](https://devopscube.com/recommends/digital-ocean-sidebar/), and you will see a "Free Credit Active" banner as shown below. Click the banner. ![Digital ocean free credit](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-24-23.png) **Step 2:** Validate the **free $200 credit** on the signup page and sign up with your email. You need to provide a valid credit card or PayPal payment to activate the free credit. You will not be charged till you finish the $100 free credit. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-16-34.png) **Step 3:** After signup, in your digital dashboard, you should see your free credit as shown below. ![Digitalocean free credit in dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/free-credit-min-1.png) ## Digital Ocean Use Cases DigitalOcean is one of the best cloud providers for hosting and developing applications on the cloud. Here is what Digitalocean offers. 1. **Droplets:** Virtual machines starting from $5 per month. 2. **Networking:** It offers private networks, [load balancers](https://devopscube.com/aws-load-balancers/), firewalls, etc. 3. **Storage:** You can add extra storage volumes to the virtual machines. Also, you can set up a backup for storage and root volumes. 4. **Kubernetes Clusters:** If you want to set up a [kubernetes cluster](https://devopscube.com/building-kubernetes-cluster-the-hard-way/) and deploy applications on kubernetes, you can use the DigitalOcean [kubernetes service](https://devopscube.com/kubernetes-api-access-service-account/). You can also use the managed container registry service. 5. **Managed Database Clusters:** You can deploy managed MongoDB, PostgreSQL, [MYSQL](https://devopscube.com/install-mysql-operator-on-kubernetes/), and Redis If you are getting started with the cloud, you can use the [75% discount from Udacity](https://devopscube.com/udacity-coupon-code/) for cloud Nanodegree programs. ## Free Digital Ocean Credits - $35 Credit Follow the guide carefully to get this free Digital Ocean credit using Codeanywhere. **Step 1:** Head over to [www.codeanywhere.com](http://codeanywhereinc.grsm.io/DevOpsCube?ref=devopscube.com) and signup for an account. You can use this account for developing applications on a cloud IDE. It's free for basic usage, and you can check out its features. It's pretty interesting. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/screen-shot-2017-05-01-at-12-27-04-pm-1.jpg) **Step 2:** Once you sign up, you will get redirected to the Codeanywhere Editor page. In the Connection Wizard pop-up, at the bottom left, you will see a DigitalOcean option. Click the DigitalOcean option and then click the “**Get Coupon**” option. It will display a coupon code worth $25 credits. Copy the coupon code to your clipboard. ![free digital ocean credits using coupon code](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/screen-shot-2017-05-01-at-12-33-50-pm-1.jpg) **Step 3:** Now, head over to this link [www.digitalocean.com](https://devopscube.com/go/digital-ocean/) and signup for a new account. This link will add an extra $10 to your credits, along with $25\. After signup, go to *Settings > Billing > Promo Code* and apply the coupon code that you have copied in step 2 from codeanywhere. ***Note:** **If you don't get the whole $35 credit, you can raise a support ticket to the Digitalocean support team. They will help you to gain the credits.* Hope you benefit from these Digital Ocean-free credits. Let us know if you have any doubts about redeeming these credits. ## Digitalocean Vs Linode Vs Vultr DigitalOcean, Linode, and Vultr are [cheap and the best cloud hosting](https://comtechies.com/cheap-and-best-cloud-hosting-solution.html?ref=devopscube.com) platforms for small and medium businesses. All three platforms are trusted by developers all over the world due to their data center presence across multiple regions. However, there are a few differences in terms of service, availability, and pricing. Read the following blogs to understand the key differences between Digitalocean, Linode, and Vultr. ****Note**: Get [$100 free credits](https://devopscube.com/recommends/linode/) from Linode to try out its functionalities. 1. [Digitalocean vs Linode](https://www.linode.com/digitalocean-vs-linode/?ref=devopscube.com) 2. [Vultr vs Linode](https://www.linode.com/vultr-vs-linode/?ref=devopscube.com) 3. [Digitalocean Vs Vultr](https://devopscube.com/recommends/vultr-vs-digital-ocean/) ## Digital Ocean Free Credit FAQs ### What happens when the credits expire? If you exhaust your free Digital Ocean credits, you will get charged for the services you use. ### Is there any restriction on services with free credits? No. You can use any service as long as you have enough credits. Once your credits are exhausted, you will be charged. ### How to get Digital Ocean Free Credits? Signup using this exclusive [$100 credit link](https://devopscube.com/recommends/digital-ocean-sidebar/) to get $100 free Digital Ocean credits to try out its services before you become a paid member. ### Is there a managed cloud hosting platform that supports Digital Ocean Cloud? Yes. [Cloudways](https://devopscube.com/cloudways-autonomous-review/), a medium-sized company, is a managed cloud hosting platform that supports the DigitalOcean cloud. It abstracts away all the administrative overhead of the cloud platform, letting you focus solely on the application. ## Conclusion If you are a small or medium-sized business, DigitalOcean Cloud is a great option as it is one of the best cloud [web hosting](https://devopscube.com/web-hosting-deals/) services. Also, developers can test and deploy applications with ease. Use the free $100 credit to explore the platform without worry. DigitalOcean is a self-managed cloud Platform. If you are looking for a managed cloud hosting service by Digital Ocean, you can try [Cloudways](https://devopscube.com/cloudways-review/) managed hosting using the [cloudways promo code](https://devopscube.com/cloudways-promo-codes/). ### Istio Certified Associate (ICA) Exam Study Guide URL: https://devopscube.com/istio-certified-associate-study-guide/ Last updated: 2026-04-24T03:03:15.000Z In this blog, you will learn how to prepare for the Istio Certified Associate (ICA) exam in a in a clear and structured way. This detailed guide will help you understand the **core concepts you must know for the ICA exam**, the domains it covers, and the resources you should use for preparation. By the end of this blog, you will be ready to tackle the exam confidently and know where to focus your study efforts. Lets get started. ## About Istio Istio is the most popular and trusted service mesh solutions in production across enterprises globally. It was originally developed by Google, IBM, and Lyft, and is now a graduated project under the Cloud Native [**Computing Foundation (CNCF)**](https://www.cncf.io/?ref=devopscube.com) Currently it is commonly used in e-commerce, telecom, finance, and SaaS industries where secure, reliable communication between services is very important. ## What is the ICA Certification? ICA is an exam officially conducted by the [Linux Foundation](https://devopscube.com/linux-foundation-certification/). It validates your foundational knowledge of Istio’s principles, architecture, traffic management, security, observability, and best practices in real-world scenarios. This certification tests your ability to set up and manage secure communication between microservices using the Istio service mesh. That is why it is one of the [best devops certification.](https://devopscube.com/devops-certifications/) ## Who Should Consider ICA Certification? Istio is a service mesh tool primarily used with [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). This certification is suitable for someone who already has a good understanding of Kubernetes and its networking. It is also useful for anyone who designs, deploys, and manages applications with many microservices. The main advantage of preparing for the Istio certification helps you handle complex service-to-service communication in Kubernetes clusters. 💡 Roles such as [DevOps engineers](https://devopscube.com/become-devops-engineer/), SREs, and cloud engineers can strongly benefit from this certification. ## Register for the ICA Certification \[Save 30% Today\] To begin your journey of becoming a **Istio Certified Associate** start by registering for the ICA exam on the Linux Foundation portal. [Save 30% on ICA Exam Today](https://training.linuxfoundation.org/certification/istio-certified-associate-ica/?ref=devopscube.com) **ICA Exam Voucher:**: Use Code **DCUBE30** at checkout ## Istio Certified Associate Exam Overview To complete the **Istio Certified Associate (ICA)**, you will get 2 hours. This exam is a bit different from many other certifications because it combines hands-on tasks (performance-based) and multiple-choice questions. So you need both practical experience and theoretical knowledge to pass the exam. The exam is conducted online, and during the exam, your screen will be monitored by a remote proctor. You will get around **15 to 20 questions**, which must be completed within the given time. This is an open-book exam, which means you can use official documentation during the examination. You do not need to memorize everything. To pass the exam, you must score at least **68%**, and the certification is valid for two years, so after you need to retake the exam to renew it. The exam costs approximately **$250**, which includes one free retake, but the cost may vary sometimes. 💡 Once purchased, the exam must be taken within one year. If you fail the first attempt, you can use the retake within the same year. ## Exam Curriculum The exam is divided into four sections, such as installation and upgrades, traffic management, securing workloads, and troubleshooting, and each has a different weightage. The following is the curriculum of the ICA examination. | Domain | Weight | Topics Covered | | ------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Installation, Upgrade & Configuration | 20% | • Installing Istio with istioctl or Helm• Installing Istio in Sidecar or Ambient Mode• Customizing your Istio installation• Upgrading Istio (Canary, In-Place) | | Traffic Management | 35% | • Configuring Ingress and Egress Traffic• Routing inside the service mesh• Defining traffic policies with DestinationRules• Configuring traffic shifting• Connecting in-mesh workloads to external services• Using resilience features (circuit breaking, failover, outlier detection, timeouts, retries)• Using fault injection | | Securing Workloads | 25% | • Configuring authorization• Configuring authentication (mTLS, JWT)• Securing edge traffic with TLS | | Troubleshooting | 20% | • Troubleshooting configuration issues• Troubleshooting the mesh control plane• Troubleshooting the mesh data plane | This is the same curriculum listed on the official website. Next, let us look at how to create a study plan and choose the right learning resources. ## ICA Certification Study Plan and Resources Making a proper study plan and consistent practice can help you score more then 90% on the examination, so let us start. ### Kubernetes Istio is a tool for Kubernetes, so you need a solid understanding of a Kubernetes cluster and its configurations. If you are new to Kubernetes, start by setting up a Kubernetes cluster on your local machine to start the practice. You can setup a lightweight [Kubernetes cluster](https://devopscube.com/production-ready-kubernetes-cluster/) on your local machine using Docker Engine. To do this, you can follow this simple guide on "[Kubernetes Kind Cluster Tutorial](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps/)". This will spin up a simple Kubernetes cluster and is sufficient for your Istio preparation. ### Service Mesh Before learning Istio, it is important to understand the service mesh concept. Service mesh helps to handle the communication between services by handling traffic control, security, and monitoring them. To learn about the Service Mesh concept, you can refer to the blog "[What is a Service Mesh?](https://aws.amazon.com/what-is/service-mesh/?ref=devopscube.com)" 💡 If you are interested in knowing about the tools that follow the service mesh concept, you can check this [List of Best Service Mesh Tools For Microservices](https://devopscube.com/service-mesh-tools/). It will give you an idea and alternatives to Istio. Next, you need to know about Istio. ### Istio Architecture Before setting up Istio, you need to understand the architecture. Learning architecture will help you identify the components of the whole Istio setup. This will be useful when it comes to deployment, upgrade, scaling, as well as to troubleshoot issues. To learn about the Istio Architecture, you can refer to the [Istio Architecture](https://devopscube.com/istio-architecture/). Once you understand the architecture, you can start the installation. ### Istio Installation Methods Istio can be installed in multiple ways on a Kubernetes cluster, but two methods are commonly used. The first method is using a [**Helm chart**](https://devopscube.com/create-helm-chart/). This method is perfect for the production environment because of its customization flexibility and is suitable for following GitOps practices. To setup the Istio using Helm chart, follow this guide [How to Set up Istio on Kubernetes Cluster?](https://devopscube.com/setup-istio-on-kubernetes/) The second method is using Istioctl, which is a command-line tool and is suitable for quick installation. This method is useful for testing and non-production environments. To install Istio using Istioctl, you can refer to this documentation oo "[Istall Istio with Istioctl](https://istio.io/latest/docs/setup/install/istioctl/?ref=devopscube.com)" Like multiple installation methods, Istio has two operation modes. ### Istio Operation Modes Istio has different operation methods 1. Sidecar mode and 2. Ambient mode. The original operation mode is **sidecar** where each Istio enabled application pod will be injected with an Istio sidecar proxy container that actually manages the traffic. To setup Istio with sidecar mode, follow this guide "[How to Set up Istio on Kubernetes Cluster?](https://devopscube.com/setup-istio-on-kubernetes/)" However, sidecar mode is more resource intensive. To solve this, Istio introduced a new mode called Ambient mode. Istio Ambient mode there will not be any sidecars injected to workloads. Instead dedicated node level proxy pod (ztunnel) gets deployed, and they handle the mesh traffic. To setup the Ambient mode on a Kubernetes cluster, you can refer "[Set Up Istio in Ambient Mode](https://devopscube.com/setup-istio-ambient-mode/)". Next, you should learn to upgrade the istio to new versions. ### **Upgrades and Customization** Once the installation is completed and everything is running in production, you will need to perform the periodical patches and upgrades to keep the system safe and stable. In production, upgrades should be performed carefully because if any issues happens it affects all the workloads. So, before you move to the new Istio version, all the testing should be done, and gradually shift the traffic from the old to the new. This method is called **canary** and is good for avoiding downtimes and unwanted failures. To upgrade Istio using the canary method, you can refer to this documentation "[Istio canary upgrades](https://istio.io/latest/docs/setup/upgrade/canary/?ref=devopscube.com)". For non-producation environments like development or testing, we can even go with **in-place upgrades**. In this method, the new pods will directly replace the old ones, so it is faster than the canary but not safe for production. For the in-place Istio upgrades, you can refer to the documentation of "[Istio in-place upgrades](https://istio.io/latest/docs/setup/upgrade/in-place/?ref=devopscube.com)" Now, we know how to set up Istio, so we can start the traffic management configurations. ### **Ingress and Egress Traffic on Istio** Istio is mainly used for the internal traffic managment which means the communication between the services inside the cluster. To route incoming traffic from outside the cluster, Istio has a component called Istio Gateway. Istio Gateway receives the external traffic and then routes it to the correct backend services inside the cluster. To learn about the Istio ingress and egress gateway, you can refer to "[Istio Gateway](https://istio.io/latest/docs/reference/config/networking/gateway/?ref=devopscube.com)". This is how the ingress and egress traffic works on Istio. Next, we need to look into the routing configurations. ### Routing and Traffic Shifting on Istio Istio manages the routing inside the cluster using custom resources. **VirtualService** CRD is used to tell the traffic where to go, and the **DestinationRules** decide how to behave once it reaches the destination. Istio is best for canary deployments, which means that when a new version of the application is released, we can gradually shift the traffic from the old to the new. To learn about the canary deployments using the Istio, you can refer to the documentation of "[Canary deployments using Istio](https://istio.io/latest/blog/2017/0.1-canary/?ref=devopscube.com)" This is how we control the traffic inside the cluster, but we should know what else Istio can do. ### Resilience in Istio Istio comes with features to make the application workload more reliable,**,** even when an issue occurs. **Circuit breaking** is one of the features that means that if a service fails or has a delay in response, Istio stops sending traffic for a while to avoid overload to other services. Same as **timeouts and retries** will help to make a decision when a service is not receiving requests, like try a couple of times or stop sending requests. **Fault injection** is another important feature of Istio that intentionally creates delays and errors in the system. This helps us to know how the system behaves when it actually fails. Now, we need to know the security features offered by **Web Tokens**Istio. ### Istio Security Istio secures the communication between services by encrypting them. To create the encryption, Istio generates workload identities by using the SPIFFE framework. These identities are used to set up the **Mutual TLS** during the communication inside the cluster. In Istio, we can control who can access at what level of permission on a service by using the **authorization policies.** For the **authentication**, Istio uses JSON Web Tokens as well, so that the services trust each other before establishing the connection. Now, we have the clear picture of the Istio security so we need to know how we can troubleshoot if anything goes wrong. ### Debugging When it comes to the ambient mode, all the traffic related logs will be genereated in the proxy pods, we can use the tools like [Loki](https://devopscube.com/grafana-loki-architecture/), [Prometheus](https://devopscube.com/prometheus-certified-associate/) and [Grafana](https://devopscube.com/grafana-loki-architecture/) to store and visualize them. Also,m we can use the **Kiali** dashboard to see how the traffic is routing between services. Apart from that, we can use the **Istioctl** utility to analyze the connection and check the status of the proxies to see where the issues occur. Now, we have covered all the sections that you should learn to pass the examination. In the next section, we can see some of the tips for the examination. ## Istio Certification Preparation Tips If you prepare every day for at least one to two hours, you can crack the certification with a good score within one to two months. Focus mainly on hands-on practice, but also **spend some time on concepts** to clear the MCQ section. The exam duration is two hours, so you must be **quick while solving questions**. Do not memorize configurations. Instead, get familiar with the official documentation pages. This helps you quickly copy example configurations and change only the required values. Practice creating [YAML file](https://devopscube.com/create-kubernetes-yaml/)s for custom resources such as `VirtualService` and `AuthorizationPolicy`. Also, practice `istioctl` commands, especially for installation and troubleshooting. Finally, do not get stuck on one question. If you are unsure, skip it and come back to it at the end. ## Conclusion In this ICA preparation guide, we covered the key Istio topics and explained what to expect in the exam. Keep preparing until you feel confident and ready to take it. Practice as much as possible in exam-like conditions. This will help you stay calm and reduce stress during the actual exam. Also, treat certification preparation as a way to truly learn Istio. Do not limit yourself to the certification curriculum. Spend extra time exploring real production scenarios and [industry case studies](https://istio.io/latest/about/case-studies/?ref=devopscube.com) to gain deeper knowledge. This will help you both in real-world implementations and in interviews. Over to you. How are you planning to prepare for the exam? Do you want more guidance on Istio concepts, labs, or exam strategy? Share your thoughts in the comments below. ### Python For DevOps: Guide for DevOps Engineers URL: https://devopscube.com/python-for-devops/ Last updated: 2026-09-17T12:01:59.000Z In this blog, we will look at why you need Python for DevOps and its real-world use cases. Also, I have added the resources and roadmap to learn Python for a DevOps engineer. Programming is becoming an essential skill for DevOps engineers. This doesn’t mean DevOps engineers have to develop full-fledged applications like developers. The development use case is different for DevOps engineers. In my DevOps journey of more than 13 years, Python has been part of my workflow from the first year. Also, with the increasing adoption of **MLOps** and **LLMOps**, the **need for Python knowledge** among DevOps engineers is also growing. Python is widely used in these areas for automation, model pipelines, integrations, and monitoring. In my [DevOps engineers guide](https://devopscube.com/become-devops-engineer/), I have written about the importance of programming & Scripting for Devops engineers. ## Python For DevOps When it comes to DevOps, Python is the preferred programming language for automation. The latest Python Developers Survey conducted by JetBrains shows that [38% of Python usage is reported for DevOps](https://lp.jetbrains.com/python-developers-survey-2021/?ref=devopscube.com), Automation, and System Administration. ![python for DevOps survey](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-3-52.png) This is the question I get most often from the DevOps community. *What are the key areas in DevOps where Python is used?* I have grouped Python’s different use cases in DevOps into five categories. Let’s look at them one by one, ### 1\. CI/CD, Infrastructure provisioning & Configuration Management Many open-source tools are available for infrastructure provisioning, configuration management, continuous integration, continuous deployment, etc. However, there are scenarios where the native tooling functionality might not be sufficient to implement the required functionality. Here is where languages like Python come in to picture. For example, 1. Making an API call to get a secret token while deploying. 2. Reading a CSV file to get specific data during application deployments. 3. In Ansible, you can create custom modules using Python when no module is available for the implementation you are looking for. 4. In direct server deployments, Python scripts can be used to automate release steps and support deployment-specific patterns such as [zero downtime deployments.](https://www.cloudways.com/blog/zero-downtime-deployments/?ref=devopscube.com) ### 2\. DevOps Platform Tooling In most organizations, as part of platform engineering efforts, central DevOps platform teams develop the in-house platform and tooling for internal teams. While developing these platforms, DevOps engineers need to work with programming languages and scripting languages to build utilities and scripts for platform automation requirements. ### 3\. Cloud Automation Boto3 is an excellent example of Python usage for Cloud Automation. It is an extensively used python module for AWS cloud-related automation and scripts. As a DevOps engineer, you might also have to develop lambda functions in Python for infrastructure-related tasks. ### 4\. Monitoring & Alerting Even though every organization has monitoring tools, there are use cases where you need a customized solution for monitoring and alerting. You can use the relevant Python SDKs or custom modules to implement the solution in such cases. For example, a custom autoscaler based on alerts where a webhook listens to incoming alerts to take scaling decisions. You can automate the whole autoscaling process using a simple Python Flask application. ### 5\. MLOPS & LLMOps Another area where **Python is extensively used is MLOPS** (Machine Learning Operations) & **LLMOps**. When DevOps engineers work with ML application development teams, most workflows require Python. For example, [Kubeflow](https://devopscube.com/kubeflow-pipelines/) and [MLflow](https://devopscube.com/mlflow-tutorial/) are standard MLOps tools. In most cases, DevOps engineers are responsible for creating these pipelines in python in collaboration with ML engineers. In fact when I worked in a MLOPS project, I had to create the Airflow DAG's using python 💡 Read [DevOps to MLOps](https://devopscube.com/devops-to-mlops/) guide to know more on this. Also, LLMOps tools, frameworks (like LangChain, LlamaIndex, Hugging Face tools, and cloud SDKs) are written in or used with Python. Because it bridges the gap between complex data science and production engineering. Also, Python has a huge AI ecosystem of libraries (like Transformers, PyTorch, TensorFlow). It makes tasks like fine-tuning models, building training pipelines, calling APIs, and deploying services easier. ## Python Learning Roadmap For DevOps Engineers If you are starting your DevOps engineer journey and want to learn Python, the question you might have is, how much Python is required for DevOps? Here is a Python learning roadmap for DevOps Engineers with the relevant resources. 1. Python environment setup 2. Basic syntax 3. Variables 4. Python Data Types 5. Conditionals 6. Loops 7. Regular expressions. 8. Methods 9. Modules 10. Exception handling 11. Utilizing Python cloud SDKs (Boto3) Once you learn the above concepts, you can start with hands-on Python scripting on the real-world use cases listed in the next section. If you are looking for a guided way to learn Python from scratch., I recommend the following free Python resources. 1. [Learn Python 3 from Scratch](https://devopscube.com/recommends/educative-python/) 2. [Introduction to Python Programming](https://devopscube.com/recommends/python-free/) 3. [Python for Beginners – Full Course](https://www.youtube.com/watch?v=eWRfhZUzrAc&ref=devopscube.com) ## Important Python Modules for DevOps Automation There are a lot of [Python modules](https://docs.python.org/3/tutorial/modules.html?ref=devopscube.com) for various use cases. However, when it comes to DevOps, there are Python devops libraries that you will have to use repeatedly for automation tasks. Here is the list. 1. [os module](https://docs.python.org/3/library/os.html?ref=devopscube.com) 2. [platform](https://docs.python.org/3/library/platform.html?ref=devopscube.com) 3. [subprocess](https://docs.python.org/3/library/subprocess.html?ref=devopscube.com) 4. [sys](https://docs.python.org/3/library/sys.html?ref=devopscube.com) 5. [psutil](https://github.com/giampaolo/psutil?ref=devopscube.com) 6. [re (Regular Expression)](https://docs.python.org/3/library/re.html?ref=devopscube.com) 7. [python-crontab](https://pypi.org/project/python-crontab/?ref=devopscube.com) 8. [scapy](https://github.com/secdev/scapy/?ref=devopscube.com) 9. [Requests](https://pypi.org/project/requests/?ref=devopscube.com) and [urllib3](https://pypi.org/project/urllib3/?ref=devopscube.com) 10. [logging](https://pypi.org/project/logging/?ref=devopscube.com) 11. [getpass](https://docs.python.org/3/library/getpass.html?ref=devopscube.com) 12. [boto3](https://pypi.org/project/boto3/?ref=devopscube.com) 13. [paramiko](https://www.paramiko.org/?ref=devopscube.com) 14. [JSON](https://docs.python.org/3/library/json.html?ref=devopscube.com) 15. [PyYAML](https://pyyaml.org/wiki/PyYAMLDocumentation?ref=devopscube.com) 16. [pandas](https://pandas.pydata.org/?ref=devopscube.com): One of the [best data science frameworks](https://devopscube.com/list-best-frameworks-data-scientists/). However, it is very useful for DevOps automation tasks dealing with CSV files. 17. [smtplib](https://docs.python.org/3/library/smtplib.html?ref=devopscube.com) ## Real World Python Automation Use Cases For DevOps Now let's take a look at some of the real-world use cases of Python scripting in DevOps. I have added the use cases under different categories. ### Generic Python DevOps Use Cases 1. Python Script to query databases 2. Python script to execute a shell script and shell commands. 3. Querying Splunk logs for specific alerting 4. Python script to create Kafka Topics 5. Python script to take backups. 6. Python script to automatically read, add, or update [scheduled jobs ](https://devopscube.com/create-kubernetes-jobs-cron-jobs/)in the system crontab using. 7. Python script for [Kubernetes init containers](https://devopscube.com/kubernetes-init-containers/) to fetch secrets from the vault or other secrets management solutions. 8. Python script to fetch IPs of live servers in an [autoscaling group](https://devopscube.com/terraform-autoscaling-group/). 9. Python AWS Lambda function to stop running instances on weekends. 10. Python script for ETL jobs. 11. Find SSL expiry date using python 12. Develop custom CLI applications using Python 13. CRUD operations using Python for databases. 14. Custom scripts while using configuration management tools. ### Cloud-Specific Python Use Cases When working on cloud environments, you might need custom automation scripts as part of Infrastructure as code implementations. Let's take a look at some real-world cloud-specific Python use cases. 1. Provision AWS resources using Python AWS CDK. 2. Use Boto3 modules to manage AWS services. - Python Boto3 program to manage AWS ec2 instances. - Python Boto3 program to manage AWS S3 Storage. - Python Boto3 program to retrieve secrets from parameter store and secrets manager. ### Kubernetes-Specific Python Use Cases Many devops engineers had this question of how to leverage Python knowledge with Kubernetes. Following are the tasks you can do with Python for while [learning Kubernetes](https://devopscube.com/learn-kubernetes-complete-roadmap/) 1. Start by creating Python programs to interact with Kubernetes APIs using various authentication mechanisms. (Token, Certificates, etc) 2. Create a Python script that make use of the service environment variables and make calls to the service IP. 3. Try running custom Python scripts with init containers to modify a file that a container requires during runtime. 4. Write a custom webhook using Python Flask API for [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) Validating and Mutating Admission controllers. 5. Consider writing a Kubernetes operator in Python using the [Kopf framework](https://github.com/nolar/kopf?ref=devopscube.com). An example use case for a custom Kubernetes operator could be to automate the backup of etcd to Amazon S3\. You can use the kopf python framework ### Python MLOps/LLMOps Use Cases 1. Write Python scripts using **Apache Airflow** to orchestrate the movement of data from S3/SQL into training environments. 2. Using the **MLflow** Python SDK to programmatically register model versions and transition them from "Staging" to "Production. 3. Implementing **Evidently AI** or **Deepchecks** in your CI/CD pipeline to compare new production data against training data and trigger alerts if the model’s accuracy is dropping. 4. Building **FastAPI** or **BentoML** services that wrap a `.pkl` or `.onnx` model file into a production-ready REST endpoint. 5. Write "ingestion" scripts that use **LangChain** or **LlamaIndex** to chunk PDF/text data, turn them into embeddings, and push them to databases like **Qdrant** or **Pinecone**. 6. Developing Python middleware to intercept LLM calls, calculate token usage via **LiteLLM**, and log costs to a dashboard. ### Other Python AI/ML Based Use Cases With advent of AI/ML, python is used in DevOps for several AI/ML use cases. You can try out the following use cases practically to up skill in python AI/ML related DevOps tasks. 1. Implement simple GenAI based CI/CD pipeline file generator using a prompt. You can use services like Azure OpenAI. 2. Developing a AI agent to analyze logs, metrics (CPU, memory, network, application performance), and traces to automatically detect unusual patterns, potential incidents, or security threats. You can make use of logging stack like [Grafana Loki](https://devopscube.com/setup-grafana-loki/) for this use case. 3. Create a MCP server for a DevOps tool to perform actions using text contexts. 4. Create an RCA AI agent that can ingest incident data, query monitoring systems like [prometheus](https://devopscube.com/prometheus-architecture/) and knowledge bases (via MCP servers) for relevant information, and then present a ranked list of potential causes. 5. Develop a GenAI powered chatbot that can understand natural language commands from DevOps engineers, perform DevOps related repeated tasks. 6. Implement a GenAI powered chatbot with RAG and vector database to query knowledge base and provide apt information related to project implementations. 7. Using **LangGraph** or **CrewAI** to define multi-agent workflows (e.g., an "Investigator Agent" finds a bug, and a "Coder Agent" proposes a fix). ## Python For DevOps GitHub Repo I have created a GitHub repository where DevOps-related Python scripts and programs will be added for learning and implementation. The repo primarily focuses on generic Python scripts, boto3, OS-related Python scripts, and more. It is an open-source repo that will accept community contributions. **Repo**: [Python for DevOps Scripts](https://github.com/techiescamp/python-for-devops?ref=devopscube.com) Or you can clone the repo. ``` git clone https://github.com/techiescamp/python-for-devops ``` ## How Important is Python for DevOps Engineers? Coding for DevOps engineers is a highly debated topic. However, In my experience as a DevOps engineer, I encountered many situations where I had to use Python for DevOps in terms of automation, continuous integration/deployment/delivery (CI/CD), and custom auto-scaling solutions. Also, When it comes to DevOps engineer interviews, Python plays a key role. Most Devops preliminary interview rounds have live coding sessions. Therefore, you will have to solve programming challenges related to devops. With a good knowledge of Python, you can easily crack these interviews. I have searched a job portal for Devops openings, and more than 7941 jobs mentioned Python as a requirement in all experience levels. ![Python devops engineers jobs](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-56.png) ## Python Automation Case Studies If you want to know how Python is real-world DevOps project implementations, you should look at case studies published by organizations. Following are some of the case studies that will help you gain more insights into automation using Python. 1. [How NetFlix uses python](https://netflixtechblog.com/python-at-netflix-bba45dae649e?ref=devopscube.com) 2. [How Facebook Engineering Uses Python](https://engineering.fb.com/2016/05/27/production-engineering/python-in-production-engineering/?ref=devopscube.com) ## Python For DevOps FAQs ### Is Python useful for DevOps? Python is one of the best programming languages for Automation in DevOps. DevOps teams use Python for automating repetitive tasks, infrastructure provisioning, and API-driven deployments. CI/CD workflows and much more. ### Should I learn Golang or Python for DevOps? Golang & Python have widely used programming languages in DevOps. Choosing a language depends on the use case. Python is easy to get started and has strong support for automation, and system administration tasks, and can be used to build complex workflows and pipelines along with existing devops tools. Golang offers better performance and more advanced features for distributed systems. Tools like Kubernetes, and Terraform are built with Golang and you can extend these tools using Golang. Checkout [Golang for Devops](https://devopscube.com/golang-for-devops/) blog to know more. ## Conclusion Programming and scripting knowledge is becoming essential for DevOps Engineers. And one of the [best programming languages for DevOps](https://devopscube.com/programming-languages-devops/) is also python. Also, When it comes to DevOps tools, you will end up using a programming or scripting language to achieve custom implementations. Even if you are not actively working on scripting in your day-to-day devops engineer job, I would highly suggest you learn Python and create open-source utilities and scripts. It will definitely help you in a long run. ### Etcd Backup and Restore on Kubernetes Cluster [Tutorial] URL: https://devopscube.com/backup-etcd-restore-kubernetes/ Last updated: 2026-01-16T09:38:53.000Z In this kubernetes tutorial, you will learn the etcd backup and restore on Kubernetes cluster with an etcd snapshot. In Kubernetes architecture, etcd is an integral part of the cluster. All the cluster objects and their state is stored in etcd. Few things you should know about etcd from a Kubernetes perspective. 1. It is a consistent, distributed, and secure key-value store. 2. It uses [raft protocol.](https://raft.github.io/?ref=devopscube.com) 3. Supports highly available architecture with stacked etcd. 4. It stores kubernetes cluster configurations, all API objects, object states, and [service discovery](https://devopscube.com/open-source-service-discovery/) details. If you want to understand more about etcd and how kubernetes uses it, I recommend reading the comprehensive [Kubernetes Architecture](https://devopscube.com/kubernetes-architecture-explained/) post. Also, if you consider [Kubernetes design best practices](https://devopscube.com/key-considerations-kubernetes-cluster-design-setup/), Kubernetes etcd backup and restore is one of the important aspects under the backup strategy. ## Kubernetes etcd Backup Using etcdctl Here is what you should know about etcd backup. 1. etcd has a built-in snapshot mechanism. 2. `etcdctl` is the command line utility that interacts with etcd for snapshots. ![etcd backup workflow using etcdctl](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-25.png) Click to view in HD Follow the steps given below to take an etcd snapshot. ### Step 1: Log in to the control plane. SSH into your control plane to backup ETCD. ### **Step 2:** Install Required Tools We need two tools called etcdctl and etcdutl to backup and restore ETCD. If you don't have etcdctl and etcdutl installed in your cluster, install it using the following script. ```bash ARCH=$(uname -m) if [ "$ARCH" = "x86_64" ]; then ARCH_TYPE="amd64" elif [ "$ARCH" = "aarch64" ]; then ARCH_TYPE="arm64" else echo "Unsupported architecture: $ARCH" exit 1 fi ETCD_VER=v3.6.7 DOWNLOAD_URL=https://storage.googleapis.com/etcd DOWNLOAD_FILE=etcd-${ETCD_VER}-linux-${ARCH_TYPE}.tar.gz mkdir -p /tmp/etcd-download curl -L ${DOWNLOAD_URL}/${ETCD_VER}/${DOWNLOAD_FILE} -o /tmp/${DOWNLOAD_FILE} tar xzvf /tmp/${DOWNLOAD_FILE} -C /tmp/etcd-download --strip-components=1 sudo mv /tmp/etcd-download/etcd /tmp/etcd-download/etcdctl /tmp/etcd-download/etcdutl /usr/local/bin/ rm -f /tmp/${DOWNLOAD_FILE} rm -rf /tmp/etcd-download ``` ### Step 3: Verify the Installation Run the following commands to verify the installation. ```bash etcdctl version etcdutl version ``` ### Step 4: Get Required Information for Backup We need to get the following four pieces of information to `etcdctl` to take an etcd snapshot. 1. etcd endpoint (--endpoints) 2. ca certificate (--cacert) 3. server certificate (--cert) 4. server key (--key) You can get the above details in two ways. From the etcd static pod manifest file located at `/etc/kubernetes/manifests/etcd.yaml` the location. ![getting cert files from etcd static pod manifest](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-21.png) You can also get the above details by **describing the etcd pod running** in the `kube-system` namespace. While describing the pod, replace **`etcd-master-node`** with your etcd pod name. ```bash kubectl get po -n kube-system kubectl describe pod etcd-master-node -n kube-system ``` Another way to view the etcd-server parameters faster is using the following command. ```bash ps -aux | grep etcd ``` Choose a method that you are comfortable with the get the cert details. ### Step 4: Backup using etcdctl To backup, take an etcd snapshot backup using the following command. ```bash sudo etcdctl \ --endpoints= \ --cacert= \ --cert= \ --key= \ snapshot save ``` Before running the backup command, create a backup directory where we will be saving the snapshot. ```bash sudo mkdir -p /opt/backup/ ``` The command looks like the following when you add the actual location and parameters. Execute the command to perform a backup. You can replace` /opt/backup/etcd.db` with the location and name of your choice. ```bash sudo etcdctl \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key \ snapshot save /opt/backup/etcd.db ``` On a successful execution you will get a `Snapshot saved at /opt/backup/etcd.db` message as shown below. ```bash root@master-node:/opt/backup# sudo etcdctl \ --endpoints=https://192.168.201.10:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key \ snapshot save /opt/backup/etcd.db 2022-09-29 08:23:43.027261 I | clientv3: opened snapshot stream; downloading 2022-09-29 08:23:43.088264 I | clientv3: completed snapshot read; closing Snapshot saved at /opt/backup/etcd.db ``` Also, you verify the snapshot snapshot status using the etcdutl command. ```bash etcdutl --write-out=table snapshot status /opt/backup/etcd.db ``` Here is an example output. ```bash +----------+----------+------------+------------+ | HASH | REVISION | TOTAL KEYS | TOTAL SIZE | +----------+----------+------------+------------+ | b7147656 | 51465 | 1099 | 5.1 MB | +----------+----------+------------+------------+ ``` ## Kubernetes etcd Restore Using Snapshot Backup Now we have the backup in the `/opt/backup/etcd.db` location. We will use the snapshot backup to restore etcd with the help of etcdutl. > Before restoring, you should stop the `kube-apiserver` and `etcd` pods. Because, the API server continously reads or writes to etcd, if API server is running during restore, it can cause data corruption. ### Step 1: Move Statis Pod Manifests First, we need to move the manifest files of the API server and ETCD. Since they are static, their pods will be recreated, even if you delete them. Use the following commands to move the files to `/tmp` location. ```bash sudo mv /etc/kubernetes/manifests/kube-apiserver.yaml /tmp/ sudo mv /etc/kubernetes/manifests/etcd.yaml /tmp/ ``` Once the manifests are moved, the **kube-apiserver** and **ETCD** pods will be terminated within a few seconds. You can verify this by running the **crictl** command. Make sure the API server and ETCD containers are no longer running. Wait until the containers are fully removed before proceeding. ```bash crictl ps ``` ### Step 2: Restore ETCD using etcdutl Now we have the backup in the `/opt/backup/etcd.db` location, let's restore it. Given below is the etcdutl command to restore etcd**.** ```bash sudo etcdctl snapshot restore ``` Let's execute the etcd restore command. In my case `/opt/backup/etcd.db` is the backup file. ```bash sudo etcdctl snapshot restore /opt/backup/etcd.db ``` If you want to use a specific data directory for the restore, you can add the location using the `--data-dir` flag as shown below. ```bash sudo etcdutl --data-dir /var/lib/etcd-from-backup \ snapshot restore /opt/backup/etcd.db ``` If the restoration is successful, you will get the output logs with restored snapshot message as shown below. ![etcd snapshot backuped message](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-22.png) After restoring the etcd snapshot to a new directory, we need to update `etcd.yaml` because it still references the old data path. Generally, you should change only the `hostPath`. This keeps the internal container structure exactly as kubeadm expects it, while pointing it to your new data folder. Edit the `/tmp/etcd.yaml` file modify the following sections and change the new directory in the volume section, as given below. ```bash volumes: - name: etcd-data hostPath: path: /var/lib/etcd-from-backup type: DirectoryOrCreate ``` Then, move the manifest files back to the original static pod directory. This will redeploy the **kube-apiserver** and **ETCD** pods. ```bash sudo mv /tmp/kube-apiserver.yaml /etc/kubernetes/manifests/ sudo mv /tmp/etcd.yaml /etc/kubernetes/manifests/ ``` It will take around **10-15 seconds**for the API server and ETCD to start running. Once the Pods are back up, verify the cluster status. It is the ultimate test is whether `kubectl` can see the objects that were in the backup ```bash $ kubectl get no NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 3h13m v1.34.0 node01 Ready worker 3h11m v1.34.0 node02 Ready worker 3h11m v1.34.0 ``` You can also check the ETCD status using the following command. Replace the endpoint IP with your ETCD endpoint IP. ```bash $ sudo etcdctl \ --endpoints=https://192.168.201.10:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key \ endpoint health https://192.168.201. 10:2379 is healthy: successfully committed proposal: took = 13.107842ms ``` ## etcd Backup FAQs ### How to take etcd backup in Kubernetes? To take the etcd backup, you need to the etcdctl command line utility. You need to use the etcdctl snapshot command with the etcd certificates to perform a backup operation. ## Conclusion In this blog, we learned **Kubernetes etcd backup and restore** using `etcdctl` and `etcdutl` command line utility. **etcd backup, and restore** are essential tasks in Kubernetes cluster administration. Also, it is an important topic in the CKA certification exam. If you are preparing for the CKA exam, do check out the [CKA exam study guide](https://devopscube.com/cka-exam-study-guide/) and for the exam discount voucher, check the [Kubernetes certification coupon](https://devopscube.com/kubernetes-certification-coupon/). ### List of Best Cloud Computing Certifications for 2026 URL: https://devopscube.com/best-cloud-computing-certifications/ Last updated: 2026-01-14T06:18:46.000Z Cloud technology offers immense opportunities for those who want to shape their career in the IT sector. So, how do you check if you are skilled enough to work in this lucrative field? Getting a cloud certification is the best bet, and promoting yourself as a bankable asset. In this guide, we will look at the **best cloud computing certifications** to take your cloud skills to the next level. [Cloud computing](https://devopscube.com/cloud-computing-trends/) is not so new in the IT industry. Over the years, it has evolved as a field that attracts many IT professionals. And this field has been credited for generating massive opportunities and topping the hot prospect charts. Cloud can not only offer storage solutions but can also run data centers on the cloud, enhancing efficiency and increasing cash flow for businesses. Moreover, with the advent of the [DevOps methodology](https://devopscube.com/what-is-devops-what-does-it-really-mean/), the cloud has become an integral part of any project to speed up application development, deployment, and testing. ## What are the Best Cloud Computing Certifications? Here are some of the **best cloud computing certifications** that are ideal for an upcoming [cloud engineer](https://devopscube.com/advanced-cloud-engineer-bootcamp/) to shape their career in the right direction. ### 1\. AWS Cloud certifications This is currently one of the best options for an upcoming cloud technician, as there are a plethora of opportunities. You can become a cloud-based architect or designer and help various companies in setting up their cloud platform. As a matter of fact, AWS is one of the sought-after skill sets in the current [DevOps market](https://devopscube.com/kubernetes-and-devops-job-market/). Being an AWS-certified architect or a developer definitely has an edge over other certifications and might be the best bet going forward. There are three types of certifications namely Associate and Professional specialties. Another very good option for you is to become a DevOps engineer, which will catapult you to becoming the most versatile and fruitful asset for any company. This will help you not only get a grip on the program design but also on the networking aspects. There are some other options as well, such as developer and cloud administrator, which will also create a niche for yourself. The following are the available [AWS certifications](https://aws.amazon.com/certification/?ref=devopscube.com) | Certification | Certification Category | | ----------------------------------- | ---------------------- | | AWS Certified Cloud Practitioner | Foundational | | AWS Certified Solutions Architect | Associate | | AWS Certified Developer - Associate | Associate | | AWS Certified SysOps Administrator | Associate | | AWS Certified Solutions Architect | Professional | | AWS Certified DevOps Engineer | Professional | | AWS Certified Advanced Networking | Specialty | | AWS Certified Data Analytics | Specialty | | AWS Certified Database | Specialty | | AWS Certified Machine Learning | Specialty | | AWS Certified Security | Specialty | | AWS Certified: SAP on AWS | Specialty | ### 2\. Azure Cloud certifications This one is probably the best choice for you if you are looking to keep up with the changes in the modern Microsoft cloud-based business. There are basically two certifications that you can go through when you are looking to work on Azure. 1. The first one is a cloud and infrastructure course that entitles you to learn about the operation and management of the cloud-based platform. This is a short-term course and enables you to pursue a number of lucrative jobs in the cloud sector, such as a cloud administrator or an information security analyst. 2. The second certification is a more detailed one and can help you to go in depths of the cloud computing. It will help you in understanding the design, operation, management, and removal of bugs from the cloud network. You can choose among various opportunities like data administrator, designer, or operational executive. Check out all the available [Azure Cloud Certifications](https://docs.microsoft.com/en-us/learn/certifications/?ref=devopscube.com). | Certification | Level | | -------------------------------------- | ------------ | | Azure AI Engineer Associate | Intermediate | | Azure Administrator Associate | Intermediate | | Azure AI Fundamentals | Beginner | | Azure Solutions Architect Expert | Advanced | | Azure Security Engineer Associate | Intermediate | | Azure Data Scientist Associate | Intermediate | | Azure Developer Associate | Intermediate | | Azure Database Administrator Associate | Intermediate | | Azure Network Engineer Associate | Intermediate | ### 3\. Google Cloud Certifications Next on our list is the Google Cloud certification. Currently, Google Cloud has eleven different certifications on the cloud. It covers the following domains. 1. Cloud Engineering 2. Cloud Architecture 3. Data Engineering 4. DevOps 5. Network 6. Machine Learning The certifications are categorized into the following three 1. Foundational certification 2. Associate certification 3. Professional certification Check out all the [Google Cloud certifications.](https://cloud.google.com/certification?ref=devopscube.com#why-get-google-cloud-certified) | Certification | Certification Category | | ----------------------------------------- | ---------------------- | | Professional Machine Learning Engineer | Professional | | Professional Data Engineer | Professional | | Associate Cloud Engineer | Associate | | Professional Cloud Architect | Professional | | Generative AI Leader | Foundational | | Professional Cloud Database Engineer | Professional | | Professional Cloud DevOps Engineer | Professional | | Professional Cloud Security Engineer | Professional | | Professional Cloud Network Engineer | Professional | | Professional Security Operations Engineer | Professional | | Cloud Digital Leader | Foundational | | Associate Cloud Engineer | Associate | ### 4\. CompTIA Cloud+ Certification Another certification that is aimed at making professionals market-ready is the CompTIA Cloud+ certification. The best thing about this certification is the fact that it can help you improve your technical as well as business acumen related to cloud computing. This proves to be quite beneficial, especially when you start working in a business environment. A highly rated cloud certification for freshers as well as established engineers can improve prospects in the market and enhance income. Check out [CompTIA Cloud+ Certification](https://www.comptia.org/certifications/cloud?ref=devopscube.com#examdetails). ### 5\. VMware Cloud Certification Another very popular certification is the VMware certification. VMware is a pioneer in the cloud and virtualization domain, so any individual having these certifications will reap huge rewards. From the foundation course to sharpening your skills and the specialized virtualization and architecture design, there are endless options available to you. Check out all the [VMWare Cloud Certifications.](https://www.vmware.com/learning/certification.html?ref=devopscube.com) ### 5\. Oracle Cloud Infrastructure (OCI) Certifications If you are working on Oracle products or have clients who use Oracle Cloud, having an Oracle Cloud Infrastructure certification will add value to your career. OCI offers the following certifications. 1. Oracle Cloud Platform Digital Assistant Certified Professional 2. Oracle Cloud Infrastructure Certified Architect 3. Oracle Cloud Infrastructure Observability and Management Certified Professional Certification 4. Oracle Cloud Infrastructure Certified Developer Professional Certification ## Other Cloud Computing Certifications There are several other options available in the market, but you must look for options that can boost your career. When you get a cloud certification, your income tends to rise meteorically. An average cloud engineer makes around **$90K** in a year. But after these certifications, it may go up to around **$150,** annually, which shows the importance of these certifications. However, you must analyze the demands in the market before choosing any type of certification to make sure that you can have good career and employment opportunities. The following are some of the other cloud certifications. 1. [Alibaba Cloud Certification.](https://edu.alibabacloud.com/certification?ref=devopscube.com) 2. [HashiCorp Cloud Engineer Certifications](https://www.hashicorp.com/certification?ref=devopscube.com) 3. [Kubernetes Certifications](https://devopscube.com/best-kubernetes-certifications/) Also, if you are looking for a Cloud certification training course and practice test, you can take a look at Whizlabs. Also, with the [Whizlabs promo code](https://devopscube.com/whizlabs-promo-code-coupon/), you can get up to a 63% discount on cloud certification practice tests. ## Job Market Demand For Cloud + AI Skills The global job market is in strong demand for professionals proficient in both cloud computing and AI. Based on 2023-2024 surveys, it shows that [67% of tech employers](https://www.secondtalent.com/resources/ai-adoption-in-enterprise-statistics/?ref=devopscube.com) are now seeking AI skills in job candidates. In fact, AI runs on the cloud, and many AI-related job postings clearly mention AWS, Azure, or GCP experience. A [2025 analysis of AI engineer job](https://365datascience.com/career-advice/career-guides/ai-engineer-job-outlook-2025/?ref=devopscube.com) postings found that cloud platform skills were listed in a significant share of roles, such as AWS in **33%**, Azure in **26%**. So, this shows that cloud deployment skills are becoming as crucial as machine learning knowledge for AI professionals. ## How To Shape Your Career in Cloud Computing? A cloud certification course will not only give you adequate knowledge and skills to compete in the job market but also provide employers with an opportunity to measure your skills against their requirements. For example, according to the report, [43% of IT decision-makers](https://www.globalknowledge.com/en-SA/resources/articles/10-top-paying-it-certifications?ref=devopscube.com) are investing in cloud computing certifications for their employees, and 29% say that cloud computing is one of the hardest skills to hire for and is in strong demand. By enrolling in a cloud-based certification, you will definitely increase your stock in the market and boost your career to new heights. Fortunately, there are many top institutes that might help you out with an array of cloud-based certifications to shape your career to new heights. ## Conclusion In this guide, we have looked at the best cloud certifications that can boost your career by showcasing cloud skills. There are cloud certifications from beginner to expert level. Choosing the certification level is based on your skills and career path. Also, if you are a [DevOps Engineer](https://devopscube.com/become-devops-engineer/) looking for certifications in DevOps, look at the comprehensive guide on the [best devops certifications](https://devopscube.com/best-devops-certifications/). ### How To Install Helm For Kubernetes URL: https://devopscube.com/install-configure-helm-kubernetes/ Last updated: 2026-02-02T07:13:03.000Z This post walks you through the steps to install Helm on different platforms and shows you how to verify the installation using Helm charts. By the end of this guide, you will have learned: - The prerequisites and permissions required for using Helm - How to install Helm using different methods - How to add a chart repository and search for Helm charts - How to deploy a sample Helm chart to validate your setup ## Helm Prerequisites You should have the following before getting started with the Helm setup. 1. A running [Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/). 2. The Kubernetes cluster API endpoint should be reachable from the machine you are running Helm. 3. You should be able to authenticate to the cluster using kubectl, and your user should have cluster-admin permissions 💡 Why cluster admin permissions? Many Helm charts require elevated permissions to install components like RBAC resources, CustomResourceDefinitions (CRDs), or cluster-wide resources. Cluster-admin permissions ensure Helm can perform all necessary operations without permission conflicts ## Method 1: Install Helm Using Bash Script I recommend this method if you are setting up a test environment in your local workstation or a server. For project requirements, please follow the binary installation of the specific version that is explained in the next section. ****Note:** The workstation you are running should have the [kubectl context](https://devopscube.com/kubectl-set-context/) set to the cluster you intend to manage with Helm. **Step 1:** Download the latest Helm installation script. ```bash curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 ``` **Step 2:** Add execute permissions to the downloaded script. ```bash chmod +x get_helm.sh ``` **Step 3:** Execute the installation script. This script will automatically find the right binary for your system. ```bash ./get_helm.sh ``` **Step 4:** Validate Helm installation by executing the Helm command. ```bash helm version ``` ## Method 2: Install Helm 4 From Binary This method is recommended for project requirements where you can have a specific version of Helm installed across all the environments. For example, if you are using [Jenkins](https://devopscube.com/jenkins-architecture-explained/) for Helm deployments, ensure the [Jenkins agent ](https://devopscube.com/setup-slaves-on-jenkins-2/)where the Helm command runs has kubectl configured with admin permissions. **Step 1:** Head over to the [GitHub Helm release page](https://github.com/helm/helm/releases?ref=devopscube.com) and copy the Linux amd64 link for the required version. ![helm installation binary - release page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-19.png) **Step 2:** Download the binary using wget. ```bash wget -O helm.tar.gz https://get.helm.sh/helm-v4.0.4-linux-amd64.tar.gz ``` **Step 3:** Untar the downloaded file. ```bash tar -zxvf helm.tar.gz ``` **Step 4:** Move the helm executable to the bin directory. ```bash sudo mv linux-amd64/helm /usr/local/bin/helm ``` **Step 5:** Validate by executing the helm command. ```bash helm ``` ## Method 3: Install Helm From Package Managers For Mac, ```bash brew install helm ``` To install Helm on Ubuntu, use the following commands. ```bash sudo apt-get install curl gpg apt-transport-https --yes curl -fsSL https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/helm.gpg] https://packages.buildkite.com/helm-linux/helm-debian/any/ any main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm ``` For Windows, ```bash # For Scoop scoop install helm #For Chocolatey choco install kubernetes-helm ``` For other installation methods, check the [official documentation](https://helm.sh/docs/intro/install?ref=devopscube.com). ## Add Chart Repository 💡 A Helm chart repository is a centralized hub where Helm charts are stored, organized, and shared for easy distribution and installation. You can think of it like a package registry, similar to npm for Node.js or PyPI for Python. Chart repository makes it simple to find and use pre-configured helm charts for applications. Now that we have installed Helm, the next step is to add the chart repository. Now, add the chart repo for installing the stable charts. ```bash helm repo add argo https://argoproj.github.io/argo-helm ``` Now, you can search the available chart using the search command. For example, if you are looking for Argo Helm charts, you can search for the available Argo chart using the following command. ```bash $ helm search repo argo NAME CHART VERSION APP VERSION DESCRIPTION argo/argo 1.0.0 v2.12.5 A Helm chart... argo/argo-cd 9.3.4 v3.2.5 A Helm chart... argo/argo-ci 1.0.0 v1.0.0-alpha2 A Helm chart... argo/argo-events 2.4.19 v1.9.9 A Helm chart... argo/argo-lite 0.1.0 Lighweight... argo/argo-rollouts 2.40.5 v1.8.3 A Helm chart... argo/argo-workflows 0.47.0 v3.7.7 A Helm chart... argo/argocd-applicationset 1.12.1 v0.4.1 A Helm chart... argo/argocd-apps 2.0.4 A Helm chart... argo/argocd-image-updater 1.0.4 v1.0.2 A Helm chart... argo/argocd-notifications 1.8.1 v1.2.1 A Helm chart... ``` The charts shown above are the charts available in argo Helm repo. 💡 Organizations usually setup their own chart repoitory using tools like [Harbor](https://goharbor.io/?ref=devopscube.com), [ChartMuseum](https://chartmuseum.com/?ref=devopscube.com) etc.. Also tools like [JFrog](https://devopscube.com/setup-nexus-kubernetes/), Nexus also supports helm chart repositories. When it comes to cloud AWS ECR supports Helm charts as OCI artifacts. Google Artifact Registry support Helm charts Azure Container Registry also support Helm charts Alternatively, you can search for stable community charts via [artifacthub.com](https://artifacthub.io/?ref=devopscube.com) where you can find many community-contributed Helm charts. ![search helm charts in Artifacthub](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-38.png) ## Install & Validate Helm Chart To validate the Helm setup, let's set up [Argo CD](https://devopscube.com/setup-argo-cd-using-helm) using the Helm chart available. **Step 1:** First add the argo Helm repo. ```bash helm repo add argo https://argoproj.github.io/argo-helm ``` **Step 2:** Update the chart repo. ```bash helm repo update ``` **Step 3:** Let's install the Argo CD chart and test the setup. The Argo CD pods will be deployed in the default namespace. ```bash helm install argocd argo/argo-cd ``` Here `argocd` is the custom release name. You can give the name of your preference. **Step 4:** Now, check the status of the Argo CD Helm deployment using the following command. It should show the status of the deployment. ```bash helm ls ``` Alternatively, you can use the kubectl command to check the Argo CD pods deployed in the default namespace. ```bash kubectl get po ``` **Step 4:** Now, to remove the deployment after validation, all you have to do is uninstall the deployment using its release name. ```bash helm uninstall argocd ``` ## Upgrade Helm Executable If you are using an older version of Helm and want to upgrade it to the latest version, you can use the following steps, depending on your OS type. For MAC, ```bash brew update brew upgrade helm ``` For Linux, The following script will fetch the latest version and upgrade it. ```bash curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4 | bash ``` For Windows, ```bash choco upgrade kubernetes-helm ``` After the upgrade, check the version using the following command. ```bash helm version ``` ## Conclusion In this post, we have seen how to install Helm, install the chart repo, and validate the installation using a sample Helm deployment. When you use Helm for project use cases, it is recommended that you create your own Helm charts with approved [container](https://devopscube.com/what-is-a-container-and-how-does-it-work/) images from the security team. If you use community Helm charts in project environments, ensure you replace the community [Docker images](https://devopscube.com/build-docker-image/) with custom-built images. Next, look at the comprehensive beginner's guide on [how to create a Helm chart](https://devopscube.com/create-helm-chart/). It covers the helm chart development and its best practices using step-by-step guides. ### Best Programming Languages to Learn in 2026 [Updated List] URL: https://devopscube.com/best-programming-languages-list/ Last updated: 2026-01-12T07:07:50.000Z This is a comprehensive list of the **best programming languages** you can learn in 2026, with potential salary, market demand, and popularity. Development is an ever-upgrading area to work in. Global involvement and changing market demands have resulted in a plethora of programming languages, arrayed to confuse new learners. You may find students asking queries, like: 1. To learn languages like GO and Kotlin, or is it better to stick to legendary languages like C and Java? 2. Is it Python making the louder roar, or Scala is dragging more attention in the tech world All in all, it’s a great puzzle to solve and select the best language to learn among hundreds. However, we’ve jotted down the evens and odds of the **best programming languages**, which will pay the highest and will remain in **great demand during 2026**. Pick as per your career choices: ## What are the Best Programming Languages to Learn in 2026? Here is how we arrived at this list. 1. This list is based on the data collected from popular indexes like **TIOBE & PYPL.** 2. We have done research on developer surveys conducted by several organizations, like Stackoverflow & Github. 3. We have taken the average salaries from the research done by popular job websites like Indeed, Salary, Talent, etc. ### 1\. Python Picking the best of C and C++, Python is made. It is a very powerful language, high-level programming language, capable of structuring a clear, small-scale program as well as large-scale programs with the same ease. Python is the guy that everyone likes at the party. The community support has grown over the years, and now it is a huge name in the geek community. Python is quite simple to learn and follows conventional object-oriented programming concepts. R is not well-suited to fit in as a comprehensive tool for data scientists. Python fills in those gaps as it is a lucid and practical tool. A data scientist should know deep learning, a rising subject in the machine learning domain. And, Python has all the capabilities and a vibrant community to help you achieve your learning goals. Naturally, it is **one of the best programming languages** if you are planning to move into the field of data analytics, data science, or big data. Since Python puts a lot of emphasis on readability, it is quite easy to understand the code written by others. You can also run machine learning algorithms using Scikit-learn, the native machine learning algorithm. Applications like YouTube, Instagram, Spotify, Netflix, Reddit, etc. use Python for their services. Here is a study from JetBrains on Python usage. **55% of the respondents use Python for Data Analytics.** ![Percentage of engineering using Python for data analytics.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-38.png) The following are the top use cases for Python. 1. Web development 2. Data Science 3. Machine Learning 4. DevOps/SRE/System Administration 5. Web Scrapping 6. Game Development Also, if you look at the [best programming language for DevOps](https://devopscube.com/programming-languages-devops/) engineers, Python is at the top. The Average Python Developer Salary in 2026: **$110,416 to $128,000** #### Who Should Learn Python? Python has a huge demand in the areas of Data Science, Data Engineering, Machine Learning, web development, and DevOps platform engineering. It is a good option to learn for beginners who wish to perform expert-level tasks. You can seek a lot of awesome career opportunities by learning this language. ### 2\. Java Write anywhere, run anywhere – the mantra of Java is quite appealing to developers. It is an all-purpose friend, whether you are coding an application or planning to become a data scientist or a mobile app developer, Java can make your life easy! Since a large part of Android runs on Java, it is beneficial to learn to program in Java. Then you can probably start learning Android SDK and focus on app development in a full-fledged way. As per the developer survey, **35.35% of the respondents use Java**. The following are some of the top organizations that use Java for their workloads. 1. Uber. 2. Google 3. Netflix 4. Pinterest. 5. Spotify. 6. Airbnb 7. Amazon If you want to learn a traditional language, then Java will be a safe bet. Many distributed systems like Storm, Kafka, etc. are written in Java. If you check open-source projects from the Apache Foundation, **57.6% of the applications are written in Java.** ![Usage of Java in Open Source application development.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-48.png) Java has been in the business for a long time and has provided a foundation for many websites and software structures. It can be used by data scientists as well, but it doesn’t provide the brilliance of R and Python. So it looks like Java will be here for a long time to come! Java has nearly 9 million developers, so you can expect exceptional community support Average Java Developer Salary in 2026: **$100,257 to $144,000** #### Who Should Learn Java? Java plays a wide role in designing mobile applications, microservices, application servers, Enterprise applications, scientific applications, Graphic user interface (GUI) applications like abstract windowing toolkit (AWT), etc. So if you would love to code applications, software products, web apps, and mobile apps, it will be great to become a Java Developer. You’ll earn faster, too. ### 3\. JavaScript As per a [survey conducted](https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/?ref=devopscube.com) by Statista, JavaScript is the most used programming language among developers worldwide ![Javascript survey data from statista](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-15-24.png) JavaScript has changed from a simple UI language to a powerful backend programming language using NodeJs. There are many derivatives of JavaScript that you should consider. Following is the list. 1. NodeJS 2. Vue JS 3. Backbone JS 4. Angular Js 5. React JS. You can see a full list of JavaScript libraries [from here](https://www.javascripting.com/?ref=devopscube.com). As per the [*State of the Octoverse*](https://octoverse.github.com/?ref=devopscube.com) report by GitHub, JavaScript continues to be the top programming language. ![Javascript listing on state of octoverse](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/github-report-1.png) I don't have to mention the companies that use JavaScript because almost all companies use it one way or another. The average salary of a JavaScript developer in 2026 is **$106,583**. #### Who Should Learn JavaScript? From Web app development to front-end, JavaScript has found its applications everywhere. Probably, this is the reason behind such a varying and attractive salary range being provided for it. People, thinking of working in software engineering, web development, interface-building, and vulnerability-checking domains, can opt for JS. ### 4\. GoLang (Go) Go, or Google Programming language, is based loosely on C. It has gotten a lot of popularity in 2016, and that might skyrocket in 2017. The language was designed with the idea of eliminating some common flaws that are present in many other modern languages, which makes it a clean and simple alternative. It is used by companies like BBC, SoundCloud, IBM, and Klout, among others. As per a survey conducted by the official Golang community, Golang is mainly used for web programming, Databases, and [DevOps tools](https://devopscube.com/best-devops-tools/). In fact, the popular [container orchestration](https://devopscube.com/docker-container-clustering-tools/) system [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) is written in GoLang. ![Survey result of domains where GoLang is used.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-6-32.png) With an average **salary of $117,000**, Go can be a suitable option for developers. #### Who Should Learn Go? GO is used in designing toolboxes, documentation of browsers, search engines, source indexing, analysis, and search. So, it will be beneficial for securing a good earning package by learning this language. Also, for people who are into [devops](https://devopscube.com/what-is-devops-what-does-it-really-mean/), this is a great language for creating small to big utilities. ### 5\. c# C# is a general-purpose, multi-paradigm programming language developed by Microsoft. Even after two decades, C# continues to be on the list of top programming languages. Applications Slack, Insightly, Pinterest, and Tableau are written in c#. Also, C# is leveraged by many Microsoft desktop applications, like Photoshop, Microsoft Office, etc. The StackOverflow developer survey shows that 27% of developers use C#, and it came as one of the top programming languages. ![Percentage of developers using C# language.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-7-42.png) C# is used by a number of well-known companies, including BBC, SoundCloud, IBM, and Klout. It is a versatile language that can be used for a variety of purposes, making it a popular choice for businesses. The average salary of a c# developer in 2026 is **$113,000 to $122,000**. ### 6\. PHP PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. PHP is one of the most popular programming languages in the world and is used by millions of websites. It is a relatively easy language to learn for beginners, and there are many resources available online. Content management frameworks like WordPress, Joomla, and the e-commerce framework Magento are built with PHP. More than **30% of the web is powered by WordPress websites**. As per the [survey conducted by Zend](https://www.zend.com/resources/2021-php-landscape-report?ref=devopscube.com), **41% of users use PHP for API/Service** development and 13% for CMS. ![Usage of PhP language in development](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-8-36.png) The average salary for a PHP developer in 2026 is **$100,000.** ### 7\. Scala If there was a language that had the best of both functional and object-oriented concepts, then it was Scala. It is a rockstar programming language – it brings in real-time processing and is an object of admiration. It has unhindered access to Java as it uses the JVM. It can handle huge data with its libraries, match patterns, and focus on interactive development. Other great features include support for big data and REPL. The downside is its compiler, which is quite comparable to a Pentium 5 processor. It could do with some improvement, but overall, it is forgivable for its follies. The average Scala Developer Salary in 2026 is **$136,500** #### Who Should Learn Scala? Scala is frequently used to design Web applications, Data streaming with Akka, Parallel batch processing, Concurrency and distributed applications, Data analysis with Spark, AWS, and Ad hoc scripting in REPL. Programming enthusiasts, who have an interest in these areas and are willing to accept high salary packages (Off Course!) should put their efforts into enriching Scala Knowledge and Skills. ### 8\. R If Python is Leonard Hofstadter, then R is the annoying and unforgettable friend, of Sheldon Cooper. It has been in the business since 1997 and is a great alternative to heavy tools like Matlab and SAS. Statisticians love R, and it has great utility in the corporate world. As Data is the fuel of the 21st Century, R has become the lingua franca of data science. It is currently facing rising demands, which indicates that the future is brighter. It is a free, open-source statistical programming language. That is why it is most commonly used by statisticians and data miners. R is supported by a general public license, and its source code is written in C and FORTRAN. Its highly complex problem-solving capacity makes it admirable. R might be intimidating for beginners, but give it some time and let it grow on you. R makes data manipulation and handling complex data, a child’s play. It has vibrant community support, and new features are added constantly. It is a highly popular language among data scientists. The average R Developer Salary in 2026 falls between **$100,000 and $125,000** #### **Who Should Learn R?** R is highly demanded among data scientists. If you are thinking of becoming an excellent data analyst and developer, you can opt to learn ‘R’. This language has a wide scope of application in industrial sectors as well as in the academic sector. Its great data analyzing capacity makes it useful in stats and data analysis. As it supports 3D graphics and unique data visualization features, it is going to bring you countless opportunities. ### 9\. Swift Swift is a programming language developed by Apple. Earlier, the Apple ecosystem was revolving around Objective C. But in an attempt to make things easier for developers, Apple released Swift, its very own programming language. Why should you learn it? That’s quite simple, if you see yourself as an iOS app developer, you must learn Swift. The flaws in Objective-C have been addressed by Swift, so you can see a relatively clean, fast, and error-free. It can also reduce the length of your code, saving you time and energy. Moreover, it is open-source, so developers can also develop on Windows or Linux systems, design their compilers, and be assured that their apps are compatible with Apple devices. The average Swift Developer Salary in 2026 is **$118,000 to $148,000** #### Who Should Learn Swift? If you want to learn a language with less effort and for high earnings, you should learn this language. You will soon be coding iOS Applications as other Apple Programmers. The language has good market demand and pays as well as Apple’s products and apps. ### 10\. Kotlin Kotlin is a programming language that was created by JetBrains in 2011\. It is a statically typed language that runs on the Java Virtual Machine (JVM), and it was designed to be a better alternative to Java. Kotlin is a popular language for mobile development, and it has been adopted by companies like Square and Airbnb. Kotlin is a versatile language that can be used for a variety of purposes, making it a popular choice for businesses. Its concise code and ease of use make it an attractive option for mobile app development, and its compatibility with the JVM makes it a good choice for enterprise applications. The average salary of a Kotlin developer is **$130,000** ## Other Programming/Query Languages Worth Considering There are other upcoming languages that might not be that well-known and have less community support. But these languages are slowly making their presence felt. A few of the languages worth checking out are: ### 1\. Rust Rust is a general-purpose, multi-paradigm, compiled programming language sponsored by Mozilla Research. It is designed to be a "safe, concurrent, practical language, supporting pure-functional, imperative-procedural, and object-oriented styles. Rust was made with the idea of eliminating common programming errors, such as null pointers. ### 2\. Julia Julia is a newbie here and has the potential to surpass R and Python. It will need some more time before it can compete with the established players. Data scientists must watch out for Julia, which is a fast-growing language and has the capability to revolutionize data crunching. ### 3\. NoSQL Databases In the realm of big data analytics, NoSQL databases are something you cannot avoid. If you are looking for an opportunity in the Big Data domain, you should consider learning the following NoSQL databases. 1. MongoDB 2. Cassandra. You can view the list of NoSQL databases [from here](http://nosql-database.org/?ref=devopscube.com). Average NoSQL Developer Salary: $105,000 ### 4\. SQL Languages might change, but database requirements will never see a shift. Enterprises are reliant on SQL and database technologies like MySQL, and Microsoft SQL Server are widely in use. And since the demand is always high, there is no doubt that the salaries for database professionals are high. Average SQL Developer Salary: $92,000 ### 5\. **C** C is the mother of all programming languages, and the craze for learning this language is constantly increasing. The cause? Well, it still promises amazing salaries and is still considered the first ladder to learning to program. C is used for writing operating systems and the inventory of other languages like UNIX, Perl, PHP, and Ruby. C is strongly preferred in applications where performance matters. Where high-level languages can slow down the performance, C works smoothly. #### Who Should Learn C? For everyone who is willing to get into hardware coding or embedded systems, there is no better choice than C. C finds major applications in Open source Application software, system programming, optimization techniques, networking, evaluating mathematical equations, designing compilers, databases, spreadsheets, computer, and mobile games, etc. ### 6\. C++ It is a statically typed language and takes less time to execute than dynamically typed languages. C++-developed programs execute faster than Java code. It is widely used in developing graphical applications like mobile games, solving mathematical equations, designing operating systems like Windows XP and Apple operating systems, Indexing, Internet browsers like Mozilla Firefox, Adobe system, and Photoshop, database design, and Google applications like Chrome. #### **Who Should Learn C++?** C++ is a highly scalable and user-friendly language. It would be a great choice for beginners to learn it, as it is very similar to C. And if complexity, back-end coding, application programming, and logic interest you, C++ can pay a decent amount of salary for sure. ### 7\. Mojo If Python and C++ had a baby, it would be Mojo. You know that, Python is the most popular language for AI, but it has one major flaw, it is slow. Developers often write their logic in Python but switch to C++ for the heavy-duty performance parts. Mojo was created to solve this two-language problem. It looks and feels like Python, but it runs at the speed of C. In 2026, it has moved toward its **1.0 release**, making it more stable for real-world production. Mojo must be learned by AI Engineers, Data Scientists, and System programmers. This language will be useful for those who want to build high-performance AI models. ## Programming Language Trends as per the TIOBE index Overall, Python has taken first place in 2023. ![top ranking programming languages in 2023](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-6-34.png) As in the smartphone world, there is no clear winner in the programming languages world as well. If there were ever a war among programming languages, it would be a damp squib. Although C and Python (PythoC or Cython) might win, each language has its benefits and shortcomings. If you are looking for mobile development, maybe you could opt for Java or Python if your aim is to become a data scientist. However, becoming a ninja programmer takes time and effort. Make sure that you take the benefits of opportunities and have fun with coding! ## Conclusion Even though there are many programming languages, some of them are very popular among developers, companies, and recruiters worldwide. These include Python, Java, JavaScript, etc. These languages have been selected because of their growth rate, demand, and salary. We have also taken data from different developer surveys to understand it from a developer perspective, to make it meaningful. I hope this data helps you with some key programming language insights for 2026. Now, if you want to get started with programming, we have created a detailed [list of coding websit](https://devopscube.com/top-websites-to-learn-programming-online/)es that will help you learn programming. ### 12 Best Project Management Software for 2026 [Ranked] URL: https://devopscube.com/project-management-software/ Last updated: 2026-01-12T05:50:12.000Z This blog talks about the **best project management software** you can use in 2026 for your project management needs. With business paradigms constantly changing, many medium—and small-scale businesses are now using project management software. Moreover, it helps them increase their productivity and work efficiency without exceeding the budgetary limit. While there are many different types of software on the market, not all of them are created equal. The **best project management software** for 2026 will meet your business's needs while also being user-friendly and affordable. ## **What are the Best Project Management Software** ? In this list, we will look into the top tools that can be used for **personal project tracking to enterprise-level scrum-based project tracking**. So, if you plan to introduce management software to your business, these must be on your watch list. ### 1\. Trello **Official Website:** [www.trello.com](https://trello.com/?ref=devopscube.com) A simple as well as user-friendly PM software, Trello mostly relies on Kanban boards to manage projects. It provides a special board for each task, which every team member can access easily. Plus, these boards are customizable, and any member can customize them as required. Also, it allows you to drag and drop tasks on the dashboard. Thus, it makes it very easy to manage the tasks, schedule them, and set their priorities. #### Features: 1. It makes it easy to create and maintain an unlimited number of tasks. 2. Indeed allows you to share images and files. 3. Furthermore, it becomes easy to make internal comments and collaborate efficiently with the team. 4. Inbox with AI summarization will help you instantly capture, drag, and drop tasks, create subtasks, and organize tasks efficiently. 5. The Buttler automation tool helps you automate tasks and workflows. You can also set up rules, schedule commands, and create custom buttons. 6. The Trello Power-up AI tool automatically creates lists, cards, and tasks based on your project goals. It can also integrate with Jira, Slack, and other tools. 7. You can ask questions and it provides comprehensive, and contextual answers. **Pricing:** Trello has a free plan that is perfect for small businesses and personal use. There are Business Class and Enterprise plans available for medium and large businesses. The pricing starts at $9.99/ month. ![trello best project management software](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/trelllo-min-1.jpg) ### 2\. Notion **Official Website:** [www.notion.so](https://www.notion.so/?ref=devopscube.com) Notion is a project management software that is growing in popularity. It is user-friendly and affordable, and it includes all of the features that you need to manage your projects effectively. Notion also has a built-in collaboration tool that allows you to work with your team members online. This tool makes it easy to share files and track project progress. Additionally, Notion offers a wide range of reporting features that allow you to measure the success of your projects. Also, Notion is very popular among content creators. #### Features The top features of Notion include: 1. Task management: Notion allows you to create and manage tasks for your projects. You can track the progress of each task and ensure that they are completed on time. 2. Time tracking: Notion includes a time tracking feature that allows you to keep track of how much time you are spending on each task. This can help you stay on budget and ensure that your projects are completed on time. 3. Budgeting and forecasting: Notion allows you to create budgets and forecasts for your projects. This can help you stay on track financially and ensure that your projects are completed within budget. 4. Collaboration tools: Notion includes a built-in collaboration tool that allows you 5. Project templates: There are also a number of third-party templates available for Notion. These templates allow you to quickly create project plans, calendars, and budgets. You can also find templates for specific industries, such as construction and real estate. 6. AI Writing Assistant: Notion can generate content based on your prompt (like blogs, emails, and more), and you can also edit the generated content. 7. Translation: You can translate the content into multiple languages within Notion. 8. Grammar and Spelling correction: Notion AI has built-in grammar and spell-check features, which help you to generate error-free content. ### 3\. Asana **Official Website:** [www.asana.com](https://asana.com/?ref=devopscube.com) Asana is a highly efficient tool that runs on the cloud. It is highly adaptable and can quickly adapt to your working style. Moreover, it allows you to fix every detail of your business effectively. Also, it offers a personalized dashboard as well as a search option. Plus, it will enable you to group tasks in columns, sections, or as boards. #### Features 1. It comes with a personalized inbox for communicating with other members. 2. It certainly helps to generate in-depth project reports. 3. It makes it easy to create a calendar to sort tasks as per priority. 4. Asna AI studio helps you to design and build AI agents with your workflow and its a no-code builder. 5. Asna AI for project management helps you to organize your project and keep your team up to date. 6. Asna AI for goals and reporting provides real-time insights and analytics, and you can easily track progress with the help of AI. #### Asana Pricing It offers three different plans: Free, Premium, and Enterprise. The free plan is perfect for every business starting to use PM tools. The Premium plan starts at $9.99 per month. ![asana best project management software](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/asana-pm-sw-min-1.png) ### 4\. Jira **Official Website:** [www.atlassian.com](https://www.atlassian.com/software/jira?ref=devopscube.com) Jira is a multi-platform bug, as well as issue tracking software. It comes with efficient project management features. Next, the software allows you to distribute the tasks amongst your team and cater to different issues. Most importantly, it also enables you to fix bugs and track progress with interactive charts and Kanban boards. #### Features: 1. Jira offers real-time reporting about the work of your members. 2. It centralizes the communication of the entire team and brings efficiency. 3. It provides roadmaps to present your plans to your stakeholders easily. 4. You will get content assistance to edit and translate the issue with the help of AI and improve the quality of writing. 5. You can automatically generate a list of suggested child issues based on the details of the parent issue. 6. With natural language, you can simplify workflow automation without requiring technical expertise. #### Jira Pricing Free plan for up to 10 users, and the Standard plan caters to up to 5000 users for $7\. However, the Premium plan offers 5000 users and 1000 executions per month for $14/month. ![jira best project management software ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/jira-pm-min-1.png) ### 5\. **Backlog.com** **Official Website:** [www.backlog.com](https://devopscube.com/recommends/backlog/) A great online project management tool that allows you to have total control over your project and monitor every aspect. With this software, you will be able to track the progress of your project effectively. Along with Gantt as well as burndown charts, you will be able to manage time and schedules efficiently. Plus, it also offers special task management features. It allows creating and updating different tasks while assigning sub-tasks and deadlines to them. #### Features: 1. It will enable you to create wikis with project details that your team members can download and familiarise themselves with. 2. It offers efficient centralized file sharing. 3. Also, it makes it easy to communicate with specific members of the team. 4. It incorporates AI to improve task management. It helping you to quickly understand complex tasks. #### Backlog Pricing Backlog has a free plan that allows you to add 10 members and offers 100 MB of storage space. Other than that, it has three payable packages: Starter, Standard, and Premium. The pricing starts from $35/ month with the starter plan. ![backlog best project management software](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/backlog-pm-software-1.jpg) ### 6\. Taskade **Official Website:** [www.taskade.com](https://www.taskade.com/?ref=devopscube.com) Taskade helps you stay organized and focused on your work. It's perfect for small projects, allowing you to create tasks, notes, lists, and outlines. You can also share your projects with teammates and collaborate in real-time. Taskade is available on the web and mobile, and it's free to use. There are also Taskade Pro and Taskade Teams (the paid version) that offer more features for collaboration. #### Features Taskade is a great project management tool because it offers a lot of features that are helpful for collaboration. These features include: 1. **Real-time collaboration:** You can easily collaborate with teammates in real-time by sharing projects and tasks. 2. **Notifications:** Taskade will send you notifications when tasks are updated or when comments are added to a task. This helps you stay on top of your work. 3. **Organized**: Taskade is very organized and allows you to create tasks, notes, lists, and outlines. This helps you stay organized and focused on your work. 4. **Customizable**: You can customize the look and feel of Taskade to match your preferences. 5. **Custom AI Agents:** You can build your own AI assistant based on roles, tasks, or industries. 6. **AI Project Studio**: You can quickly create project templates, workflows, and content. 7. **AI Task Manager**: You can transform task management by enabling the generation of collaborative tasks and to-do lists. It assists you in efficiently managing projects and teams, ensuring that all tasks are organized and tracked effectively. 8. **AI Automation**: It helps you to automate tasks and projects by designing custom workflows and integrating with other platforms. This feature streamlines collaboration and increases efficiency by reducing manual work. ![taskade project management software](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/board_demo-1.png) ### 7\. Monday.com **Official Website:** [www.monday.com](https://devopscube.com/recommends/monday-com/) Monday project management is a simple yet effective online software. It allows you to meet deadlines, bring transparency to your processes, and manage tasks. The tool makes it easy to control what others are working on, track progress, centralize the communication channels, and proper management of documents. #### Features: 1. Monday.com offers proper analytics and real-time reporting. 2. It allows you to collaborate with third parties. 3. Easily integrates with Google Drive, Dropbox, Zapier, and other similar file-sharing tools. 4. You will get automation features such as categorization, summarization, text improvement, writing, detecting sentiment, and translating text. 5. You will get pre-designed templates powered by AI. 6. You will get AI assistant apps such as Monday Docs, Formula Builder, and Email Generator, which allow you to summarize and rephrase text. 7. You will get AI Agents to handle specific tasks autonomously(Incident resolution and workflow optimization). #### Monday.com Pricing It offers a free trial. There are four plans: Basic, Standard, Pro, and Enterprise. The pricing starts at $39/month with the Basic Plan. ![Monday.com - Top Project management tool](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/monday-pmsw-1.png) ### 8\. ClickUp **Official Website:** [www.clickup.com](https://devopscube.com/recommends/clickup-com/) Focuses mostly on improving productivity, it allows you to manage tasks, time, and projects efficiently. It allows you to monitor every member and see what they are doing. Furthermore, it brings every task as well as a resource into a single place for better utilization. #### Features: 1. It allows you to collaborate efficiently with all members and customize your workflow. 2. You can also add the estimation of time for auto-scheduling. 3. Also, you can create a task and control what your team members see or do. 4. With **AI Notetaker**, you can automatically transcribe meetings held on platforms like Zoom, Teams, and Google Meet, and extract actionable insights. 5. You can generate tasks and subtasks from comments, chat messages, and voice clips with the help of **AI task creation**. 6. You will get **AI knowledge management**, this feature will connect tasks, documents, and team members and you can ask questions and receive immediate accurate answers based on your organization's data. 7. An **AI project manager** generates progress updates, creates status reports, and summarizes tasks and documents. #### Clickup Pricing Comes with a free plan with 100MB storage and unlimited tasks as well as users. You can also avail of the Unlimited plan for $5 or the Business Plan for $9. ![clickup top project tracking tool](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/clickup-pm-sw-min-1.png) ### 9\. Wrike **Official Website:** [www.wrike.com](https://devopscube.com/recommends/wrike-com/) Wrike is an all-in-one tool for all your project management activities. It is used by more than 20000 companies. You can organize all project tasks as a list or kanban board. If you run a project in Scrum, you can use the relevant Wrike template to create respective project Scrum boards and charts. #### Features: 1. Project templates for tasks list, kanban boards, etc. 2. Project billing features 3. Time and bug tracking. 4. Third-party application integration (Single sign-on, CRM, etc) 5. AI Content creation and editing 6. AI summarizes and predicts risk 7. Wrike AI feature will help you transform notes into actionable tasks. ![best project tracking tool wrike](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/wrike-pm-sw-min-1.png) ### 10\. Kissflow **Official Website:** [www.kissflow.com](https://kissflow.com/?ref=devopscube.com) Kissflow is a project management software that supports different project management methodologies. It is free and easy to get started. It supports list, Kanban, and matrix views. #### Features: 1. Detailed audit logging and activity history 2. Gsuite and Microsoft 365 integration 3. Data-driven & custom project reports 4. Gsuite and Microsoft 365 integration 5. Predefined project management templates 6. AI-suggested workflows 7. AI-powered boards 8. AI suggested workflows 9. Platform admins AI 10. Business user AI 11. Developer AI 12. You can utilize smart attachment AI to extract data from uploaded documents. 13. With the form name and context, Kissflow suggested AI recommends relevant fields, reducing the time spent on form creation. ### 11\. Smartsheet **Official Website:** [www.smartsheet.com](https://www.smartsheet.com/?ref=devopscube.com) ![Smartsheet](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-18.png) Smartsheet is a cloud-based work and project management platform which will helps for teams plan, track, automate, and deliver work at scale. Actually, it will look familiar like a spreadsheet, but it is much greater than traditional sheets like Excel or Google Sheets. With this tool, you can manage tasks, visualize work, automate routine steps, and keep everyone aligned. #### Features 1. Get unlimited free viewers of the dashboard 2. Get Gantt(chart view), table, board, and calendar view. 3. Rich formulas 4. Unlimited sheets, forms, and reports 5. Get 250 to unlimited automations per month 6. Unlimited free guests 7. Timeline view 8. Team workload tracking 9. Admin capabilities 10. 1 TB to unlimited attachment storage 11. AI formulas, texts, and charts 12. Enterprise plan manager 13. Directory integrations and more #### Smartsheet Pricing Smartsheet offers four plans: Pro, Business, Enterprise, and Advanced Work Management. - **Pro** \- $9 per member per month - **Business** \- $19 per member per month - **Enterprise** \- Custom pricing - **Advanced Work Management** \- Custom pricing Overall, Smartsheet is a relatively expensive tool because the pricing starts at $9 per member per month, and the cost increases as your team grows. With the Pro plan, you can add up to 10 members and an unlimited number of viewers. The Business plan allows more members, unlimited guests, and unlimited viewers, making it more suitable for larger teams. ### 12\. Productive.io **Official Website:** [https://productive.io/](https://productive.io/?ref=devopscube.com) ![Productive.io](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-17.png) Productive.io is a cloud-based work management platform designed to help agencies, consultancies, and service teams manage projects, resources, finances, and time tracking. If you are running simple projects or managing complex client work with tight budgets and schedules, then this software gives your team the tools to stay organized, and efficient. #### Features 1. Resource planning 2. Project & advanced task management 3. Expense management 4. Time off management 5. API access 6. HRIS & invoicing integrations 7. Recurring budgets 8. Advanced reports such as grouping, reporting, pivoting, and currency conversion. 9. Schedule report sending to email or Slack 10. Advanced time tracking and custom fields 11. Get HubSpot integrations 12. Overhead calculation, and more. #### Productive Pricing There are three plans in Productive.io: Essential, Professional, and Ultimate. - Essential - $9/month - Professional - $24/month - Ultimate - $32/month The pricing model is like, you have to pay **$9** per user per month in the Essential plan, **$24** for the Professional, and **$32** for the Ultimate plan. ## How to Choose the Best Project Management Software? The number of project management tools increases in the market as time passes. However, with each of its exciting features, it becomes very perplexing to choose the right one. When selecting the best software for your business, there are a few key factors to consider. 1. The first is whether the software complies with your organization's rules and regulations, as you will have your corporate data. 2. The next factor is usability – ensure the software is easy to use and navigate. 3. As a bare minimum, it should have task management, time tracking, budgeting and forecasting, collaboration tools, backlog management, and reporting features. These features will allow you to effectively manage your projects and ensure they are completed on time and within budget. 4. Finally, consider the cost of the software and whether it meets your budget. Also, you need to look at the tool that aligns with the following project management methodologies. 1. Waterfall methodology 2. Agile methodology 3. Scrum methodology 4. Kanban methodology 5. Scrumban methodology 6. eXtreme programming (XP) methodology 7. Adaptive project framework (APF) methodology 8. Lean methodology 9. Six Sigma Before selecting any tool, you need to do your own research on existing tools that you are using in your organization. For example, if you are using Atlassian Bitbucket for source code management, it is better to go with Jira for project management as it will provide more integrations with Bitbucket. Project management is not just listing down tasks or user stories in tools. First, you need to list your requirements. Check the tool features that go with your requirement and integration with your existing tools. Whichever tool offers the best integration and support, go for it. For personal projects and small teams, you can start with **Backlog, Asana, or Trello**. All these tools provide wonderful templates and workflows for tracking tasks. If you are looking for an enterprise-grade solution, **Jira** will top it all. It has excellent integration with all the features you would be looking for. ## Free Project Management Tools Well, most of the software we listed in this article supports free users. If you have a very small team, you can start with free subscriptions For example, 1. Notion has a free personal plan 2. Backlog & Jira offer a free subscription of up to 10 users. 3. Asana supports up to 15 users. 4. Trello supports 10 free team dashboards 5. Clickup supports unlimited tasks and users with 100 MB storage ## **How Project Management Software increases your productivity?** In a world where technology is growing rapidly, using project management tool is crucial to ensure success for your business. With project management tool, you will be able to control the task and have everyone meet the deadlines. Plus, it will also become easy to fix the deadlines and cater to different constraints easily. Moreover, the project management tools also come with inbuilt chatting and interaction features. In other words, project management software combines all the parts of a business or a project in a single place. Thus, it allows you and your team to function better as a unit and meet the goals. ## **So…What Do You Think?** Project Management tools are essential. It increases productivity and brings efficiency to your workflow. Have a look at the software above and choose the one that suits your needs best. Now we want to hear from you. What do you think of this list? Or maybe we missed one of your favorite project management tools. Either way, let us know by leaving a comment below. ### Certified Argo Project Associate (CAPA) Study Guide URL: https://devopscube.com/certified-argo-project-associate/ Last updated: 2026-01-20T11:48:18.000Z Looking to pass Argo Certification? In this guide, you will learn all about the Certified Argo Project Associate (CAPA) certification and how to prepare for the certification exam. By the end of the guide, you will have a clear understanding of the following: - About the CAPA certification and who will benefit from it - Complete exam syllabus and exam details - Complete roadmap and resource for preparation - Tips to pass the Argo certification exam. ## What is CAPA Certification? CAPA is a certification provided by the [Linux Foundation](https://devopscube.com/linux-foundation-certification/) and [CNCF](https://www.cncf.io/?ref=devopscube.com) (Cloud Native Computing Foundation) for people who pass the CAPA certification exam. It is built by collaborating with [Akuity](https://akuity.io/?ref=devopscube.com), which is the company founded by the people who co-created Argo projects. Overall, this exam tests your knowledge of the four tools in the Argo project, such as: - Argo workflows - [Argo CD](https://devopscube.com/argo-cd-ultimate-guide/) - [Argo Rollouts](https://devopscube.com/argo-rollouts-setup-on-kubernetes/) - Argo Events The following table shows the use case of each tool. | Argo Tool | Primary Use Case | Key Functionality | | -------------- | ------------------- | ---------------------------------------------------------- | | Argo Workflows | Workflow Engine | Orchestrates parallel jobs on K8s. | | Argo CD | GitOps / CD | Syncs Git repositories with live cluster states. | | Argo Rollouts | Advanced Deployment | Manages Canary and Blue-Green deployment strategies. | | Argo Events | Automation | Triggers workflows based on webhooks, S3, or Kafka events. | ## Who is Eligible to take the CAPA Exam? There is no eligibility criterion for taking this exam, but it will be beneficial for people who are working with [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) and GitOps. For example, it will benefit DevOps engineers who deploy applications on Kubernetes and also work with [CI/CD](https://devopscube.com/learning-ci-cd-tools/) pipelines. ## What are the CAPA exam format and costs? The following table has the complete CAPA exam details. | Exam Type | Online, Proctored, Multiple Choice Questions | | ------------------- | -------------------------------------------- | | Exam Cost | $250 USD | | Exam Duration | 90 minutes | | Number of Questions | 60 | | Passing Percentage | 75% | | Validity | 2 years | | Retake Policy | One retake | ## Register for the Argo Certification Exam \[Save 30% Today\] To begin your journey of becoming a Certified Argo Project Associate, start by registering for the exam on the Linux Foundation portal. > **Note:** Save 30% Today on CAPA certification using the Voucher code given below. This code expires soon. [Save on CAPA Exam Now ](https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/?ref=devopscube.com) **CAPA Exam Voucher:**: Use Code **DCUBE30** at checkout ****Note:** Check the [Linux Foundation Coupon Codes](https://devopscube.com/linux-foundation-coupon/) to know about latest promotion codes. ## CAPA Exam Syllabus Below is the CAPA exam syllabus and its weightage. | Topic | Concepts | Weightage | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | | Argo Workflows | Understand Argo Workflow Fundamentals Generating and Consuming Artifacts Understand Argo Workflow Templates Understand the Argo Workflow Spec Work with DAG (Directed-Acyclic Graphs) Run Data Processing Jobs with Argo Workflows | 36% | | Argo CD | Understand Argo CD Fundamentals Synchronize Applications Using Argo CD Use Argo CD Application Configure Argo CD with Helm and Kustomize Identify Common Reconciliation Patterns | 34% | | Argo Rollouts | Understand Argo Rollouts Fundamentals Use Common Progressive Rollout Strategies Describe Analysis Template and AnalysisRun | 18% | | Argo Events | Understand Argo Events Fundamentals Understand Argo Event Components and Architecture | 12% | Argo workflows and Argo CD combine to make 70%, so focus more on them. ## CAPA Exam Preparation Roadmap We have created a complete roadmap of what you need to prepare for the CAPA certification exam. To pass this exam, you need both theoretical and hands-on knowledge. Do not think this is a multiple choice exam, we don't have to do hands-on while preparing. Most of the questions will be scenario-based, so proper hands-on knowledge is also a must. To do hands-on practise, you need a Kubernetes cluster, so set up a [Kind](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps/), [Minikube](https://devopscube.com/kubernetes-minikube-tutorial/), or a [Kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) cluster before starting the preparation. Given below are the official documentation of the four tools we need for this exam: - [Argo Workflow](https://argo-workflows.readthedocs.io/en/stable/?ref=devopscube.com) - [Argo CD](https://argo-cd.readthedocs.io/en/stable/?ref=devopscube.com) - [Argo Rollouts](https://argo-rollouts.readthedocs.io/en/stable/?ref=devopscube.com) - [Argo Events](https://argoproj.github.io/argo-events/?ref=devopscube.com) ### Argo Workflow - 36% Let's start with Argo Workflow. To work on the Argo Workflow installed in your system, use the official [installation guide](https://argo-workflows.readthedocs.io/en/latest/quick-start/?ref=devopscube.com) to install it. #### Understand Argo Workflow Fundamentals Argo Workflow is an open source workflow engine that runs jobs directly on Kubernetes in a container. Each step specified in the workflow will be run in separate containers. Argo workflow is mostly for ML pipeline, data and batch processing, infrastructure automation, and CI workflows. When you deploy the Argo Workflow, you can see two components: - Workflow Controller - Watches for workflows and runs them. - Argo Server - Provides UI and APIs. For the exam, you need to understand the following: - How to create a workflow. - How to define the workflow steps in a YAML file. - Difference between workflows and templates | Workflow Installation | [Quick Start ](https://argo-workflows.readthedocs.io/en/latest/quick-start/?ref=devopscube.com) | | --------------------- | -------------------------------------------------------------------------------------------------------------------- | | Core Concepts | [Core Concept Documentation ](https://argo-workflows.readthedocs.io/en/latest/workflow-concepts/?ref=devopscube.com) | #### Generating and Consuming Artifacts In Argo workflows, Artifacts are referred to as files or folders, which can be either used in workflows or generated by workflows. Artifacts are packaged as tar and Gzip files by default. Argo workflows use external artifact stores like MiniO, AWS S3, Azure blob, etc to store and pull artifacts. | Artifacts | [Artifact Documentation ](https://argo-workflows.readthedocs.io/en/latest/walk-through/artifacts/?ref=devopscube.com) | | ----------------- | --------------------------------------------------------------------------------------------------------------------------------- | | Artifact Registry | [Configure Artifact Registry ](https://argo-workflows.readthedocs.io/en/latest/configure-artifact-repository/?ref=devopscube.com) | #### Understand Argo Workflow Templates Templates are reusable configurations that can be used in workflow files. There are several types of templates available in Argo workflow, which is divided into two parts. **Template Definitions:** These are the templates that does the work. - Container - This is the template that allows you to create a container in Kubernetes to run your workflow. - Script - Allows you to run your scripts in the container. - Resource - These are responsible for creating, updating, and deleting resources in kubernetes. - Suspend - This makes Argo workflows stop running until a specific time or until you manually approve them. - Plugin - These are executors that are run at the start of the workflow steps. For example, for notifications. - Container Set - Allows you to create and run multiple containers inside a single pod. - HTTP - Used to run HTTP request. **Template Invocators:** These are the templates that call other templates and run them. - Steps - Allows you to run multiple templates in steps. - DAG - Only run tasks after a specific task runs. | Templates | [Types ](https://argo-workflows.readthedocs.io/en/latest/workflow-concepts/?ref=devopscube.com#template-types) | | ------------------ | --------------------------------------------------------------------------------------------------------------------------- | | Workflow Templates | [Workflow Templates Documentation ](https://argo-workflows.readthedocs.io/en/latest/workflow-templates/?ref=devopscube.com) | #### Understand the Argo Workflow Spec Understanding the specs in workflow is really important, we specify the steps, templates, and other fields to run a workflow inside specs. Some of the important fields we specify inside the specs block are given below. - entrypoint - This specifies the template that runs first. - templates - The required templates are listed under this. - arguments - In arguments, we specify the parameters and artifact need for the workflow. Below are the key specs related to the Cron workflow. - schedules - Tells the workflow to trigger on a specific time, day, or year. - timezone - This tells the workflow to use a specific timezone to trigger the workflow. | Workflow Spec | [Spec list ](https://argo-workflows.readthedocs.io/en/latest/fields/?ref=devopscube.com#workflowspec) | | ------------------ | ----------------------------------------------------------------------------------------------------- | | Cron Workflow Spec | [Spec list ](https://argo-workflows.readthedocs.io/en/latest/cron-workflows/?ref=devopscube.com) | #### Work with DAG (Directed Acyclic Graphs) DAG is specifying only run steps if specific dependencies are met, which means you can specify steps to run only if certain steps run. For example, let say you have 2 steps A and B. In this step, A runs first, and step B runs only if step A is completed successfully. If step A fails, step B will not run. This is the default method of how DAG works. If one fails, the next steps will not run. But you can use the field `failFast: false` to run all the steps if the previous step failed. | DAG | [DAG Documentation ](https://argo-workflows.readthedocs.io/en/latest/walk-through/dag/?ref=devopscube.com) | | --- | ---------------------------------------------------------------------------------------------------------- | #### Run Data Processing Jobs with Argo Workflows Understand in which use cases Argo workflows are used for and how to use them effectively. Do hands-on workflows that contain multiple step batch jobs. For practice, go through the Argo Workflows examples. | Data Processing Jobs | [Examples ](https://github.com/argoproj/argo-workflows/tree/main/examples?ref=devopscube.com) | | -------------------- | --------------------------------------------------------------------------------------------- | Practise with loops in workflows. | Loops in workflow | [Loop Documentation and Examples ](https://argo-workflows.readthedocs.io/en/latest/walk-through/loops/?ref=devopscube.com) | | ----------------- | -------------------------------------------------------------------------------------------------------------------------- | Practise with retries in workflows for failed steps. | Retries in workflow | [Retries Documentation and Examples ](https://argo-workflows.readthedocs.io/en/latest/retries/?ref=devopscube.com) | | ------------------- | ------------------------------------------------------------------------------------------------------------------ | Practise with exithandlers in workflows. | ExitHandlers in workflow | [Retries Documentation and Example ](https://argo-workflows.readthedocs.io/en/latest/walk-through/exit-handlers/?ref=devopscube.com) | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ### Argo CD - 34% In this section, let's look at the things you need to cover about Argo CD for the exam. To work on the Argo CD installed in your system, use our [installation guide](https://devopscube.com/setup-argo-cd-using-helm/) to install it. #### Understand Argo CD Fundamentals Argo CD is a declarative Continuous Delivery tool for Kubernetes, which uses the GitOps principle to deploy applications. Argo CD continuously monitors the specified Git repository to deploy and manage the application by checking the desired and live state of the application. Argo CD always tries to keep the desired state in Git with the live state, if they differ, Argo CD marks them as OutOfSync. Learn about Argo CD components, their function, and how they work together. | Argo CD | [Components ](https://argo-cd.readthedocs.io/en/stable/developer-guide/architecture/components/?ref=devopscube.com) | | ------- | ------------------------------------------------------------------------------------------------------------------- | Learn about the key concepts of Argo CD. | Argo CD | [Key Concepts ](https://argo-cd.readthedocs.io/en/stable/core%5Fconcepts/?ref=devopscube.com) | | ------- | --------------------------------------------------------------------------------------------- | #### Synchronize Applications Using Argo CD Synchronizing applications deployed in the cluster with the desired state defined in Git is the main function of Argo CD. The concept that makes all that possible is the [Sync policy](https://devopscube.com/argo-cd-ultimate-guide/#sync-policy), so understanding and how to use sync policies are very important. Learn about the difference and where to use manual and automated sync. | Sync Options | [Documentation ](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/?ref=devopscube.com) | | ------------ | ------------------------------------------------------------------------------------------------------ | Learn about sync phases and waves and how they can be enabled by using it in annotations. | Sync Phases and Waves | [Documentation ](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/?ref=devopscube.com) | | --------------------- | ---------------------------------------------------------------------------------------------------- | #### Use Argo CD Application Application is the most important concept you need to learn in Argo CD. Every deployment created by Argo CD is defined as an Application and it is managed by the Application CRD. In Application CRD, we will specify where to get the manifest to deploy the application, the destination, and other options require Argo CD to create a deployment. | Argo CD Application | [Documentation ](https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/?ref=devopscube.com#applications) | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | Creating Application | [Example ](https://devopscube.com/how-to-deploy-helm-charts-using-argo-cd/) | | | Argo CD ApplicationSet | [Documentation ](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/?ref=devopscube.com) | | | Configure Argo CD with Helm and KustomizeIn production, applications are deployed using Argo CD with Helm and Kustomize, not just a simple manifest file.So understanding and having hands-on experience to deploy an application with Helm and Kustomize is very important.Just like a single YAML manifest file, you need to specify the Helm chart or Kustomize file in the Application CRD, and Argo CD will get it from Git and deploy it. | Creating Application with Helm | [Documentation ](https://argo-cd.readthedocs.io/en/stable/user-guide/helm/?ref=devopscube.com) | | Creating Application with Helm | [Example ](https://devopscube.com/how-to-deploy-helm-charts-using-argo-cd/) | | | Creating Application with Kustomize | [Documentation and Example ](https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/?ref=devopscube.com) | | | Identify Common Reconciliation PatternsAs we see above, Argo CD's core concept is comparing the desired stateon Git with the real state of the application.And, that's what reconciliation means, comparing the desired and the real state.Learn about health checks and creating custom health checks. | Health Checks | [Documentation ](https://argo-cd.readthedocs.io/en/stable/operator-manual/health/?ref=devopscube.com) | | Once again go through sync options, sync waves and hooks if needed. | Sync Options | [Documentation ](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-options/?ref=devopscube.com) | | Sync Phases and Waves | [Documentation ](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/?ref=devopscube.com) | | | Argo Rollouts - 18%Even though Argo CD does basic rollout whenever a change is made in Git, it cannot do advanced rollouts like Canary and Blue-Green deployments.That's where Argo Rollouts comes, which is a part of the Argo project that does advanced rollouts.Understand Argo Rollouts FundamentalsArgo Rollouts is a controller for Kubernetes that can be used to do advanced rollouts.In the rollout configuration, we can add analytic templates that contain steps to check the deployments and can be integrated with service meshes to check application performance based on traffic flow.Do hands-on by deploying simple rollouts and learn about the important concepts in Argo rollouts. | Argo Rollouts | [Basics ](https://argo-rollouts.readthedocs.io/en/stable/getting-started/?ref=devopscube.com) | | Argo Rollouts | [Concepts ](https://argo-rollouts.readthedocs.io/en/stable/concepts/?ref=devopscube.com) | | | Use Common Progressive Rollout StrategiesLearn and do hands-on Argo Rollouts strategies, Canary and BlueGreen.Canary - Slowly move traffic to the new version if the verification steps are successful.BlueGreen - Runs both old and new versions at the same time, once the testing on the new version is completed, completely move to the new version. | Argo Rollouts | [BlueGreen ](https://argo-rollouts.readthedocs.io/en/stable/features/bluegreen/?ref=devopscube.com) | | Argo Rollouts | [Canary ](https://argo-rollouts.readthedocs.io/en/stable/features/canary/?ref=devopscube.com) | | | Describe the Analysis Template and AnalysisRunThe new version is not simply rolled out after some time, the rollout process involves analysis steps that check the application before completely rolling out.Analysis templates contain the steps to test the deployment, and AnalysisRuns runs the analysis templates during the rollout process. | Analysis | [Documentaion ](https://argo-rollouts.readthedocs.io/en/stable/features/analysis/?ref=devopscube.com) | | Argo Events - 12%Argo Events is an event-driven framework of Kubernetes, which triggers the Argo workflow based on the events from different HTTP POST requests from sources like webhook, S2, Kafka, etc.Understand Argo Events FundamentalsArgo Events needs Argo Workflow configured for it to work.Argo Events gets events from configured objects, and the Argo Workflow controller, which continuously listens to the Argo Events, gets triggered based on the request.To understand it properly, install Argo Events and Workflow, then generate events from supported objects to trigger the workflow. | Argo Events | [Basics ](https://argoproj.github.io/argo-events/quick%5Fstart/?ref=devopscube.com) | | Argo Events | [Concepts ](https://argoproj.github.io/argo-events/concepts/architecture/?ref=devopscube.com) | | | Understand Argo Event Components and ArchitectureArgo Events has four main components:Event Source - Gets events from external sourcesEventbus - Moves events from source to sensorSensor - Listens for events from the events source and triggers the actionTrigger - Actions run by the sensor once it gets the eventsLearn how these four components work together in Argo Events and the types of triggers available. | EventSource | [Documentation ](https://argoproj.github.io/argo-events/concepts/event%5Fsource/?ref=devopscube.com) | | EventBus | [Documentation ](https://argoproj.github.io/argo-events/concepts/eventbus/?ref=devopscube.com) | | | Sensor | [Documentation ](https://argoproj.github.io/argo-events/concepts/sensor/?ref=devopscube.com) | | | Triggers | [Documentation ](https://argoproj.github.io/argo-events/concepts/trigger/?ref=devopscube.com) | | | CAPA Exam TipsTime management is very important because you have to answer 60 questions in 90 minutes, so take 1.5 minutes for each question.If the question is simple, complete it and move on to the next question, so you will get more time for the difficult question.If the question is hard, you are unsure about the answer, mark it, so you can finish it later.Do not get stuck on a single question for more than 2 minutes at the beginning of the exam.Read every question very carefully before answering.CAPA exam FAQ'sIs the CAPA exam hands-on?No, the CAPA is a multiple-choice exam. However, 2026 exam feedback suggests many questions are "scenario-based,". It means you need to understand YAML manifests and CLI outputs as if you were performing hands-on tasks.Can I use a voucher for the CAPA exam?Yes, you can use code DCUBE30 to save flat 30% on CAPA certification.ConclusionIn this guide, I have covered everything you need to prepare for a CAPA certification exam.Preparing for this certification not only helps you in the exam but also helps you work with all the tools of the Argo project in a production environment.Do more hands-on and understand everything, you will be more than prepared for the exam, especially on Argo Workflow and Argo CD.Hope this study guide will help you prepare for the CAPA exam.Over to you.How are you planning to prepare for the exam? | | | ### 18 Best Container Orchestration Tools and Services 2026 URL: https://devopscube.com/docker-container-clustering-tools/ Last updated: 2026-01-09T06:23:26.000Z In this 2026 updated guide, I have covered the **best 18 container orchestration tools** and services used by many organizations in production. Containerization solutions like [Docker](https://devopscube.com/what-is-docker/), [Podman](https://devopscube.com/podman-tutorial-beginners/), and Buildah provide great flexibility to containerize and ship application code. But to have complex application deployments and [infrastructure automation](https://devopscube.com/devops-tools-for-infrastructure-automation/), you need a suitable container orchestration tool. Container orchestration needs proper plumbing in terms of [deploying applications](https://devopscube.com/release-management-explained/) with complex architectures. However, you will achieve faster application delivery cycles with the right set of DevOps tools. Your containerized applications should be able to scale up and down based on application resource requirements. For this, you need a good framework for efficiently managing and scheduling the containers to meet the business requirements. Moreover, containers are meant to be short-lived. When choosing a container orchestration tool or a managed container orchestration service, the following are the key things to consider. 1. Networking 2. High availability 3. Ease of deployment & maintenance 4. Scalability 5. [service discovery](https://devopscube.com/consul-service-discovery-beginners-guide/) 6. Security & Compliance 7. Support (Community & Enterprise) 8. Administrative overhead Keeping the above in mind, let's look at the best container orchestration tools. ## What are the best Container Orchestration Tools? This post covers the list of the **best container orchestration tools** used in production by many organizations. ## 1\. Kubernetes [Kubernetes](https://devopscube.com/kubernetes-deployment-tutorial/) is an open-source, out-of-the-box container orchestration tool. It comes with an excellent scheduler and resource manager for deploying highly available containers more efficiently. Kubernetes has become the de facto container orchestration tool for many organizations. ****Survey Report:** According to CNCF’s [Cloud Native Landscape](https://landscape.cncf.io/?ref=devopscube.com), there are more than 109 tools to manage containers, but 89% are using different forms of Kubernetes. The kubernetes project is maintained by the cloud-native foundation with contributors worldwide. Contributors include big organizations to individual open source developers. Here is the high-level architecture of Kubernetes. ![Kubernetes container orchestration tool architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kubernetes-architecture-3.png) Click to view in HD Kubernetes offers many functionalities that native docker tools don't provide. Moreover, it is easy to [get started with kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). When it comes to Kubernetes, managed services play a key role. As per Datadog's survey on Kubernetes adoption in organizations, nearly [90 percent of Kubernetes users leverage cloud-managed services](https://www.datadoghq.com/container-report/?ref=devopscube.com#1). ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kubernetes-survey-jpeg-1.jpg) Click to view in HD Also, check out our guide on [kubernetes design considerations](https://devopscube.com/key-considerations-kubernetes-cluster-design-setup/). ****Important Note:** Kubernetes [removed Docker container run-time](https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/?ref=devopscube.com) after version v1.20\. This doesn't mean docker images won't work in kubernetes. It's just that the underlying container runtime moved from Docker to runtimes that use [CRI](https://kubernetes.io/blog/2016/12/container-runtime-interface-cri-in-kubernetes/?ref=devopscube.com) If you would like to get started, refer to the [kubernetes cluster setup using kubeadm](https://devopscube.com/setup-kubernetes-cluster-kubeadm/). You can stand up a kubernetes cluster in less time without complex configurations. ## 2\. Openshift Openshift is built on top of kubernetes. There is a community as well as an enterprise version of Openshift. Redhat maintains the Openshift project. Both open-source (openshift origin) and enterprise version ([openshift container platform](https://www.openshift.com/products/container-platform/?ref=devopscube.com)). Along with core Kubernetes features, it offers container management and orchestration out-of-the-box features. Here is the high-level overview of Openshift. ![Openshift container orchestration tool architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/openshift-architecture-1.png) Click to view in HD Also, Openshift is now available as a [managed service on AWS cloud](https://aws.amazon.com/quickstart/architecture/openshift/?ref=devopscube.com). The following official image from openshift gives you an overall idea of its features. ![Openshift container orchestration tool features.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/openshift-features-1.png) Click to view in HD ## 3\. Hasicorp Nomad Nomad is an orchestration platform from Hashicorp that supports containers. It shares a similar philosophy of kubernetes in managing applications at scale. However, Nomad supports container and non-container workloads. Nomad comes with good integration of other Hashicorp tools like [Consul](https://devopscube.com/setup-consul-cluster-guide/), [Vault](https://devopscube.com/setup-hashicorp-vault-beginners-guide/), and [terraform](https://devopscube.com/setup-google-provider-backend-terraform/). Primary use-cases for Nomad are, 1. Container Orchestration 2. Non-containerized application orchestration. 3. Automated service networking with Consul. You can read about how Cloudflare uses Nomad for their [dynamic task scheduling system](https://blog.cloudflare.com/how-we-use-hashicorp-nomad/?ref=devopscube.com) ![container orchestration using Nomad](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/nomad-architecture-min-1.png) Click to view in HD ## 4\. Docker Swarm The Docker ecosystem consists of tools from development to production deployment frameworks. In that list, [docker swarm](https://devopscube.com/how-to-setup-and-configure-docker-swarm-cluster/) fits into cluster management. A mix of docker-compose, swarm, overlay network, and an excellent service discovery tool such as etcd or consul can be used for managing a cluster of Docker containers. [Docker swarm](https://devopscube.com/docker-tutorial-getting-started-with-docker-swarm/) is still maturing in terms of functionalities compared to other open-source container cluster management tools. Considering the vast docker contributors, it won't be long for the docker swarm to have all the best functionalities other tools possess. Docker has documented a good production plan for using the docker swarm in production. ![docker swarm clustering](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/docker-swarm-1.png) Click to view in HD ## 4\. Rancher Rancher is an open-source container orchestration tool. At the core, the rancher uses kubernetes as the container orchestrator. Rancher offers the following functionalities. 1. Centralized Cluster Provisioning that supports on-prem, cloud, and edge. 2. Streamlined Kubernetes Operations by controlling cluster operations from a single console. 3. Centralized Kubernetes Security through centralized user policies. 4. Intuitive Workload Management using native [kubernetes API](https://devopscube.com/kubernetes-api-access-service-account/) or kubectl utility. 5. Integrated Monitoring and Logging using [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/), Fluentd, and [Grafana](https://devopscube.com/integrate-visualize-prometheus-grafana/). 6. Supports management for Amazon EKS clusters &[ Google Kubernetes Engine (GKE)](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) 7. Global Application Catalog to make application installation and upgrade easier. ![Racher orchestration tool architectecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/platform-1.png) Image Source: [rancher.com](https://rancher.com/?ref=devopscube.com) ## 5\. Mesos [Mesos](http://mesos.apache.org/?ref=devopscube.com) is another cluster management tool that can manage container orchestration very efficiently. It was created by Twitter for its infrastructure and then got open source. It is used by companies like eBay, Airbnb, etc. Mesos is not a dedicated tool for containers, Mesos is not a dedicated tool for containers; instead, you can use it for VM or Physical machine clustering for running workloads (Big data, etc.) other than containers. It has an efficient Marathon framework for deploying and managing containers on a Mesos cluster. You can also run a Kubernetes cluster on a Mesos cluster. Check out [this guide](http://kubernetes.io/docs/getting-started-guides/mesos/?ref=devopscube.com) for the same. ![mesos cluster manager for containers](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/mesos-cluster-1.jpg) Image Source: container-solutions.com ## Managed Container Orchestration Tools There are many cloud-based managed container orchestration tools that you can use to avoid complex cluster setups and administrative overhead. Here is the list of 10 managed container services where you just have to focus on your application rather than cluster administration. ## 6\. Google Container Engine (GKE) [GKE](https://cloud.google.com/container-engine/?ref=devopscube.com) is a managed, highly scalable container service on google cloud. At the backend, GKE uses kubernetes, and you can use all the kubernetes functionalities on GKE. You can [deploy a GKE cluster](https://devopscube.com/setup-kubernetes-cluster-google-cloud/) with a few clicks. It comes with [features like autopilot](https://cloud.google.com/kubernetes-engine/docs/concepts/autopilot-overview?ref=devopscube.com) to reduce operations costs. ## 7\. Google Cloud Run [Cloud Run](https://cloud.google.com/run?ref=devopscube.com) is a managed service to run containers in a serverless way. You don't have to create and manage a container cluster; deploy the container on cloud run, and Google cloud will scale and manage it. ### 8\. AWS Elastic Kubernetes Service (EKS) [EKS](https://aws.amazon.com/eks/?ref=devopscube.com) is a managed Kubernetes cluster service from AWS similar to GKE. ### 9\. Amazon EC2 Container Service (ECS) [ECS](https://aws.amazon.com/ecs/?ref=devopscube.com) is a service offered by AWS for managing the cluster of containers. It is not based on kubernetes. ECS is an AWS-managed proprietary container cluster management and scheduling service. The only thing you have to worry about is the vendor lock-in. ### 10\. AWS Fargate [AWS farmgate](https://aws.amazon.com/fargate/?ref=devopscube.com) is a similar serverless environment for running containers. Here you can choose the backend infrastructure to be EKS or ECS. You don't have to worry about the backend scaling, though. AWS will take care of managing and scaling. ### 11\. Azure AKS Service [Azure Kubernetes Service](https://azure.microsoft.com/en-in/services/kubernetes-service/?ref=devopscube.com) is a managed highly available kubernetes service from Azure. ### 12\. Azure Managed Openshift Service Now public cloud providers are bringing openshift as a service. Azure has a[ managed Openshift service](https://azure.microsoft.com/en-in/services/openshift/?ref=devopscube.com) in partnership with Redhat. ### 13\. Azure Container Instances [Azure container instances](https://azure.microsoft.com/en-in/services/container-instances/?ref=devopscube.com) are managed serverless container deployment services like cloud run and Fargate. ### 14\. Digital Ocean Kubernetes Service The digital Ocean offers a [managed kubernetes service](https://www.digitalocean.com/products/kubernetes/?ref=devopscube.com) for deploying container-based applications. You can get [free $100 credits from Digital Ocean](https://devopscube.com/recommends/digital-ocean-sidebar/) The following are the key features of the Digital Ocean Kubernetes service. ### 15\. Red Hat OpenShift Online [Openshift online](https://www.openshift.com/products/online/?ref=devopscube.com) is one of the PaaS offerings from Redhat. You can deploy applications on the cloud with openshift using this service. You don't have to manage the cluster, as it is a pure PaaS service. ### 16\. Linode Kubernetes Engine [Linode Kubernetes engine](https://devopscube.com/recommends/linode/) is a simple and easy Kubernetes setup on the Linode platform. The Following are the key features of the Kubernetes service by Linode. 1. Easy Deployment of Kubernetes Clusters 2. Highly available and scalable clusters. 3. Easy integration with tools like Helm, Rancher, etc 4. No management fee for Kubernetes. 5. Complimentary Kubernetes control plane – including API, scheduler, etcd, and resource controllers. ### 17\. Portainer [Portainer](https://www.portainer.io/?ref=devopscube.com) is an open source container management platform which is providing a simple way to manage Docker, Kubernetes, and Podman. It is a unified management, multi-environment support, user-friendly interface, and central policy and access control. ### 18\. KubeSphere [KubeSphere](https://kubesphere.io/?ref=devopscube.com) is an open-source platform built on Kubernetes that makes managing clusters easier using a web dashboard. This platform adds features like monitoring, CI/CD, multi-cluster management, and team access control on top of Kubernetes. KuberSphere is mainly used in production setups where teams need full Kubernetes management in one place. ## Managed Vs. Self-Hosted Container ## Orchestration Tools Choosing between managed and self-hosted container orchestration tools depends on the organization's decision. However, we try to put some generic advantages of managed vs. self-hosted solutions. The following are the advantages of managed container orchestration tools. | Advantages | Disadvantages | | ----------------------------------------------- | ------------------------------------------------------------------ | | One-click provisioning | No control over the control plane. | | Integration with native cloud platform services | You need to stick with the options provided by the cloud provider. | | Less administrative overhead. | | | High Scalability | | | High Availability | | | 24/7 Technical support | | | Enterprise-grade security & Compliance | | | | | Following are the advantages of self-hosted container orchestration tools. | Advantages | Disadvantages | | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | | Complete control over the platform and increased flexibility | Huge engineering effort on custom automation for cluster provisioning | | | Dedicated support team required for platform support | | | Custom scaling setup is required. | | | Need subject matter experts in the team to take care of design, setup, upgrade, and maintenance of the cluster. | My advice would be to go with the managed orchestration platform unless you are trying to build a PaaS solution to cater your services to other customers. With managed services, you can focus more of your engineering efforts on the application rather than spending time and effort on managing the platform. ## Container Orchestration Tool FAQ's Let's look at some of the commonly asked questions on container orchestration tools. ### What is the difference between Kubernetes & Openshift? Kubernetes is the open-source container orchestration tool maintained by the cloud-native foundation. The Openshift container platform is built on top of the Kubernetes core and maintained by Redhat. ### How to choose a container orchestration tool? There is no single answer to this question. Instead, choosing a container orchestration tool depends on various factors such as team size, budget, available SMEs and application compatibilities, and security compliance. ## Conclusion Choosing a **container orchestration too**l or a service depends on your needs and the complexity of your application. Also, the service mesh adoption is increasing. Most managed Kubernetes service providers offer addons for service mesh tools like Istio. There is no doubt that many organizations are using the tools mentioned above and services for their production workloads. Also, if you want to look at a comprehensive list of tools that can be used in the DevOps toolchain, check out the [devops tools](https://devopscube.com/best-devops-tools/) list where I have covered 90+ best tools in different categories. With a plethora of tools from the cloud-native foundation, it is becoming easy to manage containerized applications. If you look at our [DevOps engineer guide](https://devopscube.com/become-devops-engineer/), containers play an important role and have covered some containers' great insights. Also, if you're looking for a good open-source monitoring tool, read my reviews of the [best open-source monitoring tools.](https://devopscube.com/best-opensource-monitoring-tools/) ### Educative.io Review 2026: Is the Premium Plus Plan Worth It? URL: https://devopscube.com/educative-io-review/ Last updated: 2026-01-21T13:36:09.000Z In this detailed [Educative.io](https://www.educative.io/?ref=devopscube.com) review, I will share my learning experience with the platform. It will help you decide if it is worth your money. Here is what I will cover. - Overview of the Educative platform - Platform features - Course quality - Educative Hands-on labs (in-browser coding environment) - AI features for learning - Overall user experience By the end, you will have a clear idea of which Educative subscription plan suits you best if you decide to go ahead with it. Lets get started. ## What is Educative.io? Educative is a learning platform built around **interactive, text-based courses** **(1,600+ interactive courses).** Instead of watching videos, you learn by reading, practicing in built-in coding playgrounds, and solving hands-on exercises. It is popular among developers preparing for interviews, [system design](https://devopscube.com/system-design-interview-courses/), cloud, and DevOps roles. Overall, more than **2.8 + million developers** use the platform globally. ## Key Features of Educative.io Below are some of the key features of educative.io - Educative.io allows you to learn, write, and run code on the platform itself without any additional setup. - It creates a **custom learning path** based on your information. For example, if you are preparing for a DevOps interview, it will create a learning path for the specific domain interview. - Every course has tests to check your understanding at the end. - If you are preparing for interviews, it provides a mock interview with an AI assistant. This is just some of the features in Educative.io, there is much more. ## Available Courses in Educative.io In Educative, you will get courses on the following topics, which are clearly arranged under each section. - System Design - Generative AI - AWS - Programming Language - Web Development - Coding Interview Patterns - Software Engineering - Machine Learning ![Educative courses Interface](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-216.png) I chose the AWS course, which teaches AWS from scratch. They also have courses for AWS certification exams like `Master AWS Certified Solutions Architect Associate` and `Master AWS Certified AI Practitioner`. Each lesson includes quizzes, mock exams, and mock interviews, which are helpful for exam preparation. You also get a completion certificate at the end. Courses are separated as popular, beginner-friendly, and free, making navigation easy. ![courses available in educative](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-217.png) ## Learning Path The learning paths give you full roadmaps based on what you want to learn. Available paths include: - Generative AI - AWS - Programming Language - Web Development - Coding Interview Patterns - Software Engineering - Machine Learning - Front End Development - API - [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) For example, if you pick a topic, it will give you a complete roadmap to master it. ![learning paths interface in educative](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-221.png) I used the DevOps path to learn version control and trace analysis. It starts with Git, everything you need to know about Git covering branching, commands, and everything a beginner needs. After completing Git, it gives a complete roadmap on how you can use Git for version control, and following that, it gives everything you need to know about tracing and logging. Just like the courses, each lesson ends with quizzes, and you get a certificate after completing the path. ## Technology Guides & Hands-on Projects There are also separate sections for technologies with their courses and paths. Below are the technology guides that Educative offers: - AI Agent - Jax - Playwright - [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) - Pydantic - HTML - Langchain - RxJava - ThreeJS - Rest API - NestJS When you select a technology, you will see the available courses, and learning paths related to it. At the end, you get hands-on projects to apply your learned technology. ![technologies Interface in educative](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-227.png) For example, I [learned about Kubernetes. ](https://devopscube.com/learn-kubernetes-complete-roadmap/) The course starts with a detailed explanation of Kubernetes concepts, how it works, and each object and resource. After that, it will give you a good understanding of every [object and resource in Kubernetes.](https://devopscube.com/kubernetes-objects-resources/) After that, it moves into advanced topics like auto-scaling, monitoring, and [pod troubleshooting.](https://devopscube.com/troubleshoot-kubernetes-pods/) Again, you will get a complete certification once you finish the full learning path. ## Practice Section (Hands-on Labs) The practice section has two sub-sections, **Projects** and **Cloud Labs**. In the projects section, you see how-to guides and hands-on on the selected topic. ![hands-on topics Interface in educative](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-231.png) In the cloud, you can have multiple projects. If you select any project, it will give you a Visual Studio Code as shown in the image below, and start by asking you to set up the environment and provide instructions to complete the project. ![Educative.io browser IDE environment Interface for hand-on tasks](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-228.png) The Cloud Labs are only available for Premium Plus users. They can work on the following cloud services. ![cloud labs Interface in educative.io](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-230.png) ## Interview Prep & Mock Interviews If you are a person looking for new jobs, Educative will guide you to prepare for interviews and give mock interviews based on the job you are looking for. For mock interviews, select the type of job you are interviewing for ![mock interviews Interface in educative.io](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-237.png) It will ask for your experience, select it, and press the start button to start it. ![starting mock interviews in educative.io](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-234.png) It will create an interface according to the role you select. ![mock interview environments Interface with excalicraw integration](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-235.png) And, in the interview preparation, you will find the following modules. ![available interview preparation guides in educative](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-238.png) Select the topic you want to look into, it will teach you about the topic and ask a question based on it as shown below. ![interview question in interview preparation section](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-236.png) ## Resources Available Apart from courses and roadmaps, Educative also has other resources like Newsletters, Blogs, Guides, Cheatsheets, games, and also offers an environment to run code. ![available resources Interface in educative.io](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-239.png) ## Fenzo: AI-Powered Tutorial Generator Educative.io has a tool called Fenzo, which is an AI-powered tutorial generator. It generates step by step tutorials based on the query. I have asked "How to build and Dockerize a Java application". It gave me all the steps needed, also the application file and Dockerfile. The content of the files is editable, and you can edit it in the output itself. ![dockerfile content genrated in educative Fenzo interface](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-11.png) It also gave a simple workflow of the build process, as shown below. ![simple workflow diagram](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-10.png) The steps and explanations are still basic and do not cover deep explanations like production-level details. If you need to learn a specific topic, you can use Fenzo to learn the basics faster. ## User Experience When I logged in, I saw a clean dashboard with all resources arranged in separate sections, like courses, paths, projects, etc. Educative has a huge library of courses and learning paths. It not only guides people who are trying to learn about something, but also helps people learn advanced concepts about what they have knowledge of. I chose DevOps topics and started learning, each topic covers the end-to-end information and its advanced concepts. The lessons are text-based with detailed diagrams that are easy to understand even for a beginner. The hands-on environment provides everything required to run scripts or deploy an application. No setup is needed. The mock interviews and preparation modules are extremely useful for anyone getting ready for a job interview. Overall, I feel like this platform has everything from learning to interview preparation. If you want to upskill in DevOps or any other field and have time to learn, Educative is a strong choice. ## Educative.io Pricing and Plans Educative has three types of plans. - **Standard:** \~$149/year (Effective $13/mo) -->Best for learners. - **Premium:** \~$199/year (Effective $17/mo) --> Best for interview prep. - **Premium Plus:** \~$249/year (Effective $21/mo) – >Best for Cloud/DevOps (includes Cloud Labs). All plans come with more than 50% off when billed annually (approx. $13–$21/month). Two-year plans are also available for each plan. The Standard plan comes with 1000+ hands-on courses, completion certificates for courses, AI-powered learning, and Educative Newsletter on AI, cloud and more. In the Premium plan, along with what is in the Standard plan, you will get 320+ real-world projects, personalized interview preparation, 3 AI Mock Interviews per month, and a personalized roadmap according to your goal as additional benefits. In the Premium plus plan, along with what is in the Standard and Premium plans, you will get 270+ AWS Cloud labs, and 7 AI mock interviews per month. 💡 Educative runs occasional promotions where you can get up to a 75% discount. Check the [Educative.io coupon](https://devopscube.com/educativeio-coupon/) page to see the latest offers and promotions. ## The Bottom Line: My Educative.io Review For me, the platform is most useful for cloud & devops learning, tools, and scripting associated with it. If you are a DevOps Engineer or learning to [become DevOps Engineer](https://devopscube.com/become-devops-engineer/), you should know the following: - Linux - [Scripting](https://devopscube.com/linux-shell-scripting-for-devops/) - Containerization and [container orchestration](https://devopscube.com/docker-container-clustering-tools/) - [Cloud](https://devopscube.com/popular-cloud-providers-for-kubernetes/) - [IaC](https://devopscube.com/infrastructure-as-code-configuration-management/) - [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) - Troubleshooting skills Educative helps you master everything from scratch to advance with detailed courses that cover everything and hands-on parts in their own hosted environment. Not only is it great for DevOps Engineers, but it is also great for Developers, ML Engineers, and anyone trying to improve technical skills. The **best part is the interactive text-based learning**. It avoids long videos and focuses on learning by reading and coding, which saves time and allows quick revision. But if you are someone who likes to watch videos and learn, then Educative is not for you. You can choose platforms like [Pluralsight](https://devopscube.com/pluralsight-review/) for video-based learning. ## Free Trial and Refund Policy If you signup for the educative free trail, you need to give your credit card details before using it. You won't get charged until the trial period ends. By the last day of the trial, you will be automatically charged, and the plan will continue. But don't worry, you can cancel 24 hours before the last day of the trial. And, for the refund policy, if you bought an unlimited access subscription and canceled it immediately, you can ask for a refund. After you cancel the subscription, your access will be blocked immediately. Also, they can say no to your refunds if your activity feels suspicious to them. ## Overall Educative Pros and Cons In the following table I have listed the educative platforms pros and cons. | **Feature** | **Pros** | **Cons** | | ------------------ | --------------------------------------------- | ------------------------------------------------- | | **Learning Style** | Interactive, text-based (no video fatigue) | No videos (can be a downside for visual learners) | | **Practice** | Built-in IDE & Cloud Labs (No setup needed) | Cloud Labs limited to highest tier | | **Content** | Elite "Grokking" series for interviews | Some niche courses can feel basic | | **AI Features** | Fenzo tutorial generator & AI Mock Interviews | AI-generated content lacks deep "pro" insights | ## Educative vs Udemy I have used both Educative and Udemy for learning, the difference in both of them is their learning method. In Educative, the learning is text-based, and it provides an in-built environment to run code. But, in Udemy, it is completely video-based learning, and if you want to do it hands-on, you have to use your own local setup. Also, in Educative, you can get complete library access by buying specific plans, but in Udemy, you have to pay for each course to access it. In my opinion, if you are a person who needs text-based learning and needs interview preparation, choose Educative. If you understand better by watching videos, choose Udemy. ## Conclusion In this educative review, I covered all the resources available on Educative.io along with my personal learning experience. I hope this blog helps you understand what the platform offers and whether it suits your learning style. I currently have an active Educative subscription, and next I will be focusing on GenAI and MLOps-related technologies. I will keep this review updated with my learnings and experiences. Thank you for reading. If you have any questions, feel free to drop a comment below. I’ll be happy to help. ### How to Set Up Istio in Ambient Mode (Detailed Guide) URL: https://devopscube.com/setup-istio-ambient-mode/ Last updated: 2026-02-03T05:45:44.000Z In this blog, you will learn how to set up Istio Ambient Mode and validate Layer 4 (ztunnel) and Layer 7 (waypoint proxy) traffic on a [Kubernetes cluster.](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) By the end of this tutorial, you will have learned the following. 1. What is Istio Ambient Mode and how it differs from traditional [sidecar architecture](https://devopscube.com/setup-istio-on-kubernetes/) 2. Install Istio Ambient Mode using [Helm charts](https://devopscube.com/create-helm-chart/) 3. Core components (ztunnel, waypoint proxy, Istio CNI) and their specific roles 4. How ztunnel handles L4 traffic at the node level for all pods. 5. Deploy and configure waypoint proxies using Gateway API resources to handle L7 traffic and more.. Lets gets started. ## What is Istio Ambient Mode? **Istio Ambient Mode** is a sidecar-less architecture for the Istio [service mesh](https://devopscube.com/service-mesh-tools/). Traditionally, Istio injects a sidecar in to every pod that is part of the mesh. However, Ambient Mode uses the new data plane architecture inIstio service mesh that **does not require sidecar proxies** for each workload. Instead, all the **L4 traffic** is managed by a light weight **ztunnel** (Zero Trust tunnel) proxy at the node level. Meaning all the ingress and egress connectivity from pods are intercepted by the **ztunnel** proxy. All the the **L7 traffic** is handled by the waypoint proxies at namespace level. ![Istio Ambient Mode Architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image.png) By eliminating per-pod sidecar proxies, it significantly **reduces CPU and memory consumption** (up to 70% savings). Now that you have an idea about Ambient mode, lets get started with the setup. ## Istio Ambient Mode Installation via Helm (Step-by-Step) For this setup, we use will use the official [Helm](https://devopscube.com/create-helm-chart/) chart to install the Istio ambient mesh components one by one. 💡 If you want to install all components using a single chart, you can use the `istio/ambient` chart. This is mainly useful for testing purposes You can also set up the whole Ambient environment using `Istioctl install --set profile=ambient` Lets get started with the setup. ### Step 1: Initialize the Istio Repository The first step is adding the whole Istio repo on our local machine and using the update command to ensure that we have all the latest charts. ```bash helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update ``` The installation begins with the base chart. ### Step 2: Install Istio Base Chart The Istio base chart contains all the Istio-related Custom Resource Definitions. ![selecting the chart for the istio base](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-97.png) To install the base chart, use the following command. ```bash helm install istio-base istio/base -n istio-system --create-namespace --wait ``` Once the installation is completed, use the following command to list them. ```bash $ kubectl get crds | grep istio.io authorizationpolicies.security.istio.io 2025-11-28T04:33:38Z destinationrules.networking.istio.io 2025-11-28T04:33:39Z envoyfilters.networking.istio.io 2025-11-28T04:33:38Z gateways.networking.istio.io 2025-11-28T04:33:38Z peerauthentications.security.istio.io 2025-11-28T04:33:38Z proxyconfigs.networking.istio.io 2025-11-28T04:33:38Z requestauthentications.security.istio.io 2025-11-28T04:33:38Z serviceentries.networking.istio.io 2025-11-28T04:33:38Z sidecars.networking.istio.io 2025-11-28T04:33:38Z telemetries.telemetry.istio.io 2025-11-28T04:33:38Z virtualservices.networking.istio.io 2025-11-28T04:33:38Z wasmplugins.extensions.istio.io 2025-11-28T04:33:38Z workloadentries.networking.istio.io 2025-11-28T04:33:38Z workloadgroups.networking.istio.io 2025-11-28T04:33:38Z ``` The output shows that the CRDs are installed. Next, we need to install the [Gateway API](https://devopscube.com/istio-ingress-kubernetes-gateway-api/) resources to create routing rules. ### Step 3: Install Gateway API CRDs 💡 You might be used to `VirtualService` and `DestinationRule` resources. While Istio Ambient mesh still supports them, it heavily favors the [****Kubernetes Gateway API**](https://devopscube.com/kubernetes-gateway-api/) for Layer 7 configuration using waypoint proxy. That is why we are setting up the Gateway API CRDs. We need to use the Gateway API Custom Resources to create and configure the Waypoint proxy. To install the Gateway API CRDs, use the following command. Please refer [official gateway API installation page](https://gateway-api.sigs.k8s.io/guides/getting-started/?ref=devopscube.com#installing-gateway-api) to get the latest version of the Gateway API CRDs ```bash kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml ``` Once the installation is completed, use the following command to list the installed custom resource definitions. ```bash $ kubectl get crds | grep gateway.networking.k8s.io backendtlspolicies.gateway.networking.k8s.io 2025-12-17T05:26:49Z gatewayclasses.gateway.networking.k8s.io 2025-12-17T05:26:49Z gateways.gateway.networking.k8s.io 2025-12-17T05:26:50Z grpcroutes.gateway.networking.k8s.io 2025-12-17T05:26:50Z httproutes.gateway.networking.k8s.io 2025-12-17T05:26:51Z referencegrants.gateway.networking.k8s.io 2025-12-17T05:26:52Z ``` Now, the Gateway API resources are installed, so the next step is to install the Istio Daemon with the ambient mode. ### Step 4: Deploy Istiod with Ambient Profile We need to install the Istiod and enable the ambient mode. We can enable the ambient mode during the installation. The following marked Istio chart we use to install the Istio Daemon. ![selecting the chart for the istio daemon](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-98.png) During the installation, we use the flag `--set-profile=ambient` to tell Istiod to enable the Ambient Mode feature. Use the following command to install istiod in ambient mode. ```bash helm install istiod istio/istiod --namespace istio-system --create-namespace --set profile=ambient --wait ``` Once the installation is completed, ensure that the Istiod pod is running. ```bash $ kubectl -n istio-system get po,svc NAME READY STATUS RESTARTS AGE pod/istiod-6547d75b5f-wd696 1/1 Running 0 46s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/istiod ClusterIP 10.100.88.243 15010/TCP,15012/TCP,443/TCP,15014/TCP 3h45m ``` On the next step, we need to install Istio CNI to redirect the incoming pod traffic to the traffic management component. ### Step 5: Deploy Istio CNI 💡 Istio CNI is not a full Kubernetes CNI plugin that replaces your cluster CNI. It is CNI chaining plugin that works alongside your existing cluster CNI (like Calico, Cilium, Flannel, etc.) rather than replacing it. Istio CNI is an Ambient Mode component that inserts **iptables rules** so that pod traffic gets redirected through Istio ambient Ztunnel proxies. To install it, we need to choose the `istio/cni` chart from the repo. ![selecting the istio cni from the istio helm repo](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-96.png) Install the Istio CNI using the following helm command. ```bash helm install istio-cni istio/cni -n istio-system --set profile=ambient --wait ``` Once the installation is completed, we need to list the [Pods](https://devopscube.com/troubleshoot-kubernetes-pods/) of the Istio CNI ```bash $ kubectl get all -n istio-system -l app.kubernetes.io/instance=istio-cni NAME READY STATUS RESTARTS AGE pod/istio-cni-node-br6pd 1/1 Running 0 3m47s pod/istio-cni-node-f58ck 1/1 Running 0 3m47s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/istio-cni-node 2 2 2 2 2 kubernetes.io/os=linux 3m48s ``` ### Step 6: Deploy Ztunnel The final component is the Ztunnel proxy. The Ztunnel proxy is an Istio data plane component in Ambient mode that is the similar to the sidecar containers in the sidecar mode. To install Ztunnel, you need to choose the `istio/ztunnel` chart from the repo. ![selecting the ztunnel chart from the istio repo](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-136.png) Install Ztunnel using the following command. ```bash helm install ztunnel istio/ztunnel -n istio-system --wait ``` Once the installation is done, use the following command to list the Ztunnel pods. ```bash $ kubectl get all -n istio-system | grep -i ztunnel pod/ztunnel-frjjv 1/1 Running 0 79s pod/ztunnel-jzzx2 1/1 Running 0 79s daemonset.apps/ztunnel 2 2 2 2 2 kubernetes.io/os=linux 80s ``` As you can see in the output, the ztunnel is deployed as a [Daemonset](https://devopscube.com/kubernetes-daemonset/). Using `istioctl` we can verify if the Ztunnel (data planes) are linked with the Istio Daemon (control plane) ```bash $ istioctl proxy-status NAME CLUSTER ISTIOD VERSION SUBSCRIBED TYPES ztunnel-flpfw.istio-system Kubernetes istiod-6547d75b5f-99tbh 1.28.0 2 (WADS,WDS) ztunnel-mzmtj.istio-system Kubernetes istiod-6547d75b5f-99tbh 1.28.0 2 (WADS,WDS) ``` In the output, you can see two subscriptions, such as `WADS` and `WDS`. It means, the control plane is **actively "listening" for live updates**. Now, the entire Istio Ambient Mode setup is ready. Next step is to create a namespace and enable ambient mode in it. ## Enabling Ambient Mode for Workloads To make workloads part of the Istio ambient mesh, we need to enable it in the namespace level using the `istio.io/dataplane-mode=ambient` label. This way all the pods that gets deployed in that namespace will be part of the mesh. Lets create a **`istio-test`** namespace where we can deploy sample workloads for testing. ```bash kubectl create ns istio-test ``` Use the following command to set the Ambient Mode label to the namespace. ```bash kubectl label namespace istio-test istio.io/dataplane-mode=ambient ``` 💡 If you want to enable the Ambient mode for only one Pod, then you can use the same label to label only the pod. Now, verify the label using the following command. ``` $ kubectl get ns -L istio.io/dataplane-mode NAME STATUS AGE DATAPLANE-MODE default Active 22h istio-system Active 21h istio-test Active 23s ambient ``` We have enabled the ambient mode for the istio-test namespace. So any application we deploy in it will automatically be part of the Ambient mesh. The next step is **deploy workloads** in the ambient mesh enabled namespace for testing. 💡 We can still use the Sidecar Mode is Ambient setup. For that, we only need use the sidecar label (`istio-injection=enabled`) in that particular namespace. ## Deploy Demo Applications To test all the ambient mode features, we will deploy two sample apps (v1 & v2) that expose a simple API. The following diagram illustrates l4 and l7 traffic workflow that we are going to test with the sample deployments. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-5.png) l4 and l7 traffic workflow in Istio ambient mode using ztunnel and waypoint proxy Now lets deploy the sample APIs. Use the following manifest directly to create the deployments and relates services. ```yaml cat <<'EOF' | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: backend-v1 namespace: istio-test spec: replicas: 3 selector: matchLabels: { app: backend, version: v1 } template: metadata: labels: { app: backend, version: v1 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v1"] ports: - containerPort: 5678 --- apiVersion: apps/v1 kind: Deployment metadata: name: backend-v2 namespace: istio-test spec: replicas: 2 selector: matchLabels: { app: backend, version: v2 } template: metadata: labels: { app: backend, version: v2 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v2"] ports: - containerPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend-v1 namespace: istio-test spec: selector: app: backend version: v1 ports: - name: http port: 80 targetPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend-v2 namespace: istio-test spec: selector: app: backend version: v2 ports: - name: http port: 80 targetPort: 5678 EOF ``` Once the deployment is completed, ensure that the deployments and services are properly created. ```bash $ kubectl -n istio-test get po,svc NAME READY STATUS RESTARTS AGE pod/backend-v1-7c88547fc6-62skp 1/1 Running 0 33s pod/backend-v1-7c88547fc6-rstb7 1/1 Running 0 33s pod/backend-v1-7c88547fc6-w5s45 1/1 Running 0 33s pod/backend-v2-86c767bf6b-2k8jq 1/1 Running 0 32s pod/backend-v2-86c767bf6b-2nl4d 1/1 Running 0 32s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/backend-v1 ClusterIP 10.100.121.209 80/TCP 31s service/backend-v2 ClusterIP 10.100.227.24 80/TCP 31s ``` Now that the applications are running, lets validate if the applications are configured to serve traffic via Istio mesh. ## Validate Application Mesh Configurations To ensure that the ambient mode is enabled for our deployed workload, describe one of the workload pods using the following command. Replace `` with the pod name. ```bash kubectl -n istio-test describe po | grep Annotations ``` You will get an output with annotation added by the Istio CNI as shown below. This annotation indicates that the traffic to this Pod is redirected to the Ztunnel proxy. ```bash $ kubectl -n istio-test describe po backend-v1-6997699946-9wlzq ... Annotations: ambient.istio.io/redirection: enabled ... ``` Another way to validate is using the **`istioctl`** command. The following command lists the pods that are registered with **ztunnel** using **`HBONE`** protocol. ```bash $ istioctl ztunnel-config workload | grep HBONE istio-test backend-v1-567bfdcf7-6rp4q 172.31.36.187 ip-172-31-40-209.us-west-2.compute.internal None HBONE istio-test backend-v1-567bfdcf7-r79hx 172.31.21.17 ip-172-31-26-127.us-west-2.compute.internal None HBONE istio-test backend-v1-567bfdcf7-tlzsx 172.31.42.98 ip-172-31-40-209.us-west-2.compute.internal None HBONE istio-test backend-v2-95d4845d7-fh2gg 172.31.38.186 ip-172-31-40-209.us-west-2.compute.internal None HBONE istio-test backend-v2-95d4845d7-nrv7g 172.31.22.17 ip-172-31-26-127.us-west-2.compute.internal None HBONE ``` The above output means, all the listed workloads are in ambient mesh mode, and their traffic is being handled by ztunnel using the HBONE protocol. 💡 [****HBONE**](https://istio.io/latest/docs/ambient/architecture/hbone/?ref=devopscube.com) stands for ****HTTP-Based Overlay Network Environment**. It is a tunneling protocol used to securely transport traffic between pods in the mesh. Now we have apps running in the Istio mesh ready for testing. First, we will test the **layer 4 traffic** with ztunnel proxy. ## Testing L4 Connectivity with Ztunnel To test the l4 traffic, we will **deploy a simple curl pod** that sends request to the `backend-v1` service endpoint. The following diagram shows how traffic flows from a client pod to the destination pods via Ztunnel proxy. ![L4 Connectivity flow with Ztunnel in Istio Ambient mesh](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-3.png) Execute the following command to generate traffic from the client pod. ```bash $ kubectl run test-client -n istio-test \ --image=curlimages/curl:latest \ --restart=Never --rm -it \ -- sh -c "while true; do curl -s http://backend-v1 && sleep 2; done" hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v1 ``` Now, keep in running. In a different terminal, lets check the logs of the Ztunnel proxy to see how the traffic is handled by it. Use the following command to stream new logs from the ztunnel DaemonSet pods ```bash $ kubectl logs -n istio-system daemonset/ztunnel -f --all-containers=true 2025-12-17T06:10:01.553894Z info access connection complete src.addr=172.31.42.213:45010 src.workload="test-client" src.namespace="istio-test" src.identity="spiffe://cluster.local/ns/istio-test/sa/default" dst.addr=172.31.36.187:15008 dst.hbone_addr=172.31.36.187:5678 dst.service="backend-v1.istio-test.svc.cluster.local" dst.workload="backend-v1-567bfdcf7-6rp4q" dst.namespace="istio-test" dst.identity="spiffe://cluster.local/ns/istio-test/sa/default" direction="outbound" bytes_sent=74 bytes_recv=184 duration="1ms" 2025-12-17T06:10:03.561041Z info access connection complete src.addr=172.31.42.213:43500 src.workload="test-client" src.namespace="istio-test" src.identity="spiffe://cluster.local/ns/istio-test/sa/default" dst.addr=172.31.42.98:15008 dst.hbone_addr=172.31.42.98:5678 dst.service="backend-v1.istio-test.svc.cluster.local" dst.workload="backend-v1-567bfdcf7-tlzsx" dst.namespace="istio-test" dst.identity="spiffe://cluster.local/ns/istio-test/sa/default" direction="inbound" bytes_sent=184 bytes_recv=74 duration="0ms" ``` The log output shows that the source traffic from **`172.31.42.213`** (ie, test-client pod) is passing through the ztunnel along with the amount of data transferred and the latency. Now that our L4 traffic testing is done, lets validate L7 traffic using Ztunnel and Waypoint proxy. ## Advanced L7 Traffic Management with Waypoint Proxies To handle L7 features like HTTP/gRPC routing, Load balancing, Retries, timeouts, circuit breaking, **L7 observability** (HTTP metrics, access logs, tracing) etc., you need to have the **waypoint proxy implementation.** The following diagram illustrates how the waypoint proxy works alongside Ztunnel to manage the L7 traffic. ![L7 Traffic Management with Istio Waypoint Proxies](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-1.png) Here is how it works. When we generate L7 traffic from the client pod, the local **ztunnel** on the source node intercepts traffic and provides L4 functions. But when a request needs L7 processing, the source ztunnel wraps the raw TCP/HTTP traffic into an **HBONE tunnel** (mTLS-encrypted over port 15008) and sends it to the Waypoint Proxy. The waypoint proxy then applies the L7 rules (e.g., "10% of traffic to v2) and then wraps the traffic back into a new HBONE tunnel and sends it to the **destination ztunnel** on the node where the target Pod actually lives. 💡 One Waypoint proxy is usually enough for an entire namespace or a service. Now, lets get started with the waypoint proxy setup. ### Default Waypoint Gateway Class We need **Kubernetes Gateway API** to implement Waypoint proxies. The `GatewayClass` for waypoint proxy named **`istio-waypoint`** is automatically created when you install the Istiod in ambient mode. To view the waypoint `GatewayClass`, use the following command. ```bash $ kubectl get gc NAME CONTROLLER ACCEPTED AGE istio istio.io/gateway-controller True 6h37m istio-remote istio.io/unmanaged-gateway True 6h37m istio-waypoint istio.io/mesh-controller True 6h37m ``` As you can see the istio-waypoint gateway class is associated with the `istio.io/mesh-controller`. Meaning this is the controllers that spins up the required waypoint envoy pods. With the default GatewayClass in place, the next step is to create a Gateway. The Gateway is what deploys the waypoint proxy. ### Create a Waypoint Gateway When we create a Gateway API **Gateway object**, a namespace-scoped Waypoint proxy is created. ![The creation of the waypoint proxy in istio using gateway](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-34.png) When creating a Gateway, we need to **HBONE (Port 15008) listener.** It handles the encrypted mesh traffic coming from the Ztunnel. We also need to mention the `GatewayClass`, that is, the default **`istio-waypoint`** GatewayClass. Use the following to create the Gateway manifest with the above-mentioned details. ```yaml cat << EOF > test-waypoint.yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: labels: istio.io/waypoint-for: all name: test-waypoint namespace: istio-test spec: gatewayClassName: istio-waypoint listeners: - name: mesh port: 15008 protocol: HBONE allowedRoutes: namespaces: from: Same EOF ``` ⚠️ When a Gateway object is labeled with `istio.io/waypoint-for: all`, all traffic from Ztunnel passes through Waypoint for both ****services** and ****Pods**. Instead of `all`, we can use `workload`, `services,` or even `none` to control this. To apply this, use the following command. ```bash kubectl apply -f test-waypoint.yaml ``` Once the Gateway is created, verify it using the following command. ```bash $ kubectl -n istio-test get gateway NAME CLASS ADDRESS PROGRAMMED AGE test-waypoint istio-waypoint 10.100.255.236 True 60s ``` As mentioned earlier, the Gateway object will deploy a envoy based waypoint proxy as Deployment with a ClusterIP service. Use the following command to validate it. ```bash $ kubectl get deploy,po,svc -n istio-test -l gateway.networking.k8s.io/gateway-name=test-waypoint NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/test-waypoint 1/1 1 1 3m4s NAME READY STATUS RESTARTS AGE pod/test-waypoint-6bf8c7b68b-6v5rc 1/1 Running 0 3m4s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/test-waypoint ClusterIP 10.100.255.236 15021/TCP,15008/TCP 3m5s ``` ### Enrolling a Namespace with the Waypoint Proxy Now we have the waypoint proxy deployed and running in the istio namespace. To use it for our 7 based workloads, we **need to enroll the namespace**. To enroll a namespace with the waypoint proxy, you need to **label the namespace** with the waypoint Gateway name. In our case, the Gateway name is **`test-waypoint`** Execute the following command to add the label to the namespace. ```bash kubectl label ns istio-test istio.io/use-waypoint=test-waypoint ``` With the above Label the traffic goes `Client Pod` \-> `Ztunnel` \-> `Waypoint Proxy` \-> `Destination Pod`. Here is where it gets interesting. By labeling the namespace this way, you are **essentially opting all workloads** and services in that namespace to use the waypoint proxy. It means, now **all the L4 and L7 traffic** will be intercepted by the waypoint proxy. For example, a database operating on L4 will also use waypoint and **adds a bit of latency.** 💡 To optimize performance, you can limit the waypoint proxy usage by using the label `istio.io/use-waypoint:` over service, or pod. For example, if you only want to enable Waypoint for a particular service, then set lbel to that service as `istio.io/use-waypoint: backend-svc-1` This way we can avoid the unnecessary pod to pod traffic routing to the waypoint proxy Now, how do we know if Waypoint Proxy is now fully aware of and ready to manage traffic for our services? Well, we can check the proxy configurations using the following `istioctl` command. It will **list the endpoints** that the Waypoint Proxy is currently tracking. ```bash $ istioctl proxy-config endpoints deployment/test-waypoint -n istio-test ENDPOINT STATUS OUTLIER CHECK CLUSTER 127.0.0.1:15000 HEALTHY OK prometheus_stats 127.0.0.1:15020 HEALTHY OK agent envoy://connect_originate/ HEALTHY OK encap envoy://connect_originate/172.31.21.17:5678 HEALTHY OK inbound-vip|80|http|backend-v1.istio-test.svc.cluster.local envoy://connect_originate/172.31.22.17:5678 HEALTHY OK inbound-vip|80|http|backend-v2.istio-test.svc.cluster.local envoy://connect_originate/172.31.36.187:5678 HEALTHY OK inbound-vip|80|http|backend-v1.istio-test.svc.cluster.local envoy://connect_originate/172.31.38.186:5678 HEALTHY OK inbound-vip|80|http|backend-v2.istio-test.svc.cluster.local envoy://connect_originate/172.31.42.98:5678 HEALTHY OK inbound-vip|80|http|backend-v1.istio-test.svc.cluster.local envoy://main_internal/ HEALTHY OK main_internal unix://./etc/istio/proxy/XDS HEALTHY OK xds-grpc unix://./var/run/secrets/workload-spiffe-uds/socket HEALTHY OK sds-grpc ``` In the above output HEALTHY status means, the Waypoint is successfully communicating with these pods. It ensures that all our backends are configured with the Waypoint proxy. Now we can **create an HTTPRoute object** for L7 routing. ****Note:** All the Gateway setup steps and the namespace enrollment using labels can be done using the following single `istioctl` command `istioctl waypoint apply -n default --enroll-namespace` However, for a production setup, this approach is not ideal. Production environments should be ****declarative** and ****versioned in Git**. That is why we chose the ****Gateway CRD based approach** with explicit configuration and custom labels, instead of relying on an imperative `istioctl` command. ### Create a Shared Service for HTTPRoute For our demo application, we deployed two deployments and two services to test weighted routing. For `HTTPRoute`, as discussed in the [GAMMA approach for east-west traffic](https://devopscube.com/gateway-api-for-service-mesh/), we need a **shared Service endpoint** that can be referenced in the `HTTPRoute` configuration. Use the following command to create the manifest for **shared Service** named `backend` . ```bash cat << EOF> shared-svc.yaml apiVersion: v1 kind: Service metadata: name: backend namespace: istio-test spec: ports: - name: http port: 80 targetPort: 80 selector: app: backend EOF ``` To apply this, use the following command. ```bash kubectl apply -f shared-svc.yaml ``` Now that we have the shared service endpoint, lets create the HTTPRoute. ### Create an HTTPRoute Using `HTTPRoute`, we will perform a **weighted canary deployment** that splits traffic in a **90/10** ratio between the demo applications we deployed. All these **HTTP-based Layer 7 configurations** will be handled by the waypoint proxy. Use the following configuration to create an `HTTPRoute` ```bash cat << EOF > istio-httproute.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: backend-route namespace: istio-test spec: parentRefs: - name: backend kind: Service group: "" namespace: istio-test rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: backend-v1 port: 80 weight: 90 - name: backend-v2 port: 80 weight: 10 EOF ``` As you can see, we have used the shared service **`backend`** as the **`parentRefs`**. To apply this, use the following command. ```bash kubectl apply -f istio-httproute.yaml ``` Verify the `HTTPRoute` using the following command. ```bash $ kubectl -n istio-test get httproutes NAME HOSTNAMES AGE backend-route 48s ``` Next we will enable access logging for **Waypoint Proxy** using the istio Telemetry CRD. It will record a detailed log entry for every single request it process. ### Enable Access Logging Using Telemetry Telemetry is one of the Istio Custom Resources that enables the logs and other observability features for all Istio-managed traffic in the proxies. Here, we are using this to generate the logs in Waypoint about the Layer 7 testing. Use the following manifest to enable access logging for `istio-test` namespace. ```bash cat << EOF > telemetry-log.yaml apiVersion: telemetry.istio.io/v1alpha1 kind: Telemetry metadata: name: enable-logs namespace: istio-test spec: accessLogging: - providers: - name: envoy EOF ``` To apply this, use the following command. ```bash kubectl apply -f telemetry-log.yaml ``` To list the Telemetry resources, use the following command. ```bash $ kubectl -n istio-test get telemetries NAME AGE enable-logs 7m1s ``` Now, we are ready for testing. ### Validate Layer 7 Traffic Through the Waypoint Proxy To generate traffic, we will use the same curl based test-client pod and send request to the shared backend service endpoint. Ideally we should see the 90/10 traffic split in the response. Execute the following command. ```bash $ kubectl run test-client -n istio-test \ --image=curlimages/curl:latest \ --restart=Never --rm -it \ -- sh -c "while true; do curl -s http://backend && sleep 2; done" hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v2 <-- 10% Canary Traffic hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v1 hello from backend v2 <-- 10% Canary Traffic hello from backend v1 ``` From the output, you can see that the traffic split is happening in **90/10 way**. It means waypoint proxy is handling the traffic. To further verify if waypoint proxy is handling this traffic, open another terminal to watch the logs. Use the following command to stream the live logs of the Waypoint proxy. ```bash $ kubectl logs -n istio-test -l gateway.networking.k8s.io/gateway-name=test-waypoint -f [2025-12-01T12:59:44Z] "GET /" 200 via_upstream src=172.31.26.126:46074 (client) dst=backend-v2.istio-test.svc.cluster.local hbone_target=172.31.23.1:5678 gateway=istio-waypoint-gateway (inbound-vip|80) [2025-12-01T12:59:46Z] "GET /" 200 via_upstream src=172.31.26.126:54482 (client) dst=backend-v1.istio-test.svc.cluster.local hbone_target=172.31.30.34:5678 gateway=istio-waypoint-gateway (inbound-vip|80) ``` The output shows that the traffic is passing through the Waypoint Proxy, where we defined the L7 policies. That’s it! We have successfully set up Istio Ambient Mode and tested its key features, covering both Layer 4 and Layer 7 traffic. Now, do not leave any resources running, as they may cost you money. If you are done with your learning and testing, lets clean up all the Istio system components from the cluster. ## Cleanup the Setup To delete Ztunnel. ```bash helm delete ztunnel -n istio-system ``` To delete Istio CNI. ```bash helm delete istio-cni -n istio-system ``` To delete the Istio daemon. ```bash helm delete istiod -n istio-system ``` To delete the Istio base. ```bash helm delete istio-base -n istio-system ``` ## Is Istio ambient mode production ready? One key question everyone has is the production readiness of ambient mode. Well, Ambient mode is officially **Generally Available (GA).** In our testing on a standard EKS cluster, we noticed that the Ztunnel resource footprint was significantly lighter than the sidecars we previously implemented. Which means, the core is **stable enough** for **single cluster** production use in many scenarios today. That said, this does not automatically mean you should move everything to production today. You should **validate limits and test workloads** carefully for your exact use case before any kind of production rollout. 💡 ****Coexistence Architecture:** You can run both sidecar and Ambient Mode in the same cluster, where some namespaces operate in Ambient Mode and others continue to use the sidecar model. Now the "million dollar question" *Is anyone actually using Ambient Mode in production today?* Well, Tetrate, an enterprise service mesh platform has made a secure, [government-ready version of Istio Ambient Mode](https://tetrate.io/press/tetrate-announces-first-to-market-fips-compliant-build-of-istio-ambient-mode-developed-in-conjunction-with-us-air-force?ref=devopscube.com), tested with the U.S. Air Force, and is now offering it to customers who need high security and compliance. Also, the Multi-cluster ambient mesh is not production ready yet. It is still in alpha. So if you are looking for multi cluster mesh, ambient mesh is not a good choice today. If you looking at adoption, the [ztunnel image](https://hub.docker.com/r/istio/ztunnel?ref=devopscube.com) in dockerhub has more than 10 million downloads. ****Note:** If you want to set up Istio in sidecar mode, please refer to our detailed blog on [installing Istio using the sidecar mode](https://devopscube.com/setup-istio-on-kubernetes/). ## Conclusion This blog covered the setup and configuration of Istio Ambient Mode. Unlike the traditional sidecar model, Ambient Mesh follows a layered approach by separating Layer 4 and Layer 7 traffic handling. One important thing to give more attention to is waypoint proxy labeling. You should design your services and namespaces in a way that only workloads that really need Layer 7 features use a waypoint proxy. For production setups that involve multiple clusters and multiple environments, it is recommended to use Helm along with a GitOps controller like [ArgoCD](https://devopscube.com/argo-cd-ultimate-guide/) or Flux to manage Istio ambient mesh components. In the upcoming blogs, we will look at how to migrate from sidecars to the ambient mesh architecture. If you face any issues during the setup, drop a comment below. We will help you. ### 28 Best Open Source & Free Monitoring Tools in 2026 URL: https://devopscube.com/best-opensource-monitoring-tools/ Last updated: 2026-01-08T14:18:27.000Z Monitoring is necessary for businesses to make sure that the required system is up and working. Monitoring various aspects of the IT infrastructure can be quite pesky and cause many difficulties if not done properly. Regardless of the company's size, one cannot ignore the need for Server, network, and infrastructure **monitoring using the best monitoring tool**. All modern cloud and on-premise infrastructure come with the best monitoring solutions. Also, when it comes to DevOps, monitoring, and [observability](https://devopscube.com/what-is-observability/) plays a key role in the team's performance. The following are the key areas when it comes to monitoring. 1. Real-time Server Monitoring 2. Network Performance Monitoring 3. [Container Monitoring](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) ([Docker](https://devopscube.com/what-is-docker/)/[Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/)/Mesos etc.) 4. Cloud Infrastructure Monitoring (Public & Private) 5. Application monitoring. 6. Cloud-native monitoring. ## What are the Best Opensource Monitoring Tools? Professional or Business-grade tech solutions are generally regarded as costly, but that’s not necessarily always the case. The following is the key list of key indicators for the best monitoring software. 1. Provide indicators on outages and service degradation 2. Detect service outages and unauthorized activities 3. Scalable 4. Able to handle and process huge amounts of monitoring data 5. Collect predefined system/application metrics in real-time 6. Able to provide long-term insights for better capacity planning. 7. Highly available 8. Support all modern cloud, [containerized applications](https://devopscube.com/docker-container-clustering-tools/), and cloud-native applications. 9. Support metric visualization tools 10. Good traceability 11. Have a good user-friendly interface. Numerous absolutely free and open-source network monitoring tools can be considered while looking for monitoring solutions. Let’s take a look at the top-rated open-source monitoring tools and see what works for you! ## Cloud Native Observability Stack A cloud-native observability stack tool provides end-to-end visibility into modern distributed systems by collecting metrics, logs, and traces. ### 1\. Prometheus [Prometheus](https://prometheus.io/?ref=devopscube.com) is an open-source cloud-native monitoring solution primarily fixated on data gathering and analysis based on time-series data. It enables users to set up monitoring capabilities by utilizing the in-built toolset. It is an ideal monitoring setup for [containerized environments like kubernetes](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/) and the best open-source server monitoring tool. It is able to assemble several metrics on servers, kubernetes, and various devices using SNMP pings and inspect network bandwidth usage from the device point of view, along with the other functions. The PromQL system analyzes data and permits the program to produce plots, tables, and other graphics on the systems it monitors. The [alert manager](https://devopscube.com/alert-manager-kubernetes-guide/) is another component of Prometheus. It handles alerting for all alerting rules configured in Prometheus. Prometheus can collect **system metrics, application metrics, and metrics from modern containerized applications**. Also, it has very good integration with tools like [Grafana for visualizing metrics](https://devopscube.com/integrate-visualize-prometheus-grafana/). Grafana is one of the best open-source monitoring dashboards. ### 2\. Thanos [Thanos](https://thanos.io/?ref=devopscube.com) is a free observability tool that works on top of Prometheus to make it highly available. Thanos offers the following, 1. Manage multiple Prometheus stacks over a single unified Thanos dashboard. 2. Thanos can help to store metrics in remote storage for long-term usage. 3. Thanos removes the duplicate metrics if it has multiple Prometheus replicas. ### 3\. OpenTelemetry [OpenTelemetry](https://opentelemetry.io/?ref=devopscube.com) is an open source tool that is a collection of APIs, SDKs, and tools. It will collect and transmit data such as logs, metrics, and traces to help you analyze your software's performance, and behavior. It is primarily used for cloud-native applications and infrastructure. ### 4\. ELK Stack [ELK Stack](https://www.elastic.co/?ref=devopscube.com) is an open source and enterprise platform for monitoring infrastructure, digital experience, application performance, AIOps, and LLM observability. Also, you will get custom dashboards, alerts, synthetic tests, service level objectives(SLOs), and an AI assistant with custom knowledge integration. ### 5\. ClickStack [ClickStack](https://clickhouse.com/use-cases/observability?ref=devopscube.com) is a high-performance open source observability stack. It is a unified platform for collecting, storing, analyzing logs, metrics, traces, session replays, and more. It is powered by ClickHouse storage, and you can do simple deployment and maintenance. ### 6\. Jaeger [Jaeger](https://www.jaegertracing.io/?ref=devopscube.com) is a free tool to trace the **requests** in microservices. This helps to track the issues with the user requests. - Track the full path of a request. - Identify the performance issues with requests. ### 7\. VictoriaMetrics [VictoriaMetrics](https://victoriametrics.com/?ref=devopscube.com) is an open-source and enterprise observability tool for efficient monitoring. This tool will provide a streamlined backend for storing, querying, and scaling metric data, which makes it best for a large-scale environment. To be honest, Victoriametrics is a great choice for DevOps and SRE teams. ## Hybrid/Infra Monitoring Hybrid and infrastructure monitoring tools will help you to track performance across on-premises, cloud, and hybrid environments from a single platform. ### 8\. Zabbix [Zabbix](https://www.zabbix.com/?ref=devopscube.com) is open-source monitoring software with an easy-to-use interface for users with a low learning curve that provides enterprise-class solutions to large organizations. It is a centralized system that stores the data in a relational DB for efficient processing. Here is what Zabbix can do. 1. Network Monitoring 2. Server Monitoring 3. Cloud Monitoring 4. Application Monitoring 5. Service Monitoring ### 9\. Checkmk [Checkmk](https://checkmk.com/?ref=devopscube.com) is an IT monitoring tool that monitors public cloud providers, your data centers, networks, containers, applications, [kubernetes](https://devopscube.com/kubernetes-deployment-tutorial/), and more. Also, it has automation features such as host discovery, a large library of plugins, and customizable dashboards. This tool will be really helpful for the ITOps and DevOps teams to monitor with peak performance. It has an open source version called **RAW** and has enterprise versions as well. ### 10\. Icinga [Icinga](https://icinga.com/?ref=devopscube.com) is an open-source network monitoring tool that calculates the availability and performance of the network. Through a web interface, your business can observe applications and hosts around your complete network infrastructure. The tool is scalable and easily configurable to function with each type of device. There exist a few Icinga modules for very specific monitoring capabilities, like monitoring for VMWare’s vSphere cloud environment and business process modeling. ### 11\. Netdata [Netdata](https://www.netdata.cloud/?ref=devopscube.com) is an open-source tool used for real-time monitoring systems, containers, and applications. This tool will help to collect, analyze, and visualize metrics such as CPU usage, memory, network traffic,processes, etc. This tool provides per-second metrics, alerting, and it is a zero-config observability setup with AI. ### 12\. Sensu [Sensu](https://sensu.io/?ref=devopscube.com) is endorsed as a full-stack monitoring tool. By means of a single platform, you can monitor services, applications, servers, and reports on business KPIs. Its monitoring does not require a separate workflow. It supports all the popular Operating Systems like Windows, [Linux](https://devopscube.com/list-linux-networking-troubleshooting-and-commands-beginners/), etc. ### 13\. OpenNMS [OpenNMS](https://www.opennms.com/?ref=devopscube.com) is a network monitoring tool that helps to monitor your network, traffic analytics, and gives an alert if any error pops up. It has features such as data collection, inventory management, scalability, event driven architecture, and more. Also, it will collect data using protocols like SNMP, NetFlow, and JMX. OpenNMS is an open source and enterprise level tool. ### 14\. Monit [Monit](https://www.mmonit.com/?ref=devopscube.com)(M/Monit) is monitoring and managing the Unix systems platform. This will do automatic maintenance and repair, and execute actions in error situations. With Monit, you can monitor files, directories, and filesystems on localhost. If you want to know more, here is an [official document](https://mmonit.com/monit/?ref=devopscube.com). ### 15\. Munin [Munin](https://munin-monitoring.org/?ref=devopscube.com) is a fully resource monitoring open source platform with easy installation. You will get real-time alerts, 500+ plugins to monitor all services, analyze resource trends, IT infrastructure, and give an alert before any performance issues occur. This tool is known for its simplicity and ease of use. Also, it will create visual graphs, which will be very useful for system administrators. ## Network Monitoring Tool Network monitoring tools help you to track device connectivity, bandwidth usage, and network performance across data centers and cloud environments. They provide you with real-time visibility into network traffic, detect failures early, and help maintain optimal uptime. ### 16\. LibreNMS [LibreNMS](https://www.librenms.org/?ref=devopscube.com) is an open-source network monitoring system that utilizes multiple network protocols to observe every device on your network. The LibreNMS API can recover, manage, and plot the data it collects and facilitates horizontal scaling to grow its monitoring abilities along with your network. The tool presents a flexible alerting system that is custom-made to communicate to you by the method that suits best your company. They offer their iOS and Android. ### 17\. Observium Community [Observium](https://www.observium.org/?ref=devopscube.com) Community is the free counterpart of Observium’s network monitoring tool. In the free version of the Observium Community, you can monitor a limitless amount of devices along with taking complete advantage of Obersvium’s network mapping attributes. The Observium network monitoring tool features the programmed discovery of connected devices. It also comes well-appointed with discovery protocols to make sure that the map of your network is the latest. In this manner, you can keep track of new devices as they connect with the network. ### 18\. Cacti [Cacti](https://www.cacti.net/?ref=devopscube.com) is an open-source network monitoring tool built on RRD Tool’s data classification and plotting system. The tool utilizes data-gathering functionality and network polling to collect information on various devices on networks of any scope. This comprises the capability to create custom scripts for data gathering along with the facility for SNMP polling. It then showcases this information in easy-to-comprehend plots which can be organized in whichever hierarchy as per your business’s convenience. ### 19\. Pandora FMS [Pandora FMS](http://pandorafms.org/?ref=devopscube.com) is an open-source monitoring tool that aids businesses to observe their whole IT substructure. It not just features network monitoring capabilities but also Unix and Windows servers and virtual interfaces. For networks, Pandora FMS comprises top-notch features like SNMP support, ICMP polling, network latency monitoring, as well as system overload. Agents can also be installed on devices to observe aspects like device temperature and overheating, as well as for logfile happenings. ### 20\. Nagios [Nagios](https://www.nagios.org/?ref=devopscube.com) is an open-source monitoring tool that has been in the market since 1999\. It provides numerous facilities like integration with third-party apps using an additional plugin. Considering the length of time that Nagios has been in the industry, there are plenty of plugins written for it. It can monitor a variety of components including Oss, applications, websites, middleware, web servers, etc. ### 21\. Riemann [Riemann](http://riemann.io/?ref=devopscube.com) is an ideal open-source monitoring tool for distributed systems. It's a low-latency even processing system capable of collecting metrics from a variety of distributed systems. It is designed to handle millions of even per second with low latency. It is an apt monitoring tool for highly distributed scalable systems. ### 22\. LogRhythm NetMon Freemium [LogRhythm NetMon Freemium](https://logrhythm.com/products/logrhythm-netmon-freemium/?ref=devopscube.com) is a free version of LogRhythm NetMon that offers similar business-grade module capturing and analysis abilities as the full version. Though there are restrictions or limits on data processing and module storage, the freemium version still permits the users to perform network risk detection and response functions built on data packet analysis. It also offers a similar network threat alerting system as the full version, letting you stay updated on your network’s performance and security. ### 23\. Famatech Advanced IP Scanner [Famatech’s Advanced IP Scanner](https://www.advanced-ip-scanner.com/?ref=devopscube.com) is free of cost network monitoring as well as a scanning tool that offers analysis on Local Area Networks and LAN devices. The advanced IP Scanner allows the scanning of devices on the network and remotely regulates the connected computers and other resources. It provides the ability to switch computers off from the tool if the device is not in use and is using resources. The tool connects with Famatech’s Radmin solution for distant IT management, so you can manage the IPs wherever you are. ### 24\. AppNeta PathTest [AppNeta PathTest](https://www.appneta.com/resources/pathtest-download.html?ref=devopscube.com) is a free network volume testing tool intended to aid businesses to comprehend the true ability of their network. PathTest seeks to advance layer three and layer four performance by exhibiting a precise depiction of your network’s maximum capabilities. It deliberately floods your network with data packets to fill the network to its full capacity. Users can set the duration of this test up to a maximum of 10 seconds and run the tests at any time. ### 25\. UptimeRobot [UptimeRobot](https://uptimerobot.com/?ref=devopscube.com) is known for its uptime monitoring service. It has features to monitor, such as website & endpoint, keyword, ping, port, [cron job](https://devopscube.com/create-kubernetes-jobs-cron-jobs/), domain, SSL, response time, multi-location, and DNS. This tool can be used by teams like DevOps, developers, marketers, support, and business owners. It has open source and enterprise versions. ## Security & Runtime Monitoring Tool Security and runtime monitoring tools will help you to detect and respond to threats across containers, Kubernetes, and cloud environments in real time. These tools will monitor system behavior, enforce policies, and protect workloads from intrusions and compliance violations. ### 26\. Falco [Falco](https://falco.org/?ref=devopscube.com) is an open-source tool. It is a cloud native security tool that will detect security threats. This will detect the suspicious behaviour, security threats, and compliance violations in real-time and alert to threats in containers, Kubernetes, and the Cloud. Falco works using a kernel module or an eBPF probe. ### 27\. Cilium [Cilium](https://cilium.io/?ref=devopscube.com) is an open-source cloud solution for networking, observability, and security tool that is powered by the kernel technology eBPF. This tool will help to show real-time service maps, flow visibility, and protocol insights. ### 28\. Calico [Calico](https://github.com/projectcalico/calico?ref=devopscube.com) is an open-source platform specifically for cloud native networking, network security, and observability. But it is primarily for containers and Kubernetes. This will provide high-performance, scalable, and secure networking for virtual machines, and containers. Also, it has [eBPF](https://devopscube.com/ebpf/) data planes. Calico will support platforms such as [Kubernetes](https://devopscube.com/kubernetes-architecture-explained/), OpenShift, [Docker](https://devopscube.com/docker-networking-tutorial-connect-containers-across-hosts-using-weave/) EE, and OpenStack. ## Conclusion Monitoring provides supervisors with a crisp view of the services, applications, and devices running on their network and the ability to track the performance of these resources. This facilitates active management rather than responding to issues as and when they happen. **Open-source monitoring tools** are utilized to monitor the status of the framework being used, so as to have warnings of defects, failures, or issues and to improve them. There are monitoring tools for servers, networks, cloud infrastructure, containers, databases, security, execution, site and web use, and applications. Sometimes, it is wise to use default monitoring systems that come with the infrastructure providers. One example is the AWS cloudwatch. However, open-source monitoring tools provide a lot of functionality to monitor your infrastructure components with a lot of customization. Opting for an appropriate open-source monitoring solution for your business is not as easy as it seems. IT professionals like Network and DevOps Engineers need to consider multiple factors while searching for an open-source monitoring solution for their enterprises, such as compatibility, facility, effortlessness, and budget. Also, if you want to look at a comprehensive list of tools that can be used in the DevOps toolchain, check out the [devops tools](https://devopscube.com/best-devops-tools/) list where I have converted 90+ best tools in different categories. As a DevOps engineer myself, I can't think of a project where we never used monitoring tools. So if you want to [become a devops engineer](https://devopscube.com/become-devops-engineer/), I would highly suggest you look at open-source monitoring tools. Also, if you’re looking for the best service discovery tools, read my reviews on the [best open-source service discovery tools](https://devopscube.com/open-source-service-discovery/). ### Become A DevOps Engineer in 2026: [A Practical Roadmap] URL: https://devopscube.com/become-devops-engineer/ Last updated: 2026-01-23T12:38:09.000Z In this detailed guide, I have shared the practical roadmap for becoming a DevOps Engineer based on my **12 years of experience** working as a DevOps Engineer in various organizations. As for the current IT market, the DevOps domain is one of the best options for IT folks' salary and career growth. One common question I get quite often is, "**How to become a DevOps engineer?**" Many people argue (including me) that **there is nothing like a "DevOps Engineer"** or a "**DevOps Team**" because it is not a thing. However, everyone in the industry has now gotten used to the term "DevOps engineer, " and as long as you understand the DevOps philosophy, these titles don't matter much. Toward the end of the article, I added the different teams a DevOps engineer can be part of. There are many misconceptions about [what DevOps really means](https://devopscube.com/what-is-devops-what-does-it-really-mean/). One such misconception is "**Automation is DevOps**." Developing skills related to [infrastructure automation](https://devopscube.com/devops-tools-for-infrastructure-automation/) is not enough to become a DevOps Engineer. Wikipedia says, DevOps (a clipped compound of development and operations) is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. From the above definition, it is clear that **DevOps is not about any tools or technologies**. It is a philosophy for making different IT teams (Developers, Platforms teams, QA, Performance, etc) work together to deliver better and fast results through continuous feedback. Here is an interesting trend graph showing DevOps popularity in the last five years. ![DevOps popularity in last five years](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-10-28.png) Click to view in HD ## Who is a DevOps Engineer? Organizations trying to **practice DevOps** require people with collaborative skills who are willing to change and adopt new technologies & methodologies. They are DevOps Engineers. From a tooling perspective, a DevOps Engineer is someone who has a good understanding of Operating systems, Networking, automation tools, CI tools, Version control systems, monitoring & observability tools, [Infrastructure as Code](https://devopscube.com/infrastructure-as-code-configuration-management/), and Programming/Scripting. I have seen teams babysitting pipeline jobs for the infra/app build and release process. In the world of DevOps Engineers, **the CI/CD pipeline designed/developed** by the team should deliver small updates or releases without much manual intervention. It happens only if there is a **cultural shift** in the way different teams work. For example, From my experience working as a DevOps Engineer, sitting with different teams and having an **open conversation on pain points** would solve many problems than plainly following a team-wise rule book. (And trust me, it is not as easy as it sounds :) Another **goal of DevOps engineers is to automate repeated tasks** and spend more time on engineering and innovation. ## DevOps Engineer Roadmap You must understand the fact that DevOps is **not specific to developers** or system engineers. It's for anyone passionate about evolving practices, and technologies and willing to work in a collaborative environment where everything is automated to make everyone's life so easy. It doesn't matter whether you are a **sysadmin, developer, tester, performance engineer, support engineer**, etc. You can be a DevOps engineer because you are already part of an IT ecosystem that is responsible for deploying and managing applications to production. This article explains how you should prepare yourself for tools and technologies to **become a DevOps engineer** who practices the DevOps philosophy. ****Note:** In this article, I have covered many verticals. A beginner can't be a master of everything. However, having a fair amount of knowledge in these areas will help you become a DevOps engineer. ### Understand DevOps Culture To become a DevOps engineer, the first and foremost thing is to understand the **DevOps culture**. It is all about different teams working together towards a common goal. In other words, **there should not be any blaming culture between different IT teams.** The following image says it all. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/devops-engineer-jpeg-1.jpg) Source: https://www.ein-bild.com/ (By Sandra Martin) For example, If you are a devops engineer, never say "It's not my job", say, "Let me see what I can do to help." How you respond has a significant impact on collaboration. (It doesn't mean you have to spoon-feed people and do others' work.) ****Note:** If you are fresh graduate, understanding cultural aspects is challenging because it comes with actual industry experience. So my advice would be to focus on core IT fundamentals (OS, Networking & Programming) and then move on to cloud & Devops tools. IT leaders and decision-makers should ensure the entire team is mentored on **DevOps cultural aspects** before getting into DevOps toolsets. It avoids lots of confusion in the teams. It usually doesn't happen in organizations, and they end up having a "**DevOps Team**" for operations, which again ends up in a siloed structure. People would stop hiding the truth and stop blaming others for project issues once they understand that an issue in project delivery has to be addressed in a collaborative manner rather than pointing fingers. For example, a [blameless postmortem](https://sre.google/sre-book/postmortem-culture/?ref=devopscube.com). Once you understand the DevOps culture, you will stop saying that "**CI/CD and infrastructure automation is DevOps."** I would suggest reading the state of the [DevOps report by puppet](https://puppet.com/resources/report/2021-state-of-devops-report/?ref=devopscube.com). A must-read devops report for engineers and leaders. #### Learning Resources 1. [DevOps Culture and Mindset](https://devopscube.com/recommends/devops-culture/) \[Coursera\] 2. [The Phoenix Project](https://devopscube.com/recommends/the-phoenix-project/) \[Recomended eBook\] ### Learn to Use AI Tools Learn to learn. In the AI first world, the goal is not to replace learning. The goal is to **learn faster and work smarter**. When I started my DevOps journey, I used to spend days learning and researching using Google and forums to learn new tools and technologies. Those days are gone now. Now, with a single prompt, you get the answers in seconds. All you have to do is, ask the right questions. Have patience to read and you will gain so much knowledge. We are in an era where there will be so many advancements in technology through AI tools. As an engineer, it is essential to use Generative AI tools like [ChatGPT](https://chat.openai.com/?ref=devopscube.com), [Google Gemini](https://gemini.google.com/?ref=devopscube.com) and [Claude](https://claude.ai/?ref=devopscube.com) to learn the core basics without spending much time. Because these tools can converse with you and give explanations in simple language. The key thing you need to master is smart prompting strategies. Here is an example of a smart prompt Dont ask, "*How to use Docker?*" instead, Ask --> "*I am new to containerization. Explain Docker concepts like I am familiar with VMs, then give me 3 hands-on exercises progressing from beginner to intermediate*" So smartly do the hard work :) ### Learn Linux We are in an era where we cannot live without Linux/Unix systems. You should get a better understanding and working knowledge of various Linux distributions highly used by organizations (RHEL, Centos, Ubuntu, CoreOS, etc.). As per [The Linux foundation case study](https://www.linuxfoundation.org/projects/case-studies/?ref=devopscube.com), 90% of the public cloud workload runs on Linux. ![Public cloud linux usage](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/linux-usage-1.png) Click to view in HD Here is another interesting study from Redhat, which shows the different Linux distros used in the public cloud. ![Linux distro use in public cloud](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/linux-vendor-allocation-min-1.png) Click to view in HD Now you have enough reasons why you should focus on Linux. When it comes to Linux, it's all terminal, GUI is less preferred in \*nix world. Get your hands dirty with the terminals of these systems. You can use a [Virtual box](https://www.virtualbox.org/?ref=devopscube.com) with Vagrant or AWS/GCP/Azure to spin up Linux servers. You can start with the following. 1. Understand the Linux booting process 2. Understand systemd 3. Learn about file permissions (`rwx`), ownership, sticky bit, setuid, setgid. 4. Understand user/group management (`/etc/passwd`, `/etc/shadow`, `id`, `groups`). 5. Learn how Linux processes work. 6. Learn about Signals (`kill`, `pkill`, `killall`, signal numbers). 7. Learn to setup HTTP proxies. 8. Learn how [SSH](https://devopscube.com/generate-ssh-key-pair/) works. 9. Learn about different file systems. 10. Learn how volumes work in Linux. 11. Learn about system logging, monitoring, and troubleshooting. 12. Learn about important protocols (SSL, TLS, TCP, UDP, FTP, SFTP, SCP, SSH) 13. Learn to manage services and try to create a service on your own (Initd, Systemd) 14. Learn to optimize Linux performance and use performance monitoring tools (`top`, `htop`, `iostat`, `vmstat`, `sar`). 15. Understand log analysis (`journalctl`, `/var/log/`, `rsyslog`). 16. Learn about cgroups & namespaces (high-level idea, especially in container-related roles). 17. Learn about basic backup & recovery strategies (`rsync`, `tar`). You can do the following tasks and try to learn the above tasks paractically. 1. Setup [Load balancers](https://devopscube.com/aws-load-balancers/) and reverse Proxy (Nginx, HA proxy, etc.). Understand each configuration and algorithm behind load balancing. 2. Setup and Database and understand its configurations and management. (Eg: [PostgreSQL Setup](https://devopscube.com/install-postgresql-on-ubuntu/)) 3. Host static/Dynamic websites on web servers and play around with different configurations. 4. Install and Configure web servers (Apache, Nginx, Tomcat, etc..) and learn how web servers work. 5. Break something and learn to troubleshoot. ****Tip:** When working on real projects, you work on Linux systems in a private network with limited access to public websites and resources. You need to have good knowledge of managing packages without internet connectivity. #### Linux Learning Resources 1. [Introduction to Linux](https://devopscube.com/recommends/linux-introdcution/) \[edX\] 2. [Learn shell scripting for DevOps](https://devopscube.com/linux-shell-scripting-for-devops/) 3. [The Complete Guide to Bash Programming](https://devopscube.com/recommends/educative-bash/) 4. [Linux Learning Paths](https://devopscube.com/recommends/linux-path/) #### Related Certifications 1. [Linux Foundation Certified System Administrator (LFCS)](https://devopscube.com/recommends/lfcs/) ### Learn How Infrastructure Components Work The basic building block of any organization is its Infrastructure. It could be on the cloud or on-premise Data Center. An overall understanding of Infrastructure components is a must for a person who wants to practice or work in a DevOps environment. For example, when you get into meetings with network/security teams, with a fair amount of infrastructure knowledge you can ask the right questions, understand what they are saying and collaborate better. There is a big difference when you say "It's not working, can you look into this" and "Hey, I have done my initial troubleshooting, and here are my findings. Can you look into this further and help us understand what's causing the issue" You should spend some time and have a basic understanding of the following. | **Networking** | **Storage** | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | | 1\. OSI Model/TCP-IP Model2\. Network Topologies3\. CIDR Notations4\. Subnetting5\. Public network6\. Private network7\. Static/Dynamic IPs8\. Firewall9\. Proxy (Forward & Reverse Proxy)10\. [NAT](https://devopscube.com/what-is-nat-how-does-nat-work/)11\. Public & Private DNS12\. VPN13\. [IPv4 & IPv6 Protocols](https://devopscube.com/ip-address-tutorial/) | 1\. SAN2\. Backups3\. NFS5\. Object storage6\. Disk IOPS/throughput/latency7\. Databases8\. Key-Value Stores | | **High Availability** | **Single Sign-On** | | 1\. Clusters2\. Fail-Over Mechanisms3\. Disaster Recovery4\. Vertical scaling5\. Horizontal scaling | 1\. Active Directory/LDAP2\. SAML3\. OAuth2 & OpenID Connect | | **Security** | **Load Balancers** | | 1\. SSL certificates2\. PKI Infrastructure3\. Zero trust security4\. Password/secret rotation5\. Security Compliance6\. Site-to-site VPN7\. Client-to-site VPN | 1\. L4 Load Balancers2\. L7 Load Balancers3\. Load balancing algorithms | There are more things, but I have **highlighted the critical components** of an IT Infrastructure that you might encounter in your day-to-day job. #### Resources For networking, you can start with the [Udacity](https://devopscube.com/udacity-review-nanodegree/) free course given below. 1. [Computer Networking Course from Udacity](https://devopscube.com/recommends/computer-networking/) \[Free\] ### Learn Cloud Computing & Virtualization Cloud computing and virtualization are the basic building blocks of today's DevOps practices. You can start learning virtualization concepts using tools like Virtualbox & Vagrant (Type 2 virtualization). It is the foundation of cloud computing. In terms of Cloud computing, you need to learn and get certified on cloud platforms. When I say "Get Certified," **please do not use the exam dumps** to pass the certification. It adds significantly less value to you. It may be useful for the organization to show the clients that they have certified cloud engineers. Most of the public cloud market share is currently owned by AWS. Here is the latest [report from Statista](https://www.statista.com/chart/18819/worldwide-market-share-of-leading-cloud-infrastructure-service-providers/?ref=devopscube.com). ![latest Public cloud market share](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-11-24.png) Click to view in HD Pick any one public cloud, preferably AWS, and learn about all its core infrastructure services. Do hands-on on all the core services and understand how it works. Watch [AWS re-invent videos](https://www.youtube.com/results?search%5Fquery=AWS+reinvent&ref=devopscube.com) and understand how other organizations are using AWS services for hosting their applications. Trust me, you will learn a lot from these videos, and no online training will provide that much information on how to run production workloads on AWS. If you are planning to get certified GCP, watch their [Google Next](https://www.youtube.com/results?search%5Fquery=google+next&ref=devopscube.com) videos. Use the certification to gauge yourself on the respective platform. #### Cloud & Virtualization Learning Resources: 1. [Virtualbox Tutorial](https://devopscube.com/virtual-box-tutorial/) 2. [Vagrant tutorial for beginners](https://devopscube.com/vagrant-tutorial-beginners/) 3. [AWS Certification Courses](https://devopscube.com/recommends/aws-courses/) 4. [Microsoft Azure - Beginner's Guide + AZ-900 preparation](https://devopscube.com/recommends/azure-certification-course/) ### Learn Infrastructure Automation We no longer create servers manually. [Infrastructure automation tools](https://devopscube.com/devops-tools-for-infrastructure-automation/) have become an essential aspect of every organization. Also, all modern infrastructure deployments follow the [immutable infrastructure](https://devopscube.com/immutable-infrastructure/) model. As per a [report from Redhat](https://www.redhat.com/en/blog/red-hat-global-customer-tech-outlook-2019-automation-cloud-security-lead-funding-priorities?ref=devopscube.com), many organizations are investing in their automation initiatives. Check out this data. ![Organization Devops Automation Budget](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/automation-statistics-min-1.png) Click to view in HD From provisioning servers to application configuration, and deployment, everything should be automated. You can learn any of the following DevOps toolsets that fit your needs. | **For Dev Environment** | **For Infrastructure Provisioning** | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | 1\. [Vagrant](https://devopscube.com/vagrant-tutorial-beginners/)2\. Docker Desktop3\. [Minikube](https://devopscube.com/kubernetes-minikube-tutorial/) (k8s)4\. Minishift (k8s)5\. Kind (k8s) | 1\. Terraform (preferable)2\. Cloudformation for AWS3\. CLIs (of respective cloud provider)4\. Pulumi | | **For Configuration Management** | **VM image/Container management** | | 1\. [Ansible](https://devopscube.com/install-configure-ansible-server-nodes/) (preferable)2\. Chef3\. Puppet4\. Saltstack | 1\. [Hashicorp Packer](https://devopscube.com/packer-tutorial-for-beginners/)2\. [Docker](https://devopscube.com/build-docker-image/) | Following are my tips on learning automation tools 1. Learn the basics from a blog, official documentation, or through a course. Whichever you feel comfortable with. 2. If you want to write an Ansible playbook for Nginx, first configure Nginx manually and see how the components and configs work. Then start writing the playbook. 3. Ensure you learn test-driven infrastructure development. There are testing tools for every automation tool. ([Ansible-test](https://www.ansible.com/blog/introduction-to-ansible-test?ref=devopscube.com), [terratest](https://terratest.gruntwork.io/?ref=devopscube.com) etc.) 4. Community modules are a great reference to learning. You can learn complex logic from community modules. 5. When using community modules, ensure you know what each block of code does. #### Resources: 1. [Udacity Cloud DevOps Engineer Nanaodegree](https://devopscube.com/recommends/udacity-cloud-devops-degree/) 2. [Learn DevOps: Infrastructure Automation With Terraform](https://devopscube.com/recommends/terraform-course/) 3. [Ansible for the Absolute Beginner - Hands-On - DevOps](https://devopscube.com/recommends/ansible-course/) ### Learn Container Orchestration and Distributed Systems **Distributed systems** are the basic building blocks for modern scalable infrastructure. You need to understand the basic concepts of distributed systems because most tools that you use for microservices are distributed in nature. For example, Kubernetes. Also, Container adoption is increasing day by day. The organization you work for might not be using containers now. However, it is best to have hands-on knowledge of container technology like Docker or podman. It will gain you some competitive edge among your peers. Once you [understand docker](https://devopscube.com/what-is-docker/), you can start learning about [container orchestration tool](https://devopscube.com/docker-container-clustering-tools/) [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). Kubernetes is the new age Linux. These platforms are best suited for microservices-based architecture. Here is an interesting Kubernetes usage trend by [Datadog](https://www.datadoghq.com/container-report/?ref=devopscube.com). ![kubernetes usage trends](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/container-report-min-1.png) Click to view in HD The following image shows the five-year increasing search trends for Kubernetes. ![kubernetes user trends](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/kubernetes-search-trends-min-1.png) Click to view in HD Also, many engineers and even fresh college graduates are showing interest in learning kubernetes. **2023 will see many engineers getting certified in kubernetes**. You can check out our [CKA](https://devopscube.com/cka-exam-study-guide/), [CKAD](https://devopscube.com/ckad-exam-study-guide/), and [CKS](https://devopscube.com/cks-exam-guide-tips/) exam guides. You can pick the [best Kubernetes certification](https://devopscube.com/best-kubernetes-certifications/) based on the domain you want to work with. [Service mesh](https://devopscube.com/istio-opensource-platform-microservices-management/) is an advanced topic in the container space. If you are a beginner to container toolsets, you can learn this after gaining a good amount of knowledge in container orchestration and microservices-based architecture. There are many service mesh tools from the CNCF foundation. You can take a look at the [best service mesh tools](https://devopscube.com/service-mesh-tools/) for microservices. #### Resources 1. [Docker for the Absolute Beginner](https://techiescamp.com/courses/learn-container-basics-docker-podman/?ref=devopscube.com) 2. [How to build a Docker image](https://devopscube.com/build-docker-image/) 3. [Podman tutorial for beginners](https://devopscube.com/podman-tutorial-beginners/) 4. [How to Learn Kubernetes](https://devopscube.com/learn-kubernetes-complete-roadmap/) \- Comprehensive Roadmap 5. [Kubernetes Tutorials For Beginners](https://devopscube.com/kubernetes-tutorials-beginners/) 6. [Best kubernetes courses](https://skillslane.com/learn-kubernetes-from-these-best-online-courses/?ref=devopscube.com) 7. [Kubernetes the Hard way](https://github.com/kelseyhightower/kubernetes-the-hard-way?ref=devopscube.com) ### Logging & Monitoring & Observability [Observability](https://devopscube.com/what-is-observability/), Logging, and monitoring are fundamental aspects of an infrastructure. All apps deployed in the infrastructure will produce logs and metrics. Logs are pushed and stored in a logging infrastructure based on architecture and design. Every company would have a logging and monitoring infrastructure. Commonly used logging stacks are **Splunk and ELK**. Also, there are a few SaaS companies like Loggly, which provide logging infrastructure. For monitoring, there are open-source tools like [Prometheus](https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/), and Nagios and enterprise tools like AppDynamics, [Datadog](https://devopscube.com/cloud-based-docker-container-monitoring/), SignalFx, etc. You can check out our blog on the best [open-source monitoring tools.](https://devopscube.com/best-opensource-monitoring-tools/) Developers, operations teams, and security teams use logging systems to monitor, troubleshoot, and audit applications and infrastructure. Also, for AIOPS, log data plays a key role. In every organization, mission-critical applications are **monitored 24/7 using monitoring dashboards**. Generally, dashboards use data from logging sources or metrics generated by the application. Also, there would be alerting systems that use the rules configured in the monitoring systems for alerting. For example, an alert could be triggered as a slack notification, Jira ticket, email alert, [ServiceNow incident](https://docs.servicenow.com/bundle/orlando-it-service-management/page/product/incident-management/concept/c%5FIncidentManagement.html?ref=devopscube.com) ticket, or xMatters phone call. Alerting workflows differ from organization to organization. As a DevOps engineer, you should be able to query logs and troubleshoot issues in non-prod and prod environments. Understanding regular expressions are very important to query logs in any logging tool. #### Resources 1. [Prometheus Architecture](https://devopscube.com/prometheus-architecture/) 2. [Regular Expressions (Regex) Tutorial](https://www.youtube.com/watch?v=sa-TUpSx1JA&ref=devopscube.com) 3. [DevOps measurement: Monitoring and observability](https://cloud.google.com/architecture/devops/devops-measurement-monitoring-and-observability?ref=devopscube.com) ### Learn Security Best Practices (DevSecOps) [DevSecOps](https://www.redhat.com/en/topics/devops/what-is-devsecops?ref=devopscube.com) is another area dealing with integrating security practices in each stage of DevOps. Wikipedia says, DevSecOps is an augmentation of DevOps to allow for security practices to be integrated into the DevOps approach. The traditional centralized security team model must adopt a federated model allowing each delivery team the ability to factor in the correct security controls into their DevOps practices. One of the discussed topics in DevSecOps is the **Shift-left security approach**. Shift Left Security is nothing but adopting security practices in the design/development stages itself. Cloud security alliance says, Security can be achieved only when it has been designed in. Applying security measures as an afterthought is a recipe for disaster. Cloud security alliance You can check out [The Six Pillars of DevSecOps](https://cloudsecurityalliance.org/artifacts/devsecops-automation/?ref=devopscube.com) by the Cloud security alliance. Here is an interesting Checkpoint[ 2020 security survey](https://pages.checkpoint.com/cyber-security-report-2020-MOVED.html?ref=devopscube.com) that shows different cyber attacks by region. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/cyberattack-regions-min-1.png) Click to view in HD In cloud environments, crypto mining is one of the common attacks. This mostly happens when the cloud access secrets are maintained poorly so that hackers get access to it. When it comes to DevOps, [secret management ](https://devopscube.com/setup-hashicorp-vault-beginners-guide/)for applications and infrastructure components should follow standard security practices. You can also read about **Zero trust security practices.** The following image shows the key DevSecOps standard practices [published by Redhat.](https://www.redhat.com/en/topics/devops/what-is-devsecops?ref=devopscube.com) ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/devsecops-standards-min-1.png) Source: Redhat.com Hashicorp Vault is a great secret management tool you can look at. There are many workflows available to manage environment secrets. The [State of API security](https://salt.security/api-security-trends??ref=devopscube.com) report by Salt Security shows that there is a 681% increase in API attacks. #### Resources: 1. [Vault Tutorial](https://devopscube.com/setup-hashicorp-vault-beginners-guide/) 2. [What is container security?](https://www.redhat.com/en/topics/security/container-security?ref=devopscube.com) 3. [Container Scanning using Trivy](https://devopscube.com/scan-docker-images-using-trivy/) 4. [Kubernetes vault setup guide](https://devopscube.com/vault-in-kubernetes/) 5. [Vault Injector tutorial](https://devopscube.com/vault-agent-injector-tutorial/) ### Learn Programming & Scripting Scripting is essential for a DevOps Engineer. Nowadays, for DevOps interviews, every decent company has a preliminary scripting/coding round. Here is a snippet from the [official google cloud blog](https://cloud.google.com/blog/topics/training-certifications/start-your-cloud-career-in-2023-steps-and-skills-training?ref=devopscube.com) which talks about skills to become a cloud engineer. Which says "**Code is non-negotiable**". ![Code is non-negotiable for devops engineers.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-2-32.png) Click to view in HD In one or another way, you will end up using programs and scripts in the CI/CD workflow. You can learn the following commonly used scripting languages. Learning programming 1. Bash/Shell 2. Python 3. Golang You can check out my following articles 1. [Shell scripting for DevOps](https://devopscube.com/linux-shell-scripting-for-devops/) 2. [Best programming languages for devops](https://devopscube.com/programming-languages-devops/) 3. [Python for DevOps](https://devopscube.com/python-for-devops/) \- where I have explained different use cases of programming & scripting in DevOps Also, to become a true devops engineer, you need to **understand the Developers' world better**. To do that, you need to know how a typical development process works. So it is essential to have a **good understanding of programming, APIs**, etc. It will help you troubleshoot and collaborate better. Also, an understanding of API is a basic prerequisite to learning Kubernetes. My suggestion is to **pick a programming language and build an application from scratch**. When I started my career, I built an entire Ruby on rails web application from scratch even though development was not my primary work. Till today it has helped me in understanding many concepts in the developer's world. Even Google Cloud guys suggest the same. ![learn to build API for DevOps ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-3-38.png) When you develop an application, you will understand the process and components involved in application development. Once you know this, you can effectively interact with developers and have meaningful conversations. Also, In today's world, **we treat everything as code**. Even though there are enough tools to automate everything, you might need custom functionality that a tool may not offer. In such cases, coding/scripting comes in handy to achieve those functionalities. For example, 1. [Jenkins pipeline as code](https://devopscube.com/jenkins-pipeline-as-code/) requires an understanding of groovy 2. Ansible custom module requires an understanding of python 3. Writing Kubernetes operator requires Golang experience. Also, if you look at [AWS CDK](https://aws.amazon.com/cdk/?ref=devopscube.com) or IaaC tool like [Pulumi](https://www.pulumi.com/?ref=devopscube.com), you can use a programming language to define the infrastructure and do test-driven infrastructure development like you develop applications. Golang is really getting popular in the DevOps domain. Lots of DevOps tooling are done using Golang nowadays. In fact, tools like Kubernetes, and terraform are written in go. JFrog surveyed Golang adoption during GopherCon, and **18% of the respondents** said they use Golang for DevOps-related work. ![Golang devOps adoption survey](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/areas-of-go-development-min-1.png) Click to view in HD I have given enough reasons on why you should learn programming as a DevOps engineer. #### Resources 1. [30+ websites to learn coding online](https://devopscube.com/top-websites-to-learn-programming-online/) 2. [Complete Python Bootcamp: Go from zero to hero in Python 3](https://devopscube.com/recommends/python-bootcamp/) 3. [Learn How To Code: Google's Go (golang)](https://devopscube.com/recommends/golang-course/) 4. [Linux Shell Scripting: A Project-Based Approach to Learning](https://devopscube.com/recommends/shell-scripting-course/) ### Learn Git, GitOps & Learn to Document It is essential to version control everything you do (except passwords and secrets :P). Git is the best version control tool. There are plenty of tutorials available on git, and it will not take much time to learn important git operations. You can start with Github or Bitbucket as your remote code repository. ****Note:** Git Branching strategy is an important aspect of any application release process. Once you understand Git, learn about GitOps. It is an **evolving technical practice** not commonly used by companies. However, it will become a mainstream practice someday. So what is this GitOps anyway? here is what [gitops.tech](https://www.gitops.tech/?ref=devopscube.com) explains GitOps GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools. You can read my simple [explanation on Gitops](https://devopslearners.com/what-is-gitops-168aac9a2ee?ref=devopscube.com). ArgoCD is the widely used GitOps tool and you can **get started with ArgoCD** to learn GitOps practically. The next important thing is to **document every important thing you do**. Every repository must have a `README` file, which should explain your code in a better way. Good documentation will help not only you but also someone who tries to use your code. #### Resources: 1. [How to Learn Git for DevOps](https://devopscube.com/git-for-devops/) 2. [Git Complete: The definitive, step-by-step guide to Git](https://devopscube.com/recommends/git-basics/) 3. [Git Basics Every Developer and Administrator Should Know](https://devopscube.com/git-basics-every-developer-and-administrator-should-know/) ### Understand End To End Application Delivery Lifecycle When it comes to the application delivery lifecycle, there are three important concepts you need to be aware of. 1. Continuous Integration 2. Continuous Delivery 3. Continuous Deployment Read this example [release process management article](https://devopscube.com/release-management-explained/) to understand how a typical application development, build, testing, deployment, approval process, and validation work. Learn to use any of the following CI/CD tools. | **CI Tools** | **CD Tools** | | -------------- | ------------ | | Jenkins | ArgoCD | | GitHub Actions | FluxCD | | Drone CI | Jenkins X | | Travis CI | GoCD | | | | Here is a good pictorial representation of the CI/CD process by bmc. ![CI/CD in devops](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/cicd-process-min-1.jpg) source: [bmc](https://www.bmc.com/blogs/continuous-delivery-continuous-deployment-continuous-integration-whats-difference/?ref=devopscube.com) Also, here is a list of topics related to the application development and release lifecycle. You can connect with people in the industry and understand how it is done in their organization. 1. Planning process. 2. Architectural approval & signoff process by Enterprise architects. 3. Enterprise Security signoff on infrastructure & application design/tools. 4. Data Compliance 5. Config /Secret management 6. QA/Performance testing & Approvals 7. Monitoring KPIs documentation & setup 8. Change management process. 9. Production release process. 10. Post-production validation activities 11. Rollbacks scenarios and strategies. ### Resources 1. [Continuous Deployment at Lyft](https://eng.lyft.com/continuous-deployment-at-lyft-9b457314771a?ref=devopscube.com) ### Learn MLOps & LLMOps AI and automation tools have significantly changed the role of a DevOps engineer, reducing the time spent on routine tasks and increasing the focus on strategic, high-value work. So what does this mean for aspiring DevOps engineers? First, DevOps is not going away. But the skills that matter are shifting. You now need to understand how AI systems are built, deployed, and operated, not just how applications are deployed. This is where MLOps and LLMOps come in. As a DevOps engineer, your value increases if you can do the following. - Able to [deploy ML models](https://devopscube.com/deploy-ml-model-kubernetes-kserve/) and LLM workloads - Manage model versions, model fine-tuning, pipelines, and rollouts - Monitor model performance, drift, and failures - Secure AI workloads and data - Scale inference systems efficiently on Kubernetes - Using AI agents with systems. This doesnt mean you have to become a data scientist or AI/ML engineers. But you **do need to understand the lifecycle of ML and LLM systems from an operations point of view**. Same like how you would learn lifecycle of applications like Java, Python etc. In short, DevOps + AI knowledge = future-proof skillset I have written a detailed guide on [Devops to MLOps](https://devopscube.com/devops-to-mlops/). Read it to understand more. ### Use Agents, MCP, and AI Tools for Productivity Andrej Karpathy, cofounder of OpenAI said the following [in x](https://x.com/karpathy/status/2004607146781278521?ref=devopscube.com). > “I’ve never felt this much behind as a programmer. > > There’s a new programmable layer of abstraction to master in addition to the usual layers involving agents, subagents, their prompts, contexts, memory, modes, permissions, tools, plugins, skills, hooks, MCP, LSP, slash commands, workflows, IDE integrations, and a need to build an all-encompassing mental model for strengths and pitfalls of fundamentally stochastic, fallible, unintelligible and changing entities suddenly intermingled with what used to be good old fashioned engineering. What this means for a DevOps engineer? Well, you need to start treating AI agent as a normal in your worlflows. For example, start using agents for the following. 1. Generate Terraform or Kubernetes YAML drafts 2. Create CI/CD pipeline templates 3. Summarize logs and error messages 4. Explain unfamiliar configs or scripts Here is where it gets interesting. You still need to review everything. Also understand why it works. Becuase you need to fix what the agent gets wrong. Next, learn to use MCP to connect agents to real DevOps data. For example, if you connect agents to Kubernetes logs and events, CI/CD pipeline outputs etc, the agents can now answer questions using your real data,. It can also help you and your team debug issues faster and suggest fixes based on current system state. Infact, many organizations have AI powered platforms that use AI agents for Observability requirements. You can get started by building the following small agent-driven workflows. 1. Agent reads a log and summarizes the issue. 2. Agent checks a failed pipeline and explains the error. 3. Agent reviews a Helm chart and flags common issues. ## DevOps vs SRE SRE is another evolving topic in the DevOps community. SRE is a set of practices and philosophies that emerged from Google. Here is what Google says about DevOps and SRE DevOps and SRE are not two competing methods for software development and operations, but rather close friends designed to break down organizational barriers to deliver better software faster. "Class SRE Implements DevOps" I recommend these official documents from Google to understand more about SRE. 1. [What is SRE?](https://landing.google.com/sre/?ref=devopscube.com) 2. [How SRE relates to DevOps](https://devopscube.com/recommends/sre-blog/) 3. [SRE vs. DevOps: competing standards or close friends?](https://cloud.google.com/blog/products/gcp/sre-vs-devops-competing-standards-or-close-friends?ref=devopscube.com) ## Different Types of "DevOps Teams" Nowadays, every organization tags people dealing with Infrastructure/CI-CD as ["DevOps Engineer."](https://devopscube.com/become-devops-engineer/) and makes them part of a "**DevOps team**." However, their duties vary depending on the teams they work for. There is a misconception about "**DevOps Engineers**" thinking they are responsible for everything. That's not true. It might work for small teams. In reality, If you are **hired as a "DevOps Engineer,"** you might fall in any one of the following teams in an organization. 1. **Central Platform Team** (**Platform engineering**): Responsible for provisioning Infrastructure on demand. This team is responsible for delivering a scalable self-service portal and services to developers and other teams. They will not take care of applications but the underlying platforms. They will make sure the **production systems are available 24x7** through continuous platform support and monitoring. Also, they will work on new tooling and automation to meet future needs. The end consumers of this team would be a development or App Ops team. So this is more of shared responsibility. 2. **DevOps Team:** Although "DevOps team" doesn't make any sense, organizations use it to tag the operations team with this name. This team normally works with developers closely and serves multiple development teams. They are responsible for end-to-end application delivery. 3. **App Ops Team:** This team is part of specific engineering teams working closely on a specific program in an organization with good knowledge of that particular domain. For example, the payments team. This team is responsible for deploying and managing payment applications. Platform management will be taken care of by the central platform team or by DevOps teams. 4. **SRE Team:** This team deals with automation, availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning. They work closely with developers to solve operational issues. This team consists of engineers working on infrastructure with a development background. 5. **Dedicated Support Team:** Support teams are meant to troubleshoot/handle production support tickets and direct the respective team's issues based on severity. This team has further L1, L2, and L3 lever classifications. For experienced candidates, It is very important that you understand the nature of day-to-day tasks before you join an organization. ## DevOps Engineer Roles & Responsibilities DevOps job seekers, it is better to understand the **devops engineer roles and responsibilities** before you join an organization. Each company has different roles and responsibilities. You can ask the following questions to get a clear picture of what you will be doing as a DevOps engineer. 1. What would be the Day to Day project activities? 2. Is there any active automation work, or is it a maintenance project? 3. What devops tools are currently used in the project? 4. Is there any new migration or development activity in the pipeline? 5. What is the future roadmap of the project? 6. How often would there be on-call support? Is there compensation for on-call support? 7. Will there be any rotational night shifts? 8. Are the work timings fixed or get changed if the project changes? 9. Is there a culture of working on weekends? 10. Ask about the team size..definitely, don’t want to get burned out! You can ask more questions that you think to align with your learning and career goals. Just because the brand name is good, it doesn’t mean you will have quality work. Overall, here is what you should know about **Devops engineers day to day work.** 1. Devops engineers don’t create pipelines and automation every day. Instead, most of the automation work is a one-time activity. 2. DevOps engineers will have to participate in on-call activities to support the project. There are exceptions in a few projects though. 3. You could be part of the platform team, application team, support team, 4. If you are part of a platform engineering team, continuous development and innovations happen as part of building platform tools. It will be a great learning experience. 5. If you are going to be part of the AppOps team, you will have to use the tools developed by platform teams, and there might be options to extend it as per the requirements. But you get to be part of daily meetings to understand what is going on in the project. 6. If you are part of the support team, you get a playbook on solving issues, but there is less chance you get to be part of design discussions. Try to avoid night shifts and rotational shifts. Health is more important than anything. ## DevOps Engineer Interviews In 10 years, I have given and conducted DevOps engineer interviews for different types of organizations. The requirements vary from organization to organization and project to project. For example, teams that are looking to expand at a slow pace search for e**ngineers with strong fundamentals**. They don't care how many tools you know; instead, they focus on core IT fundamentals during the interview. This mostly occurs in established product companies. On the other hand, there are service-based companies that hire engineers with certifications and tool knowledge based on their needs. For instance, if a company is seeking or trying to secure a DevOps project on AWS, they would look for people with AWS experience and certification. One thing I am seeing is, organizations are looking for "AI-Augmented DevOps." Meaning, they want to see if you can use **AIOps tools** to reduce "Mean Time To Recovery" (MTTR). Certifications in **MLOps** or **Generative AI for Cloud** are becoming the new standard for organizations to secure high-value service contracts. Also, most interviews will have preliminary coding or scripting rounds. Some companies might even assign you homework to design and set up infrastructure automation and components for a specific use case. When it comes to product companies, they have **doubled down on core CS fundamentals**. Because when an AI agent (like a coding assistant) suggests a networking configuration, only an engineer who understands the fundamentals can catch it fast. Also they ask "System Design for Agents." For example: *"How do you build a sandboxed environment where an AI agent can safely execute Python scripts to fix a production bug without access to our secrets?"* In short, since AI now doing all the grunt work, the knowledge expectation from DevOps engineers is more. ## DevOps Engineer FAQs Lets look at some of the frequently asked questions about DevOps. ### How to get into DevOps? There is no single roadmap for DevOps. If you are from a development, QA, Performance, or support background, you need to learn about Infrastructure automation and CI/CD. If you are a fresher, you need to concentrate on programming, OS concepts, Cloud, and Containers to get into DevOps. Most importantly, you need to pick a real-world use case and work on them before appearing for interviews. Here is an example[ list of DevOps POC tasks](https://devopscube.com/poc-learn-devops-cloud/). ### Do DevOps need coding? It depends on the project you are working on. For example, there are DevOps engineer jobs that concentrate on platform development. In that case, coding is a must. You need to know coding to develop custom requirements in infrastructure automation and CI/CD. Also, for most DevOps interviews, you need to clear a coding/scripting round. ### What exactly does a DevOps engineer do? Devops engineers' work is to collaborate with developers and cross-functional teams to make the CI/CD process easy. Most importantly, to spend more time on engineering to automate repeated tasks. Along with infrastructure automation, DevOps engineers need to look into troubleshooting and monitoring production and non-production platforms and applications. ### What skills are needed for DevOps? The common skills required for DevOps are programming, Operating System concepts, Distributed systems, Networking, Monitoring, Troubleshooting, Containers, Infrastructure automation, configuration management, Version control, and CI/CD tools like Jenkins, GitlabCI, GitHub action, etc. ### Which is the best certification for DevOps Engineer? There are many certifications for DevOps engineers. Unfortunately, there is no one right certificate for everyone; your choice depends on what technology or tool interests you. For example, if you want to be a Cloud devops engineer, cloud certifications make more sense, and if you work on containers, kubernetes certifications will help you. You can check out the [best devops certification](https://devopscube.com/devops-certifications/) guide to know more about it. ### Do AI tools replace DevOps Engineers? No. However, AI tools make it easy for DevOps engineers to learn and deliver projects fast. DevOps engineers should embrace AI tools to improve their productivity. ## Read DevOps Blogs If you want to be a **knowledgeable DevOps engineer**, read more. Read at least one DevOps tech blog related to engineering. Read topics that are not part of your day-to-day job to **broaden your thinking**. Follow all the **engineering blogs like Netflix, Twitter, Google, etc**. Learn how they are using the right toolsets, deployment strategies, and their latest open-source projects. Follow like-minded people on LinkedIn, Reddit, Medium, Quora, etc. #### Resources 1. [Best DevOps Blogs & Resources](https://devopscube.com/list-of-devops-blogs-and-resources/) 2. [How they DevOps](https://github.com/bregman-arie/howtheydevops?ref=devopscube.com) 3. [How they SRE](https://github.com/upgundecha/howtheysre?ref=devopscube.com) ## Document Your Learnings It's good to share with others your experiences and learning. You can publish tutorials, learnings, and experiences on your blog. It will help others, and it will create a personal brand for yourself. It takes less than 30 minutes to set up a WordPress blog or a Medium blog. Or you can create a GitHub repo documentation. Whenever you learn something new about DevOps, you can write about it. It will be a reference to you as well as others. You can share it on LinkedIn groups, Dzone, etc. I have built a [DevOpsLearners community](https://devopslearners.com/build-your-personal-brand-with-huge-devops-community-e9a28073125c?ref=devopscube.com) for beginners to publish their blogs on cloud/DevOps topics. ## Conclusion I have shared a detailed and practical DevOps roadmap to start your DevOps engineer journey. Ensure you have a strong understanding of the core IT fundamentals. It will make your learning process very easy. Also, the tools and processes involved in DevOps are not limited to what is mentioned in this article. However, these are commonly used open-source tools and technologies you can start with to **become a DevOps engineer**. Also, working actively on [DevOps projects](https://devopscube.com/devops-projects/) will enhance your skillsets. Even if you don't get an opportunity in your organization, you can make use of free cloud credits to do POCs in real-world scenarios. Now I’d like to hear your thoughts: What’s your key takeaway from this? Or maybe you have a question about the different verticals explained. Either way, leave a comment below right now. ### Pluralsight Review 2026: Is It Worth the Subscription? URL: https://devopscube.com/pluralsight-review/ Last updated: 2026-01-08T16:18:27.000Z In this detailed Pluralsight review, I share my real experience with their courses, labs, pricing, and features to help you decide if it is worth your money. Here is what I will cover. - Overview of the Pluralsight platform - Key features - Course quality - Hands-on labs and their effectiveness - Overall user experience By the end, you will have a clear idea of which Pluralsight subscription plan suits you best if you decide to go ahead with it. Lets get started. ## About Pluralsight Pluralsight is an online learning platform for professionals and learners who want to upskill in DevOps, Cloud, Data Science, Machine Learning, other key IT verticals, UX and Business skills. Overall the platform has over 6500+ courses. 📌 For organisations, there is a focus on tracking skill development, assigning courses, and aligning learning with business objectives Also, as per the 2025 Forrester Wave for tech skill development platforms, Pluralsight was [named as the leader.](https://www.pluralsight.com/resources/blog/news/2025-forrester-wave-leader?ref=devopscube.com) ![2025 Forrester Wave for tech skill development platforms](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-8.png) Now that you have a high-level idea of what Pluralsight is, lets look into my detailed review of Pluralsight based on my learning experience. ## What Does Pluralsight Offer? When it comes to learning tech, Pluralsight has organized its content into different categories. Cloud, Data, Generative AI, IT Operations, Security, and Software Development. This way, we can easily navigate and select topics that we need to upskill. When you login to the Pluralsight platform you get a lot of options in the dashboard. Lets look at each option to see how you can make use of it effectively. ## Course Library Pluralsight has a vast library of video courses created by experts across topics such as [coding](https://devopscube.com/top-websites-to-learn-programming-online/), [cloud computing](https://devopscube.com/best-cloud-computing-certifications/), artificial intelligence, data, and more. The following image shows how you can browse through the topics. ![the library of the pluralsight courses](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-204.png) ## Skill Assessment The next key feature is the skill assessment option which I really liked. Here is how it works. Once we learn a specific topic, we can validate our knowledge against it using **Skill IQ** and **Role IQ**. In the **Skill IQ** section, we can quickly measure how good we are in a particular technology or programming language. It is basically a quiz. ![the pluralsight skilliq to test the assessment](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-203.png) Each quiz has 20 questions and is time-based. All questions will not be at the same difficulty level. For example, the following image shows the Amazon s3 skill assessment. ![the plural sight skill iq test](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-205.png) The system also validates your knowledge based on how many questions you answered correctly and the difficulty level of those questions. For example, here is the assessment report generated after finishing the skill assessment. ![the result of the pluralsight skill iq test result](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-207.png) The best part is, at the end, it will **suggest which path** you should choose to learn and improve that topic. Now the interesting part is the **Role IQ**. It primarily validates your level of knowledge at the job level. For example, Pluralsight defines job roles like "AWS Solution Architect" or "Full-Stack Developer", each need several key skills as shown below. ![the role iq page of the pluralsight](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-208.png) If you are preparing for a particular role, you can choose that role, so you will get multiple Skill IQ quiz sections as shown below. ![the assessment test of the pluralsight role iq](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-210.png) Based on all the Skill IQ section completions, the knowledge will be validated. This basically helps you learn and prepare of the Job interviews. I really liked how it is organized and takes our learning is goal oriented approach. ## Learning Paths & Channels Pluralsight has a section for those who are facing challenges to learn about something specific but do not know where to begin. **Paths** is a section where we can **self learn about a specific topic** in a structured manner. So you can start from fundamentals and then gradually process to advanced topics. These are predefined paths that are **created by experts.** Also, we can create our own custom learning paths if required, but that is available only for team plans. I will talk about the plans a bit later. The following image shows how learning path looks like. ![selecting the path in pluralsight to lean about a particual technology](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-211.png) **Channels** are another section where we create channels to organize our learning materials, such as courses, Paths, Skill IQ, and Labs, like a playlist. With hundreds of thousands of courses, it is easy to get lost. Channels give you a learning path or playlist rather than random browsing. ![the pluralsigh channel to organize our content for the learning](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-212.png) If you are working with a team (or running a cohort), it is hard to ensure everyone is learning the same thing, in the same order. Channels solve that by letting you **share a curated set of content** and track progress. Also, for team leads/managers, it is hard to know who is actually going through the content, how far along they have learned. Here, they can use the Channel analytics feature for that visibility. 📌 ****My Verdict:** Overall it is a super useful feature for individual learns and teams. ## Pluralsight Hands-On Labs A key feature that I have used more is the "**Hands-on Labs**" section, where we can practically do everything on the browser based labs. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-17.png) Here is an example lab - "Deploy a Web Application in [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) with Terraform" ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-19.png) Once you start the lab, you will have access to the video, supportive project guide and lab credentials as shown below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-21.png) For programming labs, you get a integrated code editor and terminal like an IDE as shown below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-22.png) Another section is also available, which is "**Hands-on Playground**" where we can explore cloud services like AWS, GCP and Azure using sandbox accounts. It is more of an option to explore tools, consoles, services without messing up your local environment. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-16.png) For example, you can create a **temporary AWS account** to practice what your learn. The following image shows the AWS sandbox details you get once you create it. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-15.png) The sandbox accounts comes with certain restrictions. You cannot deploy everything in the account. 📌 ****My Verdict:** The hands on labs and sandboxes are a very helpful in the learning process. As long as you stick to the learning path, you can gain very good knowledge working on real cloud accounts. ## Certification Preparation As a [DevOps engineer](https://devopscube.com/become-devops-engineer/), I was looking more into cloud certification, especially in Azure Administrator. Pluralsight has a dedicated section for preparing for the certifications as shown below. ![the certificate section of the pluralsight to prepare for the examination](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-220.png) During preparation, we can take mock tests to build confidence for the certification examination. 📌 ****My Verdict:** Since certifications are important part of IT, it is a very useful if you are preparing for certifications. ## User Experience & Platform Features My overall user experience with Pluralsight was good because the user interface is clean and focused on learning content. All the menu tabs are arranged on the left side in decent order, which **makes it easy for me to navigate** to sections. For example, I could switch quickly from a course to check my skill level through Skill IQ or Role IQ. Each video course includes transcripts, so we can read them in a full-text format or download them as a PDF. Videos also have subtitles in different languages, which actually helps for non native English speakers as well. The learning progress will automatically be saved, so when we return, we can continue from where we left off. To make the learning more engaging, Pluralsight rewards badges and trophies for completing courses and skill assessments. When it comes to the negative, here is what I feel can be improved. 1. Some old labs are still in update phase. 2. Also courses needs update as tech is changing in a rapid pace. 3. Also, you wont find most advanced content in niche topics. 💡 If you are serious about continuous learning, start with Pluralsight’s 10 days free trial and explore the content. Within a week you will know if it fits your needs. ## Pluralsight Pricing & Plans Pluralsight categorized the plans into two: one for individuals and the other for teams. All the plans offer a **10-day free trial** so we can explore everything before the subscription starts. ### Individual Plans This one is what I chose for my learning, and is suitable for all individuals who want to upskill in tech. This is also further categorized into the following. 1. Core Tech (access to over 3,900 courses) 2. Complete (unlimited access to over 6,500 courses.) 3. AI+ (Includes Core Tech) 4. Cloud+ (A Cloud Guru Courses + Core tech) 5. Data + (1,400 data science courses + Core tech) 6. Security + (cybersecurity courses + Core tech) [Check Individual Pricing ](https://www.pluralsight.com/individuals/pricing?ref=devopscube.com) 📌 I have chosen the Complete annual plan as I want to learn a diverse set of skills. You can save ****30% if you choose annual plans**. I have purchased the plan during a sale. You can check the [Pluralsight promo code](https://devopscube.com/pluralsight-coupons-offers/) page to know about the latest discounts. ### Team and Business Plans Team plans are for the organization that provides access to its members to improve their knowledge. The pricing is based on how many users are using it, and it is mostly a yearly subscription. [Check Team & Business Pricing ](https://www.pluralsight.com/businesses/pricing?ref=devopscube.com) ## Tips to Get the Most Out of Pluralsight The following are some of the tips that I have used to learn effectively Do not start random courses. Once you pick a topic, take the assessment test. This gives an idea of your current skill level and suggests the right path to improve this. Then create a channel and add all related resources, such as topics, courses, and other materials, which makes your learning organized. Do not just watch videos; instead, use the provided lab sections and playgrounds for hands-on practice. This is very useful for real-world projects. Set daily reminders to study at a specific time, and if facing any difficulty in watching videos, slow down the video, turn on subtitles, or read the transcript. ## Pluralsight & Other Platforms I have used many platforms for my learning, such as Udemy, [KodeKloud](https://devopscube.com/kodekloud-review/), Educative, [Udacity](https://devopscube.com/udacity-review-nanodegree/), Exponent etc. Each platform has its own strengths and offers something unique that others may not. Some of my subscriptions were purchased during Black Friday deals, while a few were provided by my organization. So, I can share a comparison based on my personal learning experience across these platforms. ## Is Pluralsight better than Udemy? When it comes to Udemy, for one topic you will get many options from different authors and you a choose one based in the rating. But here you wont find duplicated content. It is more of curated paths, labs, and focused tech catalog learning rather than a course marketplace setup. Also, With Udemy you buy a course and you keep it for life (as long as Udemy platform exists). Pluralsight you will have to renew the subscription. Overall, if your aim is to keep your self updated in tech, Pluralsights structured path is a great option. If you want only a specific topic, Udemy is a good option in terms of cost. ## Pluralsight Vs Educative.io I also use an educative account provided by my organization. The main difference between Pluralsight and Educative.io is that educative has only text content. Although [educative.io](https://devopscube.com/recommends/educativeio/) offers courses on all IT verticals, if you are someone who likes to learn from video courses, Pluralsight is the best option. If you are someone who likes to read and try out examples on a browser-based terminal, educative is for you. You can read our detailed [educative.io review](https://devopscube.com/educative-io-review/) to know more. ## Conclusion From what I learned, using different learning platforms is that as long as you are dedicated, you can get the most out of the platform. Pluralsight is no different in that case. It has everything for your learning. As long as you use it wisely, you can upskill. Also, as happens with every platform, sometimes you won’t find in-depth content for advanced learning. In my case, I use books or text-based courses for such cases. For example, I use[ O’Reilly](https://devopscube.com/oreilly-promo-code/) to dig deep into advanced concepts for Kubernetes and Educative for system design topics. Hope this Pluralsight review help you understand about what the platform offers and help you make an informed decision. If you have any doubts, do let me know in the comments. As I am actively using the platform, I can help you out with the queries. ### Best Udacity Free Courses (2026 List) URL: https://devopscube.com/udacity-free-courses/ Last updated: 2026-01-05T06:28:47.000Z In this blog, we will look at the list of Udacity free courses that you can use to upskill yourself in different technologies. We have organized the free courses into different categories so that it will be easy for you to choose a course. Also, from each category we have highlighted the best course to start with We have also added the relevant nano degree program offered by Udacity in each category. If you want to know about Udacity Nanodegree programs, check out our detailed [Udacity review.](https://devopscube.com/udacity-review-nanodegree/) Now let's get started with the free courses list offered by Udacity. ## Udacity Free DevOps Courses [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) is one of the sought-after skills in the IT industry. You can make use of the following free DevOps Courses to upskill yourself to become a DevOps Engineer. Our #1 pick from the list is **Scalable Microservices with Kubernetes Course.** | No | Course | Course Details | | -- | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Continuous Integration and Deployment](https://www.udacity.com/course/continuous-integration-and-deployment--ud1030?ref=devopscube.com) | \- Learn how to automate and improve mobile development process.\- Learn to simplify the steps necessary to deliver tests and production versions. | | 2 | [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615?ref=devopscube.com) | Learn Microservices, Docker, Kubernetes, and Deploying Microservices. | | 3 | [Server-Side Swift](https://www.udacity.com/course/server-side-swift--ud1031?ref=devopscube.com) | Learn how to utilize Swift as a server-side language for building end-to-end applications. | | 4 | [Data Wrangling with MongoDB](https://www.udacity.com/course/data-wrangling-with-mongodb--ud032?ref=devopscube.com) | Learn Gathering data, cleaning data, data wrangling, and MongoDB. | | 5 | [Computer Networking](https://www.udacity.com/course/computer-networking--ud436?ref=devopscube.com) | \- Software-defined networking, data center networking, content distribution.\- Learn congestion control, traffic shaping. | | 6 | [Database Systems Concepts & Design](https://www.udacity.com/course/database-systems-concepts-design--ud150?ref=devopscube.com) | \- Learn database management system.\- Relational algebra, Sequential query language.\- Learn Data indexing, SQL injection. | | 7 | [Intro to Relational Databases](https://www.udacity.com/course/intro-to-relational-databases--ud197?ref=devopscube.com) | \- Learn relational databases, SQL, Python API, Python DB-API.\- Select and insert statements. | ## Udacity Free Cloud Computing Courses In the Cloud computing category, our #1 pick is the **Cloud Native Fundamentals course.** | No | Course | Course Details | | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Operationalizing Cloud Security with Deepfence ThreatMapper](https://www.udacity.com/course/operationalizing-cloud-security-with-deepfence-threatmapper--cd12926?ref=devopscube.com) | Learn cloud security, Threat mapping and Operationalization | | 2 | [Oracle Autonomous Database Administration](https://www.udacity.com/course/oracle-autonomous-database-administration--cd12502?ref=devopscube.com) | – Learn the technical architecture of Oracle Autonomous Database– Manage, maintain, and monitor an autonomous database– Learn to use Autonomous JSON, Oracle Text, Spatial, and Graph.– Identify migration options and considerations | | 3 | [Scalable Microservices with Kubernetes](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615?ref=devopscube.com) | \- Learn how modern, always-on applications use the microservices design pattern\- Learn to build the containers with Docker\- The infrastructure to support an application at scale is as important as the application itself | | 4 | [Innovating with Google Cloud Artificial Intelligence](https://www.udacity.com/course/innovating-with-google-cloud-artificial-intelligence--cd13562?ref=devopscube.com) | \- Learn AI and ML fundamentals\- Learn Google Cloud's AI and ML solutions | | 5 | [Exploring Data Transformation with Google Cloud](https://www.udacity.com/course/exploring-data-transformation-with-google-cloud--cd13561?ref=devopscube.com) | \- Learn the value of data\- Learn Google Cloud Data Management Solutions\- Learn to make the data useful and accessible | | 6 | [Digital Transformation with Google Cloud](https://www.udacity.com/course/digital-transformation-with-google-cloud--cd13595?ref=devopscube.com) | This course provides an overview of the types of opportunities and challenges that companies often encounter in their digital transformation journey. | | 7 | [Trust and Security with Google Cloud](https://www.udacity.com/course/trust-and-security-with-google-cloud--cd13564?ref=devopscube.com) | \- Trust and Security in the Cloud\- Google's Trusted Infrastructure\- Google Cloud's Trust Principles and Compliance | | 8 | [Modernize Infrastructure and Applications with Google Cloud](https://www.udacity.com/course/modernize-infrastructure-and-applications-with-google-cloud--cd13563?ref=devopscube.com) | \- Learn the modernizing Infrastructure in the Cloud\- Learn modernizing Applications in the Cloud | | 9 | [Scaling with Google Cloud Operations](https://www.udacity.com/course/scaling-with-google-cloud-operations--cd13565?ref=devopscube.com) | \- Learn financial governance and managing Cloud costs\- Learn operational excellence and reliability at scale\- Learn sustainability with Google Cloud | | 10 | [Operationalizing Cloud Security with Deepfence ThreatMapper](https://www.udacity.com/course/operationalizing-cloud-security-with-deepfence-threatmapper--cd12926?ref=devopscube.com) | \- Learn operationalizing enterprise-grade cloud security programs with Deepfence Threatmapper (Kubernetes Security). | | 11 | [Cloud Native Foundations Course](https://www.udacity.com/course/cloud-native-fundamentals--ud064?ref=devopscube.com) | \- Learn cloud native fundamentals program\- Learn architecture consideration for cloud native applications\- Learn container orchestration with Kubernetes\- Learn open source PaaS\- Learn CI/CD with cloud native tooling | ## Udacity Free Programming Courses When it comes to programming, Udacity is one of the best [websites to learn coding](https://devopscube.com/top-websites-to-learn-programming-online/). Under the programming category, our #1 pick is **Introduction to Python Programming.** | No | Course | Course Details | | -- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Object Oriented Programming in Java](https://www.udacity.com/course/object-oriented-programming-in-java--ud283?ref=devopscube.com) | \- Learn Java programming concepts\- Learn to apply foundational Java concepts\- Create your own game in Java | | 2 | [Introduction to Python Programming](https://www.udacity.com/course/introduction-to-python--ud1110?ref=devopscube.com) | Learn to solve practical problems with Python. | | 3 | [Java Programming Basics](https://www.udacity.com/course/java-programming-basics--ud282?ref=devopscube.com) | \- Learn to write Java syntax and create variables\- Learn Methods, Functions, and Conditional Statements\- Learn to Create Loops\- Learn IntelliJ and Debugging | | 4 | [Intro to JavaScript](https://www.udacity.com/course/intro-to-javascript--ud803?ref=devopscube.com) | Learn the fundamentals of JavaScript, the most popular programming language in web development. | | 5 | [Intro to HTML and CSS](https://www.udacity.com/course/intro-to-html-and-css--ud001?ref=devopscube.com) | Build styled, well-structured websites. | | 6 | [C++ For Programmers](https://www.udacity.com/course/c-for-programmers--ud210?ref=devopscube.com) | \- Learn pointer & arrays, control flow, object-oriented programming\- C++ templates and C++ standard library | | 7 | [Developing Android Apps with Kotlin](https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012?ref=devopscube.com) | \- Learn the basic Android components like displaying texts and images\- Learn UI layout design\- Learn to do app navigation\- Understanding the concept of Lifecycles for both activities and fragments\- App Architecture (UI Layer)\- App Architecture (Persistence) and much more | | 8 | [UX Design for Mobile Developers](https://www.udacity.com/course/ux-design-for-mobile-developers--ud849?ref=devopscube.com) | This is a design course made for developers. You'll learn UX design skills which will help you make 5-star mobile apps that your users will love. | | 9 | [Design of Computer Programs](https://www.udacity.com/course/design-of-computer-programs--cs212?ref=devopscube.com) | Learn how to model problems, and how to optimize performance by using some of the advanced features of Python. | ## Udacity Free Artificial Intelligence Courses Under the AI course category, our #1 pick is **AWS Machine Learning** **Foundations Course**. | No | Course | Course Details | | -- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Intro to Artificial Intelligence](https://www.udacity.com/course/intro-to-artificial-intelligence--cs271?ref=devopscube.com) | \- Learn Artificial Intelligence, Machine Learning, and probability\- Learn logic & planning, and Markov models | | 2 | [AI Fundamentals](https://www.udacity.com/course/ai-fundamentals--ud099?ref=devopscube.com) | \- Learn machine learning, Azure, and Model training\- Supervised & unsupervised learning and responsible AI | | 3 | [Introduction to Generative AI with Google Cloud](https://www.udacity.com/course/introduction-generative-ai-google-cloud--cd12957?ref=devopscube.com) | Learn Generative AI, machine learning, and Google generative AI development tools | | 4 | [AWS Machine Learning Foundations Course](https://www.udacity.com/course/aws-machine-learning-foundations--ud065?ref=devopscube.com) | \- Learn Artificial Intelligence, Machine Learning, and probability\- Learn logic & planning and Markov models | | 5 | [Introduction to Machine Learning using Microsoft Azure](https://www.udacity.com/course/introduction-to-machine-learning-using-microsoft-azure--ud00333?ref=devopscube.com) | \- Learn computer vision, reinforcement learning, Generative AI\- Machine learning and object-oriented programming | | 6 | [Intro to TensorFlow for Deep Learning](https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187?ref=devopscube.com) | \- Learn deep learning with TensorFlow and the Keras API | | 7 | [Intro to Machine Learning](https://www.udacity.com/course/intro-to-machine-learning--ud120?ref=devopscube.com) | \- Learn machine learning, Azure, and Model training\- Supervised & unsupervised learning and responsible AI | | 8 | [Machine Learning: Unsupervised Learning](https://www.udacity.com/course/machine-learning-unsupervised-learning--ud741?ref=devopscube.com) | \- Learn randomized optimization, clustering, feature selection, feature transformation, info theory, and final project for Udacity students and much more | | 9 | [Introduction to Responsible AI with Google Cloud](https://www.udacity.com/course/introduction-to-responsible-ai-with-google-cloud--cd13067?ref=devopscube.com) | \- Learn what responsible AI is, why it's important, and how Google implements responsible AI in its products\- It also introduces Google's 7 AI principles | | 10 | [Core ML: Machine Learning for iOS](https://www.udacity.com/course/core-ml--ud1038?ref=devopscube.com) | \- Learn using core ML\- Learn a customer core ML model\- Learn core ML extras and more | | 11 | [Secure and Private AI](https://www.udacity.com/course/secure-and-private-ai--ud185?ref=devopscube.com) | \- Learn three cutting-edge technologies for privacy-preserving AI: Federated Learning, Differential Privacy, and Encrypted Computation | | 12 | [Core ML: Machine Learning for iOS](https://www.udacity.com/course/core-ml--ud1038?ref=devopscube.com) | \- Using Core ML\- A Custom Core ML Model\- Core ML Extras | | 13 | [Secure and Private AI](https://www.udacity.com/course/secure-and-private-ai--ud185?ref=devopscube.com) | \- Learn three cutting-edge technologies for privacy-preserving AI: Federated Learning, Differential Privacy, and Encrypted Computation | ## Udacity Free Cyber Security Courses Under Cyber Security, our #1 pick is Network Security Course. | No | Course | Course Details | | -- | -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Applied Cryptography](https://www.udacity.com/course/applied-cryptography--cs387?ref=devopscube.com) | Cryptography is present in everyday life, from paying with a credit card to using the telephone. Learn all about making and breaking puzzles in computing. | | 2 | [Cyber-Physical Systems Design & Analysis](https://www.udacity.com/course/cyber-physical-systems-design-analysis--ud9876?ref=devopscube.com) | \- Cyber-physical systems\- Design middle-level decisions\- Low-level human CPS interaction\- Hardware software CoDesign\- Systems Engineering: General Approach\- Much more | ## Udacity Free Data Science Courses Under the data science category, our #1 pick is Intro to Data Analysis. | No | Course | Course Details | | -- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Spark](https://www.udacity.com/course/learn-spark-at-udacity--ud2002?ref=devopscube.com) | \- Learn database management systems, relational algebra | | 2 | [SQL for Data Analysis](https://www.udacity.com/course/sql-for-data-analysis--ud198?ref=devopscube.com) | Learn SQL basics, SQL joins, data cleaning, Aggregation | | 3 | [Intro to Data Analysis](https://www.udacity.com/course/intro-to-data-analysis--ud170?ref=devopscube.com) | Learn data analysis, Python, Numpy, pandas | | 4 | [Database Systems Concepts & Design](https://www.udacity.com/course/database-systems-concepts-design--ud150?ref=devopscube.com) | \- Learn database management systems, relational algebra, sequential query language\- Learn data indexing and SQL injection | | 5 | [Intro to Inferential Statistics](https://www.udacity.com/course/intro-to-inferential-statistics--ud201?ref=devopscube.com) | Learn data analysis, data visualization, and regression | | 6 | [Data Analysis and Visualization](https://www.udacity.com/course/data-analysis-and-visualization--ud404?ref=devopscube.com) | Learn data analysis, data visualization and regression | | 7 | [Intro to Statistics](https://www.udacity.com/course/intro-to-statistics--st101?ref=devopscube.com) | Learn to analyze, visualize, and interpret data! Thought-provoking examples and chances to combine statistics and programming will keep you engaged and challenged. | | 8 | [Creating an Analytical Dataset](https://www.udacity.com/course/creating-an-analytical-dataset--ud977?ref=devopscube.com) | \- Learn how to prepare data to ensure the efficacy of your analysis while improving fluency in Alteryx. | | 9 | [Data Analysis with R](https://www.udacity.com/course/data-analysis-with-r--ud651?ref=devopscube.com) | \- Learn how to investigate and summarize data sets using R and eventually create your own analysis. | ## Udacity Free Career Courses Under the Career category, our #1 pick is Data Science Interview Prep. | No | Course | Course Details | | -- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Data Science Interview Prep](https://www.udacity.com/course/data-science-interview-prep--ud944?ref=devopscube.com) | \- Interview practice, common data questions, data structures, career advancement | | 2 | [Android Interview Prep](https://www.udacity.com/course/android-interview-prep--ud241?ref=devopscube.com) | \- Interview practice, common android questions, whiteboarding | | 3 | [Machine Learning Interview Preparation](https://www.udacity.com/course/machine-learning-interview-prep--ud1001?ref=devopscube.com) | \- Interview practice, machine learning, career advancement | | 4 | [Front-End Interview Prep](https://www.udacity.com/course/front-end-interview-prep--ud250?ref=devopscube.com) | \- Interview questions, common FE questions, whiteboarding, career advancement | | 5 | [Full-Stack Interview Prep](https://www.udacity.com/course/full-stack-interview-prep--ud252?ref=devopscube.com) | \- Interview practice, common FS questions, whiteboarding, career advancement | | 6 | [Data Structures & Algorithms in Swift](https://www.udacity.com/course/data-structures-and-algorithms-in-swift--ud1011?ref=devopscube.com) | \- Interview practice, Swift, data structures, career advancement | | 7 | [VR Interview Preparation](https://www.udacity.com/course/vr-interview-prep--ud251?ref=devopscube.com) | Learn the realm of VR job interviews. Engage with real-world VR tasks and step into your next VR role with expertise and vision. | | 8 | [iOS Interview Preparation](https://www.udacity.com/course/ios-interview-prep--ud240?ref=devopscube.com) | Learn hands-on challenges, navigate key scenarios, and articulate your app design philosophy with clarity. Ace your iOS interviews with prowess and precision. | ## Udacity Free Generative AI Course | No | Course | Course Details | | -- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 1 | [Generative AI Fundamentals with Google Cloud](https://www.udacity.com/course/generative-ai-fundamentals-for-google-cloud--cd13291?ref=devopscube.com) | \- Introduction to Generative AI\- Introduction to Large Language Models\- Introduction to Responsible AI\- Generative AI Fundamentals Quiz | | 2 | [Introduction to Generative AI with Google Cloud](https://www.udacity.com/course/introduction-generative-ai-google-cloud--cd12957?ref=devopscube.com) | \- Generative AI Fluency | | 3 | [AWS Machine Learning Foundations](https://www.udacity.com/course/aws-machine-learning-foundations--ud065?ref=devopscube.com) | \- Learn AI fluency, Reinforcement learning applications, Model training, Deep autoregressive networks, AWS Deeplens, Value-based reinforcement learning, Model-based reinforcement learning, Generative adversarial networks, AWS Deepracer, Policy-based reinforcement learning, Model performance metrics, Computer vision fluency, AWS Deepcomposer | | 4 | [Introduction to Large Language Models with Google Cloud](https://www.udacity.com/course/introduction-large-language-models-google-cloud--cd12959?ref=devopscube.com) | \- Learn Large Language Models | | 5 | [Duet AI in Gmail](https://www.udacity.com/course/duet-AI-in-gmail--cd13518?ref=devopscube.com) | \- Learn key features of Duet AI\- Learn how they can be used to improve productivity and efficiency in Gmail. | | 6 | [Duet AI in Google Sheets](https://www.udacity.com/course/duet-AI-in-google-sheets--cd13542?ref=devopscube.com) | \- Learn key features of Duet AI\- How they can be used to improve productivity and efficiency in Google Sheets. | | 7 | [Introduction to Duet AI in Google Workspace](https://www.udacity.com/course/introduction-to-duet-AI-in-google-workspace--cd13517?ref=devopscube.com) | \- Learn key features of Duet AI\- Learn how they can be used to improve productivity and efficiency in Google Workspace. | | 8 | [Duet AI in Google Meet](https://www.udacity.com/course/duet-AI-in-google-meet--cd13540?ref=devopscube.com) | \- Learn Duet AI features in Google Meet\- Learn to use Duet AI to generate background images\- Learn to improve your video quality, and translate captions. | | 9 | [Introduction to Image Generation with Google Cloud](https://www.udacity.com/course/introduction-image-generation-google-cloud--cd12982?ref=devopscube.com) | \- Learn Diffusion Models, and Image generation | | 10 | [Zero-Shot and Few-Shot Learning](https://www.udacity.com/course/zero-shot-and-few-shot-learnings--cd12893?ref=devopscube.com) | \- Learn In-context learning\- Learn Prompt Engineering | | 11 | [Gemini API by Google](https://www.udacity.com/course/gemini-API-by-google--cd13416?ref=devopscube.com) | \- Introduction to LLMs and Gemini\- Introduction to prompting in Google AI Studio\- Learn to develop with the Gemini API\- Learn Advanced applications | | 12 | [Transformer Models and BERT Model with Google Cloud](https://www.udacity.com/course/transformer-models-bert-model-google-cloud--cd12969?ref=devopscube.com) | \- Learn Transformer Neural Networks\- Learn NLP Transformers\- Learn BERT | | 13 | [Attention Mechanism with Google Cloud](https://www.udacity.com/course/attention-mechanism-google-cloud--cd12963?ref=devopscube.com) | \- Learn attention mechanism, a powerful technique that allows neural networks to focus on specific parts of an input sequence. | | 14 | [Introduction to Azure OpenAI Service, AI Models, and Capabilities](https://www.udacity.com/course/intro-to-azure-openAI-service-ai-models-and-capabilities--cd14249?ref=devopscube.com) | \- Learn the Azure OpenAI Service, including setup, model selection, prompt engineering, code and image generation, and responsible AI practices to build secure, effective AI applications on Azure. | | 15 | [Encoder-Decoder Architecture with Google Cloud](https://www.udacity.com/course/encoder-decoder-architecture-google-cloud--cd12988?ref=devopscube.com) | \- Learn a synopsis of the encoder-decoder architecture | ## Conclusion Udacity-free courses are a great way to start your career in IT or upskill yourself in different technologies. The good thing is, even though it's free, you get the equivalent value you get in paid courses. Have patience and go through the courses. With disciplined learning, passion, and curiosity you can master any technology in IT. ### Udacity Agentic AI Nanodegree Review 2026 URL: https://devopscube.com/udacity-agentic-ai-nanodegree-review/ Last updated: 2026-01-05T06:29:32.000Z In this review, I will share my experience with learning Udacity Agentic AI Nanodegree courses. [**Udacity**](https://devopscube.com/udacity-review-nanodegree/) has long been known for its career-focused nanodegree programs, and the [**Agentic AI Nanodegree**](https://www.udacity.com/enrollment/nd900?ref=devopscube.com) is one of its latest and most exciting offerings. The program explores how to design, build, and scale AI agents in a structured, hands-on way. With AI agents increasingly shaping industries from customer support and research automation to business analytics, understanding how to build and deploy them has become an important skill. That is why I choose this [course](https://devopscube.com/udacity-free-courses/) to learn how to build AI Agents that can help me learn and automate tasks. Also help me connect different tools in meaningful ways. ## **Quick Summary** Here is the quick summary of the course. - **Difficulty Level:** Intermediate - **Duration:** 2–3 months - **Learning Style:** Video lessons, coding labs, projects, and mentor support - **Focus:** Raw coding + fundamentals of agentic design - **Projects:** Real-world applications Let’s dive deeper into my review of the nanodegree program. ## **Course Overview** This program is divided into 4 courses, each having its own concepts, coding exercises, and hands-on projects. Rather than just teaching frameworks, the program highlights raw coding and conceptual understanding, giving you the ability to build agents from scratch. Let's go through each course one by one. ### Course 1: Prompting for Effective Reasoning and Planning. This course is all about mastering the art of prompting. You will learn how to guide an AI system step-by-step with advanced prompting strategies like **Chain-of-Thought (CoT)** and **ReAct**, plus how to refine prompts through feedback loops. **Project -** "Trip Planner" is about applying prompting techniques effectively. ### Course 2: Agentic Workflows This course will introduce **workflow patterns** such as prompt chaining, routing, parallelization, and orchestrator patterns through hands-on coding. You will also learn the difference between simple automation (fixed scripts) and agentic workflows (flexible, adaptive systems). **Project:** "Project Management Agent*"* is about implementing workflows with external APIs. ### Course 3: Building Agents Building Agents course is where you will learn to get practical in building AI Agents. It starts with how agents can **connect to external tools** like databases, custom functional tools, and APIs. It also covers concepts like managing state vs memory and constructing **Agentic RAG** systems that retrieve documents, reason, and iterate to improve answers. By the end of this lesson, I felt like I had moved from experimenting to actually building AI agents that can think and act. **Project:** "AI Research Agent for Video Games" is about building an agentic RAG system connected to APIs (my personal favorite). ### Course 4: Multi-Agent Systems Multi-Agent Systems course is all about how to design **collaborative AI systems** using orchestration, state management, and RAG workflows. The Lessons use comparison, diagrams, and [coding](https://devopscube.com/top-websites-to-learn-programming-online/) exercises to simplify these complex topics. **Project:** "Beaver’s Choice Paper Company Sales Team*"* is about orchestrating multi-agent collaboration. ## **Hands-On Projects** Each course ends with a coding project and quizzes, making the program highly practical and feel resume-ready. My favorite project was the *"*AI Research Agent for video game*"* where I built an autonomous agent capable of gathering and reasoning over unstructured data to assist game developers. It felt like I could showcase this project in an interview or even deploy it in a real-world use. Another project that stood out was "AI-powered Agentic Workflow for Project Management". In this assignment, you will build different agent types and use them to orchestrate a multi-step workflow for managing a technical project. This project is a turning point to see how these agents could coordinate tasks, track progress, and make decisions autonomously. Both projects demonstrated the practical power of AI agents and felt highly rewarding and career-relevant. ## **My** Udacity Agentic AI Nanodegree Review When I first enrolled in the program, I felt a mix of excitement and uncertainty about the course and its structure. While I already had some knowledge of AI concepts, the idea of building an agentic system from scratch felt intimidating. But as I started the lessons I realized that the course was more structured in a way I was learning the right concepts before moving forward. The teaching style is a **combination of short video lectures with hands-on coding labs and quick quizzes** that help us learn each concept. The pace felt manageable, though some coding sections require careful attention. The challenging part of this program is writing everything from scratch instead of using tools like LangChain, CrewAI, or the [OpenAI](https://devopscube.com/setup-azure-openai/) SDK. It was tough at first, but later I realized that it was the best way to truly understand how agents think and act. By the end of this course, I had learn workflow patterns, RAG pipelines, API integrations, and prompt optimization. Also understood how AI agents work, which helped me to start applying these skills to real-world projects. ## **Difficulty Level & Time Commitment** Beginners with no Python experience may find it difficult, but for those comfortable with coding, the program is more comfortable and understandable. This course is for intermediate-level users. For me, it took around **2 months** to complete the program at a steady pace. ## **Who Should Take This Course?** This course is ideal for: - **Students** who already know Python and want to break into AI agent development. - **Working professionals** looking to apply agentic AI in real-world use cases. - **AI enthusiasts** who want to level up from prompting to building scalable systems. Notsuitable for total beginners, since there is no [Python](https://devopscube.com/python-for-devops/) basics preparation included. ## **Support, Pricing & Value** You get access to project reviews, Q&A, and mentor support. While the support is reliable, the community aspect is weaker as there is no active Slack or Discord, but Udacity's forums are available for peer interaction. On pricing, Udacity is on the **costlier side**, with monthly subscriptions costing a few hundred dollars. But, compared to alternatives like Coursera, edX, or DeepLearning.AI, Udacity feels more project-drivenand better suited for building a portfolio. If you value structured projects and portfolio-ready outcomes, it is worth the investment. ## **Certification & Career Impact** Yes, you will receive a **Udacity Nanodegree certificate** upon completing the program. While it is not as widely recognized as a university credential, Udacity has a solid reputation in the tech industry. The real value lies in the skills you gain, being able to architect, code, and deploy AI agents. These are directly applicable to AI engineering, data science, or product development roles. ## **FAQs** ### 1\. What is Udacity Agentic AI Nanodegree? Udacity Agentic AI Nanodegree is an AI career-focused program that teaches you how to design, code, and deploy AI agents through hands-on projects from scratch. ### 2\. How long does it take to complete? You can complete it in about 2–3 months if you study around 10–15 hours per week. ### 3\. Do you need Python experience? Yes, this course needs Python experience. If you don't know Python, then this course will be difficult. ### 4\. Is it worth the cost? Yes, it is definitely worth the cost. But if you prefer learning in less cost and community like support(e.g., slack) then it is better prefer other platforms. ## **Conclusion** The **Udacity Agentic AI Nanodegree** is a solid investment for intermediate learners who already know Python. It balances theory with practical projects, teaching you not just how to code but how to build AI systems that think, plan, and collaborate. The lack of strong community support and higher price point may be drawbacks, but the hands-on, portfolio-ready projects make it worth considering if you are serious about agentic AI. Personally, I have gained confidence in building agents and now feel ready to apply these skills in real-world problems. If you are serious about building agentic AI, this nanodegree is worth your attention. If you are going to enroll in this program, use [Udacity coupons](https://devopscube.com/udacity-coupon-code/) to get upto 50% off. ⚠️ I have also completed the Udacity Generative AI Nanodegree program. If you are planning to enroll in it, then here is my [full review](https://devopscube.com/udacitys-generative-ai-nanodegree-review/) of the course to help you make the right decision. ### Udacity Review: Are Nanodegree Programs Worth in 2026? URL: https://devopscube.com/udacity-review-nanodegree/ Last updated: 2026-01-08T16:20:27.000Z In this **detailed Udacity review**, I have covered all the Udacity features pros, and cons based on my experience with the Udacity Nanodegree program and courses. [Udacity](https://www.udacity.com/?ref=devopscube.com) is a MOOC platform primarily focused on technologies like Data Engineering, Data Science, [Cloud Computing](https://devopscube.com/best-cloud-computing-certifications/), Machine Learning, Cyber Security, Programming/Development, Product Management, etc. Let's get into a detailed review of Udacity. ## Udacity Nanodegree Pricing So how much does Udacity cost? To start with, there are more than **200 Free courses** on Udacity. If you want to go for structured curriculum-based learning, you need to **choose a paid plan offered** by Udacity. Udacity subscription plans start at **$249/mo**nth. However, with the annual subscription, you can get a 20% discount. There are two payment options for Udacity. Udacity offers individual and Business plans. ### Individual Plans Stars with $249/month or $990 for an 4-month subscription. With the Individual plan, you get the following. 1. Unlimited access to the learning catalog. 2. Always-on learning assistant 3. Personalized project reviews 4. Program certificates 5. Learner Community If you are looking for Nanodegree program, the average time to complete a Nanodegree program is 4 months. ### Personalized Discount Also, you can **save up to 60%** on Udacity plans using a personalized discount program. Also, check out the latest [Udacity coupons](https://devopscube.com/udacity-coupon-code/) to get the latest promo codes. [Get 75% SPECIAL Discount](https://devopscube.com/recommends/udacity-promo/) ****Note**: For a limited time you can get a up to 45% discount using coupon ****BOOST45** If you decide on multiple Nanodegree programs, it is better to pay for the annual plan and you can **save an extra 20%** on the subscription. If you don't like the Nanodegree program, you can make use of the [Udacity 2-day refund policy](https://udacity.zendesk.com/hc/en-us/articles/360015466632-Refund-and-cancellation-policy?ref=devopscube.com) to get the refund. ## Udacity Detailed Review (Nanodegree ) In this review, I will walk you through every aspect of the **Udacity Nanodegree program based on my personal learning experience.** I am a cloud engineer by profession so it makes more sense to review a Udacity Nanodegree based on my skills and expertise. Also, I believe the course curriculum and quality standards will be maintained for all the nanodegree programs. Overall, I will talk about all Udacity features and their pros and cons in detail. ### Nanodegree Enrollment Process Enrolling in a nanodegree program is pretty straightforward. You just need to decide whether you are paying monthly or upfront. With the promo code and upfront enrollment, you can save a considerable subscription fee. Once you sign up for a nanodegree subscription, you will be presented with a Welcome flow as shown below. ![Udacity Nanodegree enrollment](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/udacity-1.gif) ### Nanodegree Curriculum 📚 Once you complete the Welcome Flow, you will get access to the entire Nanodegree curriculum as shown below. ![Udacity Nanodegree Curriculum ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-12-21.png) As you can see, I am subscribed to the Cloud [DevOps engineer](https://devopscube.com/become-devops-engineer/) nano degree program. The curriculum is well structured with a detailed introduction to the Nanodegree program. The nanodegree introduction covers the following. 1. Introduction to instructors. 2. A series of videos about the nanodegree topic with real-world industry-based explanations. For example, the instructor gives a high-level overview of cloud devops, their role in organizations, the devops model, best practices, and anti-patterns. I really liked the way the introduction is organized because you get that sense of the real-world experience related to that particular technology. 3. Then, you get all the information about getting help, technical mentor support, help center, community, etc. This is pretty useful as it requires your dedication and collaboration to get the most out of a Nanodegree program. 4. Finally, you get an overview of jobs related to the nanodegree. For example, different types of job profiles, their duties, and required skills. ### Nanodegree Course Instructors Each nanodegree is a collection of courses and each course is taught by an instructor who is specialized in that particular skill set. For example, the cloud Devops engineer nanodegree programs have the following courses and instructors. | Course | Instructor | | --------------------------------------------- | ------------------------------------------------------------------------------------- | | Cloud Fundamentals | Kesha Williams, Software Engineering Manager at Chick-fil-A (20+ years of experience) | | Deploy Infrastructure as Code (IAC) | Carlos Rivas, Senior Solutions Architect at Infiniti Consulting | | Build CI/CD Pipelines, Monitoring & Logging | Byron Sommardahl, Chief Technology Officer, Acklen Avenue | | Microservices at Scale using AWS & Kubernetes | Noah Gift, Lecturer at UC Berkeley School of Information | As you can see, the Nanodegree course instructors are not regular corporate trainers, instead, they are well-experienced software developers and architects. This makes the learning more aligned with real-world industry skills. ### Nanodegree Course Now let's look at an individual Nanodegree course and how it is structured. Each nanodegree course contains 1. Multiple lessons 2. A project to implement the skills that you have learned using the lessons. 3. Lab environment to practice exercises and implement the final project. In the cloud [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) nanodegree, Cloud Fundamentals is the course and it contains lessons as shown below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-13-23.png) Click to view in HD I went through all the lessons which covered all the required fundamentals and then moved on to AWS cloud concepts. Each and every cloud concept is covered in detail using AWS services. In fact, the cloud fundamentals touch base on core concepts like computing, storage, messaging, networking, security, logging, IAM, etc. Each lesson contains, 1. A lesson introduction video 2. Explanation of why we need that service and how it is being used in real-world projects. 3. End-to-end demo with guided tutorial (video & text-based) 4. Step-by-step guided exercises. 5. AWS Cloud lab environment to practice exercises. ![Udacity course structure explained](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-14-37.png) Click to view in HD ### Nanodegree Projects Each course in the nanodegree contains a hands-on project. It is a guided project where you will build something from scratch. This project will help you implement the key concepts you learned from the course. Each project has objectives and requirements clearly defined. It is as if you are working with a team and are given a project to complete. For example, the Nanodegree program, I am enrolled in, has a project to build CI/CD pipelines, monitoring, and logging. In that, the task is not only to set up a project but also to create a presentation about the project which explains the business value. It is something you can expect in a real-world project. ![Udacity Nanodegree project](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-21.png) Click to view in HD Next, you need to submit the project to be reviewed but the mentor. You need to upload the project zip file for it be to reviewed by the reviewer. Also, you can add details about your submission so that the reviewer can focus on specific areas. ![Udacity project submission.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-18-30.png) Click to view in HD ### Nanodegree Mentors/Reviewers & Community While learning on Udacity, you will get the following three types of help. 1. **Technical Mentor Help:** For project submission & review 2. **Udacity Support Community:** For general technical clarifications and references. 3. **General Account Help**: Queries related to nanodegree and account. Whenever you submit a project, It will be reviewed by a mentor and feedback will be provided on the project. As per Udacity, a project will be reviewed within [24-46 hours from submission](https://udacity.zendesk.com/hc/en-us/articles/211532546-Project-review-timeline?ref=devopscube.com). Also, Udacity provides mentor help with your course projects. You can access the mentor help option from the right using the question mark icon as shown below. ![Nanodegree mentor help.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-19-23.png) Click to view in HD Before you submit a query to a mentor, you can search for existing solved queries by other students by searching and applying the Nanaodegree and project filters as shown below. ![Nanaodegree community help](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-20-25.png) Click to view in HD However, if the clarification required is not available in the knowledge base, you can submit the question to a mentor using the **Ask a Mentor** option. You can add details, code blocks, and images in the details. Also, you can provide the GitHub link so that the mentor can take a look at the code and provide you with the correct information for your query. With the right program and project selected, the query will be sent to the right mentor. ![Submitting queries to Udacity Technical mentor](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-21-26.png) Click to view in HD ### Udacity Support There is a dedicated support page where you can find answers to all your queries about the Udacity platform. You can access the [support portal here.](https://support.udacity.com/hc/en-us?ref=devopscube.com) You will find links to every category. You can also make use of the chat support as shown in the image below. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-40.png) Click to view in HD There is also a [Udacity support Twitter handle](https://twitter.com/UdacitySupport/?ref=devopscube.com) you could use to get your queries clarified. ### Udacity AI Chatbot One of the most recent additions to Udacity is the AI chatbot integrated with OpenAI. Here is why it is a great feature. When you are listening to lectures and have any doubts, you can use the Udacity AI chatbot. With generative AI support, you can double your learning speed and be productive at the same time. To use the chatbot effectively, you need to learn about effective prompts you can use to get the maximum value and information in the chat. If you are taking coding courses, practicing prompt engineering would be helpful. The following gif shows how I used the chatbot to get answers related to CIDR ranges in networking while watching the networking lectures. It is very useful and makes your learning process interesting and productive. ![Udacity AI chatbot integrated with OpenAI for productive learning](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/udacity-chat.gif) Click to view in HD ### Udacity Certification If you opt for the Nanodegree program, single paid course, or executive program, you can get a Certificate from Udacity. ## Udacity Community Recently Udacity launched a [dedicated community for Udacity](https://community.udacity.com/?ref=devopscube.com) Alumni and Learners. It is a great addition to Udacity. It will foster collaboration, support, and meaningful interactions among the students. Apart from getting support from Udacity mentors, students can use the community to help each other. The community is built with circle.so. It is one of the best platforms for engaging communities. You can read more about the community launch from the [Udacity blog](https://www.udacity.com/blog/2023/08/introducing-the-udacity-community-building-a-path-to-digital-transformation.html?ref=devopscube.com). ## Udacity Free Courses If you don't want to get started with paid Udacity nanodegree programs, you can try out the Udacity free courses. Recently I started with Udacity free Generative AI courses offered by Google. Check out [Udacity Free Courses](https://devopscube.com/udacity-free-courses/) list here we organized all the free courses under different categories. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-23.png) Click to view in HD There are **200+ Udacity quality free courses** you can learn from. Free courses are available in the following categories. 1. Android Development 2. Android Studio 3. AWS 4. Career Advancement 5. Continuous Integration 6. DevOps 7. Data Analysis 8. Data Science 9. Data Structures 10. Data Visualization 11. Deep Learning 12. Game Development 13. Introduction to Machine Learning 14. HTML, CSS, Java, Javascript, Python 15. Software engineering. 16. Microservices and Kubernetes 17. Networking, cryptography 18. SQL, MongoDB, MySQL, MongoDB 19. Generative AI To access the Free Udacity online courses, go to the course listing page and apply the Free filter as shown below. ![Udacity Free Course Filter](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-25.png) Click to view in HD [get udacity free courses](https://devopscube.com/recommends/udacity-free-courses/) ## Udacity Career Services If you are part of a Nanodegree program, you get access to [Udacity career services.](https://www.udacity.com/career-services/home?ref=devopscube.com) Carrer service primarily offers the following, 1. **LinkedIn Review:** Detailed review and optimization of your LinkedIn profile by an industry professional 2. **GitHub Review:** You will get help from a technical professional to organize your GitHub profile which can be showcased during the hiring process. There is also a free course called [Refres](https://www.udacity.com/course/refresh-your-resume--cd13149?ref=devopscube.com)h Your Resume to help you build resumes that stand out. ## Udacity Scholarships Another aspect that I really like about Udacity is its scholarship programs. Udacity collaborates with various organizations to offer scholarships for students, providing opportunities for learners who may not be able to afford the cost of Udacity's courses and programs. Some of the Udacity scholarship sponsors include Google, AT&T, Lyft and Accenture Following are the open scholarships for this month. 1. Next Generation Tech Booster (Bertelsmann): This program focuses on Agile Software Development, AI Programming with Python, and Enterprise Security. 2. AWS AI & ML Scholarship Program (AI Programming with Python) 3. OneTen/Blacks in Technology Scholarship Program (Black job-seekers without 4-year degrees across the United States) Here is how the scholarship program works: 1. Interested learners can apply for available [scholarships through Udacity's websit](https://devopscube.com/recommends/udacity-scholarship/)e. 2. The application process typically involves submitting an application. You will get access to free courses and content as part of the application process. 3. Scholarship applications are then reviewed by Udacity and the finalists will be notified via email. 4. Out of all the scholarship recipients selected students will get access to the full Nanaodegree program for free These programs provide access to Udacity's courses and programs at little or no cost and can help learners develop the skills and knowledge they need to advance their careers in technology and other fields. Overall, Udacity's scholarship programs are a great way for learners to access high-quality education and advance their careers, regardless of their financial situation. ## Udacity for Enterprises For enterprises, Udacity aims to fill the talent gap. As per the Talent **Transformation Global Impact Report**, 59% of enterprises have a negative impact due to the talent gap. ![Udacity for Enterprises](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-43.png) Click to view in HD For enterprises, Udacity offers the Udacity Talent Transformation suite to deliver business results. In this program, Udacity experts will work with your organization to design a transformation roadmap that aligns with your organization. A workshop to identify the talent gaps, a platform to learn and implement, and finally measuring the ROI of the entire transformation journey. The Udacitity digital competency platform focuses on digital technologies like **data science, Machine learning, Artificial intelligence, Programming, Cloud computing**, etc. with relevance to the workplace. ![Udacitity digital competency platform for enterprises.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-2-35.png) Click to view in HD Companies like Vodafone, TOYOTA, Accenture, and Shell use the Udacity enterprise platform. ## Udacity : Things I Don't Like 1. **Nanodegree programs are expensive:** If you cannot afford the Nannodegree program, you can use personalized discounts to save money by paying an upfront cost. Also, you can apply for [Udacity Scholarships](https://devopscube.com/recommends/udacity-scholarship/). 2. **Content is Very Technical:** In my experience, I feel like the content is very technical so if you are an absolute beginner, you might need to do extra research while following along with the course. 3. **No Mobile App:** Only web application is available for learning. There is no mobile app. If you are someone who needs a mobile app to learn everywhere, you cannot do that with Udacity. 4. **Delayed Project Reviews:** Mentor-ship program is great but the project reviews take more than 24 hours and sometimes up to a week time for review. So if you are looking for instant project reviews, Udacity is not for you. 5. You will get access to Slack channels only after the completion of a Nanodegree program. ## The Bottom Line: My Udacity Review First, let me cover some of the highlights that I found during this Udacity review by analyzing and learning from a nanodegree program. 1. **Industry-Aligned Curriculum:** Well-structured curriculum designed in collaboration with industry experts, ensuring that they are relevant to real-world job requirements and current industry trends. 2. **Expert Instructors:** Udacity's instructors are industry experts who have real-world experience in their respective fields. 3. Course introduction with real-world use cases and industry best practices. 4. Guided **project-based learning** with code examples. The project-based learning experiences are designed to help you develop skills in specific areas. 5. Apart from videos, there are **well-documented supporting tutorials** in text format that ensure fresh learning materials. 6. Hands-on lab environments for cloud & programming. 7. Project review and guidance through **technical mentors** 8. Extensive community knowledge base to rectify doubts related to Projects. 9. Udacity courses are developed with collaboration from top-tier companies like Google, Microsoft, AWS, Intel, IBM, etc. 10. More than **200+ free courses** in collaboration with big tech companies 11. Access to career services that include LinkedIn Review and GitHub Review for Nanodegree students. 12. Access to **Exclusive Job Postings** from reputed organizations for Nanodegree students So yeah, there are a ton of features given by Udacity and they are solid. However, some of them need work. But there’s no question that Udacity is always adding new courses to its platform. ## Is Udacity really for you? 🏆 Most of the free resources available online are heavily disorganized. If you are someone who wants to learn technology for a job and doesn't know where to start, Udacity Nanodegree is the best option. But keep this in mind, that Udacity Nanodegrees are expensive. You can save up to 70% on the Nanodegree subscription using the personalized discount program. So if you are starting your career and you cannot afford it, Udacity is not for you. You could try some cheaper alternatives. Also, Udacity nanodegree programs are structured in a way to cover different technology stacks with essential aspects of each technology focussing on related job profiles. Sometimes you will not find in-depth content on technology instead you will find only just enough content to get you started with the technology that will help you get a job. So, if you are looking for in-depth learning content, you need to supplement your Nanodegree learning with other Udacity free courses related to your technology. ## What do others say about Udacity? Apart from my personal view, I wanted to know what others say about Udacity. So I did some research and the following are my findings. As per the [IDC MarketScape report](https://www.idc.com/getdoc.jsp?containerId=US47541121&ref=devopscube.com), Udacity has been named a Leader in the U.S. IT Training 2021 Vendor Assessment. ![IDC MarketScape report Udacity](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-10-30.png) Click to view in HD I checked the Udacity review on Trustpilot and it has more than 2500+ reviews with an excellent 4.8/5 rating. ![Udacity Trustpilot reviews.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-22-24.png) ## Udacity vs Coursera vs Udemy [Coursera](https://devopscube.com/recommends/coursera-free-courses/) and [Udemy](https://devopscube.com/recommends/udemy-free/) are similar platforms to Udacity which offers MOOC courses. Both platforms offer free and paid courses and specializations. Choosing a platform depends on your needs and the skillsets you want to develop. Overall here are the differences you should know. 1. All the platforms offer free courses. 2. Coursera Plus subscription is less expensive than nano degree programs. Also, with [Coursera plus discount](https://devopscube.com/coursera-plus-discount/), you could save up to $100. 3. Udemy offers single-course purchases and monthly subscriptions that have access to 8000+ courses. 4. Coursera courses are developed primarily by Universities whereas Udacity Online courses are developed by software professionals. 5. Udemy courses are created by individual authors. 6. Coursera has all course categories while Udacity offers specialized focussed courses. The following table provides a single-view comparison of all three platforms. | **Features** | **Udacity** | **Coursera** | **Udemy** | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Course Quality | Udacity offers courses that are highly focused on specific technical skills, and often feature industry partners to provide **real-world experience.** | Coursera has a mix of courses, from highly focused technical classes to more broad and **general education courses.** | Udemy courses vary in quality as anyone can create and sell a course on the platform, but there are **high-quality courses** available. You can check it through user reviews. | | Instructor Quality | Udacity's courses are often taught by industry experts, providing a high level of expertise and real-world experience. | Coursera courses are taught by a mix of university professors and industry professionals, providing a balance of academic and practical knowledge. | Udemy courses are taught by anyone who creates and sells a course on the platform, so the quality varies depending on the instructor's qualifications and experience. | | Course Format | Udacity courses are typically self-paced, with a mix of video lectures, quizzes, and projects to reinforce learning. | Coursera courses can be taken on a self-paced or scheduled basis, with a mix of video lectures, quizzes, and assignments. | Udemy courses are typically self-paced and consist of video lectures, with quizzes and assignments to reinforce learning. | | Certification | Udacity offers **nanodegree programs** that provide a certificate upon completion, which can be useful for job applications. | Coursera offers courses for free or for a fee, with the option to earn a certificate upon completion. | Udemy offers certificates of completion for its courses, but they may not hold as much weight as those from other providers. | | Price | Udacity courses are typically more expensive than those offered by Coursera and Udemy. | Coursera courses range from free to several hundred dollars, depending on the course or specialization and whether you want a certificate. | Udemy courses range in price from **free to \~$50** dollars, depending on the course and the instructor. But with Udemy discounts you could get a course for around $6. | | Reputation | Udacity is highly regarded in the tech industry for its focus on technical skills and **partnerships with industry leaders**. | Coursera is a well-established platform with **partnerships with top universities** and companies. | Udemy has a mixed reputation due to the varying quality of its courses, but there are some high-quality options available. | ## Udacity's Social Media Channels You can keep track of happenings at Udacity through their social media channel. You will get to know about the new nanodegree programs, offers, and scholarships. Following are the Udacity Social media channels. 1. [**Udacity Youtube:**](https://www.youtube.com/@Udacity/videos?ref=devopscube.com)You can watch free tech classes through the Udacity YouTube channel. 2. [Udacity Twitter](https://twitter.com/udacity?ref=devopscube.com) 3. [Udacity Linkedin](https://www.linkedin.com/school/udacity/?ref=devopscube.com) ## Final Thoughts I hope this **detailed Udacity review** on Nanodegree was helpful. Overall, from my experience with a nanodegree program, I find Udacity to be helpful as a package containing technical mentor programs and career services. Also, it is one of the [best websites to learn coding.](https://devopscube.com/top-websites-to-learn-programming-online/) If you are still confused, try any of the free Udacity courses related to the technology you are looking for. If you are satisfied with the learning experience and course content, you could try the related nanodegree program. I use Udacity courses for my learning and I keep updating this review on my experiences. In fact, the IT landscape is all about keeping yourself updated with all the latest technologies. If you have any experiences or feedback about Udacity, do let us know in the comments. It will be helpful for the community. Also, if you are more in to text based learning with browser based hands-on labs, you might like educative platform. You can read our detailed [educative.io review](https://devopscube.com/educative-io-review/) to know more. **Udacity Review Updates:** 1. **\[27-11-2022\]:** Udacity vs. Coursera Update. 2. **\[03-02-2023\]:** Udacity Scholarship program update. 3. **\[20-03-2023\]:** Based on the reader's request, have added a comparison of Udacity, Coursera, and Udemy. 4. **\[13-04-2023\]:** Tried Udacity AI chat and updated about the functionality. 5. **\[12-07-2023\]:** Added details about the dedicated Udacity support page. 6. **\[23- 08-2023\]:** Added information about thenewly launched Udacity community. 7. **\[12-09-2023\]:** Updated about the Udacity subscription changes. 8. **\[23 - 10 - 2023\]**: Update information about the Bertelsmann scholarship. 9. **\[04 - 11 - 2023\]**: I started with Free Udacity Generative AI courses. ### Cloudways Review 2026: Details, Pricing, & Features URL: https://devopscube.com/cloudways-review/ Last updated: 2026-01-05T06:27:42.000Z In this detailed hands-on Cloudways review, I have covered all the features, functionalities, Pricing, pros & cons of Cloudways managed cloud hosting. ****Note:** This review is based on my personal experience with the Cloudways platform. I'm currently ****hosting my company website** and a tech blog on Cloudways using a paid account. So it is going to be a detailed hands-on review where I explain each feature and its likes and dislikes. Based on this you can decide if this platform is for you.. Let's get started with the review. I will review the Cloudways managed hosting platform by [setting up a WordPress application](https://devopscube.com/setup-wordpress-on-cloudways/) from scratch. This way, you will be able to understand all Cloudways features in detail. As a Cloud and [DevOps Engineer](https://devopscube.com/become-devops-engineer/) myself, I work on cloud servers day in and day out. So I believe a **hands-on technical review is much better** than listing down all the features of a service. ****Important Note:** You can also follow this review guide to set up your website on Cloudways using the [free trial account](https://devopscube.com/recommends/cloudways/) and experience all its key features. This way you get a practical experience on the platform and understand all its key features. ## Cloudways Hosting Types Cloudways offers two types of hosting plans. 1. **Cloudways Flexible** \- Where you get full control over your hosting (except for root access) and choosing a cloud backend 2. **Cloudways Autonomous** \- It is a fully managed offering that supports on-demand scaling and many concurrent users. ⚠️ ****Note:** This review is for Cloudways Flexible hosting. If you want to know about Cloudways Autonomous, please read the [Cloudways Autonomous Review.](https://devopscube.com/cloudways-autonomous-review/) ## Cloudways Features Before the detailed review, let's look at the Cloudways features. Then, we will discuss each feature and its usefulness for cloud hosting needs. 💡 Cloudways is a managed cloud hosting focussed on service SMBs. It has more than ****100,000 customers** and the platform hosts more than ****570,000 websites.** The following are the key features offered by Cloudways. 1. Cloudflare Enterprise CDN to improve page **load times by up to 70%** 2. Auto-Healing Managed Cloud Servers 3. Managed WordPress Autoscaling 4. Origin server and Edge Page caching. 5. 24/7/365 Live Chat 6. Proactive Application Monitoring 7. 1-Click Free SSL Installation 8. DDoS & Web Application Firewall (WAF) with Cloudflare 9. Dedicated firewall & IP Whitelisting 10. Backed by top IaaS Cloud Providers with global availability. 11. Server vertical scaling 12. Well-segregated apps, servers, and team members. 13. 1-Click application deployment, backup & restore 14. 24/7 [Real-time Monitoring](https://devopscube.com/best-opensource-monitoring-tools/) & New Relic application monitoring Integration 15. Autoscaling websites using Cloudways Autonomous platform. 16. Cloudways AI Copilot helps monitor the infrastructure and identify issues. ⚠️ ****Note:** If you are looking for non-php based managed hosting, Cloudways it not for you. It is a dedicated platform for various php based applications. ## Detailed Cloudways Flexible Walkthrough One key thing I look for in **managed cloud hosting** is minimal server management and configurations with greater flexibility. Ideally, all the complex cloud configurations should be abstracted away, and only required configuration options should be provided to the end user. In Cloudways, you can host Wordpress, CMS, E-commerce, and other PHP-based web applications. Cloudways has the following five main features that you should know. 1. Servers 2. Applications: A server can have multiple applications. 3. Team 4. Projects I will go through each option as we deploy a Cloudways server with WordPress. ## Cloudways Server Deployment First, I will spin up a server with WordPress. When you log in to the Cloudways dashboard, you will see the servers option as shown below. ![Cloudways servers option](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-3-32.png) Once you click the servers option, you will see the "**Launch Now**" button. Click it, and it takes you to the server launch W izard with all the supported cloud options like server size, storage, etc. For this review, I am selecting the following options. 1. WordPress 2. DigitalOcean Cloud 3. 2 GB Memory, 50GB Hard Disk, and 1 CPU Core 4. New York Data Center In the following image, I have highlighted all the basic configurations you need to choose. ![Cloudways Server Launch Wizard.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-26.png) Using the Launch Now button, you can deploy the server. Cloudways will show you the approximate time for the server to be ready, as shown in the image below. Ideally, it is the time taken for Digital Ocean to make the Droplet ready. ![Cloudways Deployed Server](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-35.png) ## My Take on CloudWays Server Deployment I really like the process of server launch. Everything worked like a breeze from the user experience until the server deployment. Even a beginner without any technical knowledge can deploy a Cloudways server. It is because Cloudways has abstracted all the complex server configurations required when launching a server on Cloud providers. The next best feature I liked is that once you choose all the configurations, it shows you the hourly and monthly pricing for the server. It is like a built-in cloud cost calculator. These features are very helpful for individuals as well as agencies that want to deploy and manage client websites. Overall, the **server deployment experience is amazing and very user-friendly.** 💡 For most use cases, you will need only General Purpose servers as it offers a balancer CPU to RAM ratio. For example. eCommerce, CMS, forum etc But if you are building heavy backend apps, high traffic eCommerce or LMS you might need CPU Optimized Servers. If you are looking for CPU-optimized server types for hosting, you can choose ****Vultr** or ****Linode** cloud backends, as both support CPU-optimized servers. ## Cloudways Server Management Next, we will look at server management. Once the server is provisioned, you can view all the details about the server and the configurations of the applications. Let's have a look at each option ### Master Credentials If you click on the server, it opens the server management Dashboard. First, you will see the credentials to connect to the server, as shown in the image below. ![Cloudways server management console](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-6-23.png) You can change the default username and password if needed. I have created a step-by-step guide on [how to connect to cloudways server](https://devopscube.com/connect-to-cloudways-server/) using SSH ### Server Monitoring When it comes to monitoring, Cloudways has **inbuilt monitoring for metrics like CPU, memory, Disk usage, bandwidth, Reads/Writes** per second, incoming/outgoing network traffic, MySQL connections, etc. You can monitor these metrics at each application level. The dashboard clearly shows how many resources each application consumes. Also, you can view the metrics in a graph. The following GIF shows the demo of the Cloudways server monitoring dashboard. ![cloudways server monitoring](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/monitoring-1.gif) ### Application Monitoring Cloudways also supports **Application monitoring using New Relic**. To implement APM, you need to have a valid New Relic account, and all you have to do is add the New Relic license to Cloudways and enable the agent. The agent automatically registers itself with New Relic, and you can monitor all supported PHP metrics on New Relic. ![Cloudways application monitoring with new relic](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-18-27.png) I have tried the new Relic integration. It is simple and great, and you get a lot of application metrics. It is primarily great for e-commerce-based apps where you need end-to-end metric collection and monitoring. You can also[ custom instrument your PHP apps](https://docs.newrelic.com/docs/apm/agents/php-agent/features/php-custom-instrumentation/?ref=devopscube.com) to provide valuable metrics for better application optimization. Here is an example of the New Relic dashboard for the Magento application. ![Cloudways Magento new relic dashbaord.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-19-20.png) To understand more about PHP application monitoring, check out the [new relic PHP integration](https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/introduction-new-relic-php/?ref=devopscube.com). ### Managing System Services & Package Settings From the Cloudways server management dashboard, you can manage all the services running inside the server. For example, Apache, MySQL, Nginx, Varnish, etc. You don't have to log in to the server to manage these services. Instead, you can check the status and restart the services from the dashboard, as shown below. ![Managing system services from cloudways Dashbaord.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-7-30.png) Under settings and packages, you can upgrade the application packages to the latest available version from the comfort of your browser. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-8-26.png) ### Security Using firewall rules, you can restrict access to the server SSH/SFTP and database access. In addition, you can either allow your IP or a CIDR range in the whitelist to have an additional layer of server security. ![Cloudways Firewall Rules](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-9-22.png) ## My Take on Server Management ### Likes 👍 1. Cloudways guys have done a great job in providing all the essential information and optimizations in a single pane of glass. 2. All these configurations are otherwise done on the server directly, which is typically hard to keep track of and results in configuration drift. 3. [SSH](https://devopscube.com/generate-ssh-key-pair/) is made easy using the built-in SSH terminal 4. Out-of-the-box server monitoring using key metrics and application monitoring support using New Relic. 5. A very good option to manage system services and packages from the comfort of the browser rather than logging into the server. 6. Minimal yet powerful firewall options for SSH/SFTP and MySQL access. ### Dislikes 👎 You cannot have root access to the server. Cloudways has an explanation for that. Basically, Cloudways centrally orchestrates and manages all the servers for its customers. If they provide root login to customers, there is a chance of configuration drift that ends up in a situation where the Cloudways team loses control of the server management. You can[ read about it here](https://support.cloudways.com/en/articles/5134090-why-can-t-i-have-root-access-to-my-server?ref=devopscube.com). As a cloud automation engineer, I agree with Cloudways on this. When choosing a managed hosting solution, it is better not to play around with settings that are related to server automation and management. ## Server Recovery For some reason, if you forgot to upgrade the trial account and the server got deleted, you can recover it using the recover server option, as shown below. ![cloudways deleted server recovery](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-8-27.png) ## Cloudways Uptime Also, the server uptime is primarily based on the underlying cloud platform. When you deploy a server on Cloudways, you are deploying it to any of the underlying cloud platforms supported by Cloudways (Amazon Web Services, Google Cloud, Digital Ocean, etc.) For example, [AWS offers 99.99% uptime](https://aws.amazon.com/compute/sla/?ref=devopscube.com) (equates to 4.38 minutes of permitted downtime per month). The same will be applied if you use the Amazon Web Services backend on Cloudways. It's the same with [Google Cloud Uptime](https://cloud.google.com/compute/sla?ref=devopscube.com) as well. If you use DigitalOcean as the backend cloud, it provides a 99.99% uptime SLA per month. Considering the cloud backends, you can have peace of mind in terms of uptime. Also, you can track the platform status on [status.cloudways.com](https://status.cloudways.com/?ref=devopscube.com) ## Cloudways Caching Cloudways servers are equipped with full-page caching via [varnish](https://varnish-cache.org/?ref=devopscube.com) that caches the webpages in the origin server itself. Additionally, with Edge Page Caching, all the webpages are further cached at the edge servers of Cloudflare. This means when users try to access websites hosted on Cloudways, the webpages get served from the nearest [Cloudflare Edge servers](https://www.cloudflare.com/en-gb/learning/cdn/glossary/edge-server/?ref=devopscube.com). Here is a partial/full page caching test conducted by Cloudways with edge caching, and the results are amazing. With edge page caching, the pages are **66% faster**. ![Cloudways edge page caching ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-30-17.png) ## Cloudways Performance Hosting performance is not a single measure; it could differ from application to application based on its configuration. Since Cloudways only deals with web applications, I have conducted a **GTmetrix test** to measure performance metrics that are considered important by Google in determining the user experience of a website. [**Google Core Web Vitals**](https://developers.google.com/search/docs/appearance/core-web-vitals?ref=devopscube.com) considers the following performance metrics. 1. **Largest Contentful Paint (LCP):** This measures the time it takes for the largest content element on a webpage to load. 2. **First Input Delay (FID):** This measures the time it takes for a webpage to become interactive. 3. **Cumulative Layout Shift (CLS):** This measures the visual stability of a webpage as it loads. In the performance test, the application hosted on Cloudways hosting scored an **A grade with a 100% score**. It also passed all the Google Core Web Vitals performance metrics. The performance results are shown in the image below. ![Cloudways Performance metrics](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-7-31.png) Here is another interesting Cloudways performance conducted as compared to other hosting providers like Kinsta and WP-Engine using [loader.io](https://loader.io/?ref=devopscube.com). The performance test is based on three parameters. 1. Monthly Visits 2. Bandwidth and 3. Storage. ![Cloudways Performance test against kinsta and WPEngine](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/cloudways-performance-1.png) ## Cloudways Scalability One of the common concerns with managed WordPress hosting is scalability. Usually, with other hosting providers, you will have to pay upfront for fixed server resources Also, hosting providers use static servers at the backend that don't scale during **traffic spikes**. There is always a hard limit on the bandwidth and requests it can handle. That is the primary reason, companies and startups opt for custom scaling solutions. For example, [AWS autoscaling](https://devopscube.com/terraform-autoscaling-group/). But it comes with a lot of administrative overhead. Cloudways is solving this problem using [Cloudays Autoscale](https://www.cloudways.com/en/autoscale.php?ref=devopscube.com) and taking away all the administrative overhead associated with scaling server resources. It is a fully managed WordPress hosting that can scale as per the needs. Cloudways Autoscale is built on top of the [container orchestration](https://devopscube.com/docker-container-clustering-tools/) tool [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/). Most of the big organizations use Kubernetes for scaling their applications on the cloud. It supports both Horizontal and Vertical scaling. The best part is that the pricing starts at **as low as $35/month**. If you compare the pricing associated with sysadmins handling custom autoscaling on cloud platforms, it's very cheap. ## Cloudways Cloudflare Enterprise Addon Cloudways offers an enterprise addon for Cloudflare CDN. If you use this addon, you can leverage the enterprise CDN features from Cloudflare. As per the official documentation, the following are the other features you will get along with this addon, 1. 100GB Enterprise CDN 2. Priority DDoS protection 3. Intelligent firewall (WAF) 4. Image optimization with Polish 5. Brotli compression 6. Mobile optimization with Mirage 7. Wildcard SSL support 8. PCI DSS compliance 9. HTTP/3 support 10. Reserved for Cloudways IPs & prioritized routing 11. Edge Page Caching 12. Argo Smart Routing 13. Purge API 14. Features control 15. Better Security with Global Rate Limiting & the Honey Pot Project ## Cloudways Supported Applications Since Cloudways is a managed PaaS platform, you have the limitation of the applications that you can host on the platform. Cloudways supports the following applications. 1. [WordPress](https://devopscube.com/wordpress-installation-guide/) (including WooCommerce and WordPress Multisite) - Supports one-click installation. I have personally used Wordpress on Cloudways. 2. Magento - Supports one-click installation. 3. PHP (including Laravel) - Supports one-click installation. 4. OpenCart 5. Drupal 6. Joomla 7. PrestaShop 8. Yii 9. Yii 2 10. osCommerce 11. Symfony 3 12. Codeigniter 13. CakePHP 14. ProcessWire 15. Zen Cart 16. X-Cart ## CloudWays Pricing How much does Cloudways cost? When you say cloud, one of its key pillars is metered billing or a **pay-as-you-go pricing model**. Cloudways follows the same cloud-based Pay-as-You-Go model. If you want to try out Cloudways, you can start for free without a credit card. [TRY Cloudways free](https://devopscube.com/recommends/cloudways-free-trial/) > **Note**: If you plan to use the Cloudways Hosting after free trial, use the code **DEVOPS30** with signup to get an **exclusive 30%** discount on all its hosting plans. Cloudways uses five IaaS providers for server deployment. Pricing changes are per the backed cloud Provider. The following table has the starting price of each provider on Cloudways. > **Note**: The following table has per month pricing. However, if you run the server for less than a month, you will be charged only for the server running hours. | Cloudways Cloud Provider | Starting Price | | ------------------------ | -------------- | | Digital Ocean | $11 USD/mo | | Amazon Web Service | $38.56 USD/mo | | Google Cloud | $37.45 USD/mo | **Cloudways Autoscale** for managed WordPress hosting starts from $35 USD/mo. Also, check [Cloudways promo codes](https://devopscube.com/cloudways-promo-codes/) to get discounts for up to six months on all hosting plans. Currently, Cloudways is running a black friday promo where you can get a 40% discount and 40 free migrations. ### My Take on Cloudways Pricing The best thing about Cloudways pricing is the **real-time billing,**, which is super useful. Here is a screenshot of the real-time billing for one of my servers running at Cloudways. It shows the current billing and the estimated billing amount as per the billing cycle. Also, you will be able to see server-wise billing. Overall, the real-time billing is pretty simple with enough information we need. ![cloudways real-time billing](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-17-20.png) So if you have a development and staging website you can deploy a server, test it, and pay for only the number of hours used instead of an upfront payment. Refer to the [official Cloudways billing article](https://support.cloudways.com/en/articles/5119615-how-does-cloudways-payment-system-work?ref=devopscube.com) to understand more. ### Dislikes 1. There is no detailed billing available ## The Bottom Line: My Cloudways Review Overall, **Cloudways is an excellent choice** for bloggers, small and medium businesses, and non-technical users looking for managed cloud hosting for PHP-based CMS and eCommerce applications. It comes with all packages and the top features required for hosting an application on the Cloud. **Cloudways makes cloud hosting very easy** even for non-technical folks by abstracting away all the complexities of cloud server configurations. So that you can focus on application development and management rather than server management. One such example is **One click staging websites** for Wordpress. Also worth a particular mention is, speed and performance. The combination of cloud backed server, free caching plugin and CDN capabilities add enterprise grade performance to hosted applications. But what are the main disadvantages of Cloudways? Well, the detailed billing is not available like other cloud platforms. Also, you cannot get root access to the servers. However it provides other options to tweak key server settings related to application. Lack of Email Hosting is a disadvantage but Clouways provides addons for email hosting. But overall, Cloudways is great managed cloud hosting for anyone looking for less administrative overhead in terms of managing their Wordpress or other PHP-based applications. ## What do Others say About Cloudways? Even though I had a good experience with Cloudways, I had a look at what the other existing customers say about Cloudways. It has got an excellent rating on Trustpilot. ![Cloudways Trustpilot reviews.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-4-27.png) As per G2, Cloudways is the #2 managed [hosting provider in the SMB category](https://www.g2.com/categories/managed-hosting/small-business?ref=devopscube.com). Here is a customer review where he talks about how he got a 100% rating on Google Page Speed Analytics and GTMetrix for the website hosted on Cloudways. ![Cloudways customer review.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-5-36.png) At the same time, another customer has reported a terrible customer care experience which the Cloudways team should look at it. ![Cloudways negative review](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-6-24.png) However, by far my experience has been great in terms of the platform as well as customer support. ## Cloudways Platform Updates (2025) I keep track of the latest platform updates from Cloudways. The following are the platform updates from Cloudways. 1. As per the latest 2025 updates, Cloudways is **modernizing its tech stack** for better performance and scalability. One key update to that is it has expanded its hosting options by adding **General Purpose** and **CPU Optimized** servers for Vultr and Linode. 2. Cloudways now offers autoscaling through Cloudways Autonomous service. It is a service that utilizes [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) at the backend, hosted on Google Container Engine (GKE). For users who need a highly scalable website to meet traffic demands, Autonomous is a robust platform. From a pricing perspective, it is actually cheap considering the overhead involved in managing a production ready Kubernetes cluster. 3. Cloudways added the Cloudflare Enterprise Add-on keeping performance, and security as top priorities. 4. SafeUpdates for WordPress is generally available now. Cloudways will take care of detecting and testing the WordPress updates for you. Check the detailed [update here.](https://www.cloudways.com/en/safeupdates.php?ref=devopscube.com) 5. **Cloudways joins** [**Digital Ocean**](https://devopscube.com/recommends/digital-ocean-sidebar/)**:** Cloudways has been acquired by Digital Ocean Cloud. This means you can expect more integrations and features for the Cloudways Digital Ocean backend. 6. **Edge Caching:** With the Cloudflare enterprise add-on, you can leverage the edge caching feature, which could result in a **+70% improvement** in page load times. ## Cloudways vs Siteground Cloudways Vs SiteGround is a commonly compared hosting provider for managed hosting. So to help you out, I thought of adding key differences based on my research. The following table shows the detailed comparison of Cloudways vs. SiteGround hosting. | Features | Cloudways | Siteground | | -------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | | Hosting types | Cloud Hosting | Shared, WordPress, Cloud, Reseller, Enterprise Hosting | | Server locations | Multiple locations in the US, Europe, and Asia-Pacific | Multiple locations in the US, Europe, Asia-Pacific, Australia | | Control Panel | Custom user-friendly control panel | cPanel or custom Site Tools control panel | | Free SSL | Yes | Yes | | Backups | Automated daily backups | Automated daily backups | | Staging | Yes | Yes | | CDN | Free integration with Cloudways CDN | Free Cloudflare integration | | Support | 24/7 live chat and ticket support | 24/7 live chat, phone, and ticket support | | Pricing | \- Starts at $11/month \- Also supports hourly pricing that starts from $**0.0139** USD/hr\- Pay only for what you use model | Starts at $6.99/month for shared hosting | | Uptime guarantee | 99.9% | 99.9% | | Money-back guarantee | 3-day trial without credit card | 30-day money-back guarantee | ## Conclusion There you have it: my comprehensive review of Cloudways. As a cloud engineer, I know the pain in managing self-hosted PHP websites. Even Devopscube was initially on self-hosted wordpress where I had to take care of everything. And trust me, it was not worth it. Now I have moved to a fully managed platform and I focus on publishing rather than taking care of the platform. Now I would like to turn things over to you: Have you used Cloudways before? If so, what are your overall impressions? Good? Bad? Somewhere in between? Let me know your opinion in the comments section below. Also, if you are planning to move to managed hosting, do let me know in the comments. 🧑‍💻 Since I am using Cloudways for hosting, so I keep updating the review based on my experiences. Also, I keep testing its latest features and add information about it. ### 160+ Best DevOps Tools [Updated for 2026] URL: https://devopscube.com/best-devops-tools/ Last updated: 2026-09-07T11:09:10.000Z If you want to know about the best [DevOps](https://devopscube.com/what-is-devops-what-does-it-really-mean/) tools in one place, then you’ll love this (updated) listicle. As [DevOps engineers](https://devopscube.com/become-devops-engineer/), it is very important to know about the DevOps tools landscape. Each project has different requirements, and the right set of tools should be used for a better DevOps implementation. I have organized the tools under different categories. Also, don't feel overwhelmed with 160+ tools. DevOps teams use only select tools under each category, and tool selection is based on the organization's requirements. Also, as a [DevOps engineer](https://devopscube.com/list-of-open-source-free-tools/) myself, I keep updating the list based on my learnings, tools' popularity, and community adoption. ## List of Best DevOps Tools Before diving deep into individual tools, let’s look at **our top choices in different tool categories.** These top choices are based on open-source/Free, popularity, community adoption, and support. | Tool Category | Best DevOps Tools | | ---------------------------- | ----------------------------------------- | | Code Build | Maven, npm & Gradle | | Code Quality and Analysis | Sonarqube | | Continuous Integration | Jenkins, Github Actions & Gitlab CI | | Continuous Delivery & GitOps | Jenkins, FluxCD (GitOps), ArgoCD (GitOps) | | Artifact Management | Sonatype Nexus, Artifactory | | Infrastructure Provisioning | Terraform & Pulumi | | Configuration Management | Ansible & Chef | | Logging | ELK stack & Grafana Loki | | Monitoring & Observability | Prometheus, Thanos and Grafana | | Secret Management | Hashicorp Vault | | Container Orchestration | Kubernetes | | Service Mesh | Istio | | Security | Aqua Security | | Multi Cloud Management | Crossplane | | Cloud Cost Management | Infracost, Kubecost (k8s) | | Platform Engineering | Backstage | | eBPF | Cilium, Falco, Calico | Now let's have a look at the different tools in each category in detail. ## Development Tools First, I want to add the best development tools to the DevOps tools list. Because I strongly believe a good development environment is a basic need for a developer or a DevOps engineer. It is important to maintain developer environments without inconsistencies in terms of software configurations and versions. And most importantly, the environment should be reproducible in minutes in case of a laptop crash. This could be achieved using the following tools, which increase developer productivity as well as maintain reproducible and consistent environments across developers. 1. [**Virtual Box**](https://devopscube.com/virtual-box-tutorial/) \[Open Source - VM management\] 2. [**Qemu**](https://www.qemu.org/?ref=devopscube.com)\[Open Source - VM management\] 3. [**Vagrant**](https://devopscube.com/vagrant-tutorial-beginners/) \[Open Source - VM management\] 4. [**Docker Desktop**](https://www.docker.com/products/docker-desktop/?ref=devopscube.com) \[Open Source - Container Management\] 5. [**Minikube**](https://devopscube.com/kubernetes-minikube-tutorial/) \[Open Source- Container Management\] 6. [**Minishift**](https://www.okd.io/minishift/?ref=devopscube.com) \[Open Source - Container Management\] 7. [**Podman Desktop**](https://podman-desktop.io/?ref=devopscube.com) \[Open Source - Container Management\] ![DevOps Development Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Development-Tools.png) ## AI DevOps Tools Nowadays, there are many DevOps AI tools available in the market. Here are a few tools that will help you. 1. [**Harness**](https://www.harness.io/?ref=devopscube.com)\[Open source & Paid\] 2. [**Gatling**](https://gatling.io/?ref=devopscube.com) \[Free & Enterprise\] 3. [**PagerDuty**](https://www.pagerduty.com/?ref=devopscube.com)\[Free & Paid\] 4. [**Snyk**](https://snyk.io/?ref=devopscube.com) \[Free & Paid\] 5. [**Incident**](https://incident.io/?ref=devopscube.com) \[Free & Paid\] 6. [**Amazon Q Developer**](https://aws.amazon.com/q/developer/?ref=devopscube.com)\[Free & Paid\] 7. [**Dynatrace**](https://www.dynatrace.com/?ref=devopscube.com)\[Paid\] 8. [**Sysdig**](https://www.sysdig.com/?ref=devopscube.com)\[Free, paid, and also has some open source projects\] ## Source Code Management Tools In the DevOps world, everything is treated as code (Eg, code, [shell script](https://devopscube.com/linux-shell-scripting-for-devops/). configurations, etc). So it is a must to have robust source code management tools. We have the following list of tools for you. 1. [**Github**](https://github.com/?ref=devopscube.com) \[Free & Paid\] 2. [**Bitbucket**](https://bitbucket.org/product?ref=devopscube.com) \[Free & Paid\] 3. [**Gitlab**](https://about.gitlab.com/?ref=devopscube.com) \[Free & Paid\] 4. [**AWS CodeCommit**](https://aws.amazon.com/codecommit/?ref=devopscube.com) \[Free & Paid\] 5. [**Azure Repos**](https://azure.microsoft.com/en-us/services/devops/repos/?ref=devopscube.com) \[Free & Paid\] 6. [**Google Cloud Source Repositories**](https://cloud.google.com/source-repositories?ref=devopscube.com) \[Free & Paid\] ![Source Code Management Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Source-Code-Management-tools.png) ## Build Tools Build tools are essential for any software development process to automate package creation or a deployable artifact. The following are the top build tools. 1. [**Maven (Java)**](http://maven.apache.org/?ref=devopscube.com) \[Open Source\] 2. [**Gradle (Java, Kotlin, Groovy, Scala, Python, C++)**](https://gradle.org/?ref=devopscube.com) \[Free & Paid\] 3. [**npm**](https://www.npmjs.com/?ref=devopscube.com) \[JavaScript\] 4. [**Rake (Ruby)**](https://github.com/ruby/rake?ref=devopscube.com)\[Open Source\] 5. [**MSBuild (.Net)**](https://github.com/microsoft/msbuild?ref=devopscube.com) \[Open Source\] 6. [**Pybuilder (Python)**](https://pybuilder.io/?ref=devopscube.com) \[Open Source\] ## Continuous Integration Tools [Continuous Integration](https://devopscube.com/continuous-integration-delivery-deployment/) is an essential part of SDLC. This capability gives continuous feedback on code integrations for the stakeholders and developers. This helps in solving the issues faster and decreases the time in software release cycles. The following are the best continuous integration tools. 1. [**Jenkins**](https://jenkins.io/?ref=devopscube.com) \[Open Source\] 2. [**Github Actions**](https://github.com/features/actions?ref=devopscube.com)\[Free & Enterprise\] 3. [**Gitlab CI**](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/?ref=devopscube.com) \[Free & Enterprise\] 4. [**Bamboo**](https://www.atlassian.com/software/bamboo?ref=devopscube.com) \[Free & Enterprise\] 5. [**Travis CI**](https://travis-ci.org/?ref=devopscube.com) \[Open Source\] 6. [**TeamCity**](https://www.jetbrains.com/teamcity/?ref=devopscube.com) \[Free & Enterprise\] 7. [**Circle CI**](https://circleci.com/?ref=devopscube.com)\[Free & Enterprise\] 8. [**Drone CI**](https://www.drone.io/?ref=devopscube.com) \[Free & Enterprise\] 9. [**GoCd**](https://www.gocd.org/?ref=devopscube.com) \[Open Source\] Each CI tool has its unique features and capabilities, so it's important to choose the one that best fits your needs and requirements. ![DevOps Continuous Integration Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Continuous-Integration-Tools.png) ## Artifact Management Tools Any code/binary that has to be deployed into production should be stored and versioned in a central location. For this, we can make use of dedicated repositories that are specifically made for this purpose. Here is our list of tools. 1. [**Nexus**](https://www.sonatype.com/nexus-repository-oss?ref=devopscube.com) \[Free & Enterprise\] 2. [**Jfrog Artifactory**](https://jfrog.com/artifactory/?ref=devopscube.com) \[Enterprise\] 3. [**npm**](https://www.npmjs.com/?ref=devopscube.com) \[Free\] 4. [**Nuget**](https://www.nuget.org/?ref=devopscube.com) \[.Net\] \[Free\] ## Code Analysis Tool Code analysis tools should be in your DevOps tools list. It helps in identifying possible issues in the code prior to deployment, enabling developers to modify and enhance the software's quality. There are two types of code analysis. 1. **Static Analysis (SAST)** \- scan source code for issues like bugs, security vulnerabilities, and quality problems without running the code 2. **Dynamic Analysis (DAST)** \- run the code to detect performance issues and incorrect behavior The following are the tools. 1. [**Sonarqube**](https://www.sonarsource.com/?ref=devopscube.com) \[Free & Enterprise\] 2. [**Checkmarx**](https://checkmarx.com/?ref=devopscube.com) \[Enterprise\] 3. [**PMD**](https://github.com/pmd/pmd?ref=devopscube.com) (Open Source) ## Continuous Delivery & GitOps Tools There are lots of tools in the market labeled as "Continuous Delivery tools". As a matter of fact, there is no tool for continuous delivery because it is just an approach. But you can make use of a few process-oriented tools to achieve continuous delivery for your projects. 1. [**Jenkins**](https://jenkins.io/?ref=devopscube.com) \[Open Source\] 2. [**Argo CD**](https://argoproj.github.io/argo-cd/?ref=devopscube.com) \[Open Source\] 3. [**Flux CD**](https://fluxcd.io/?ref=devopscube.com) \[Open Source\] 4. [**Go CD**](https://www.gocd.org/?ref=devopscube.com) \[Open Source\] 5. [**Gitlab CD**](https://about.gitlab.com/stages-devops-lifecycle/?ref=devopscube.com) \[Enterprise\] 6. [**Weave GitOps**](https://www.weave.works/product/gitops-enterprise/?ref=devopscube.com) \[Enterprise\] 7. [**Jenkins X**](https://jenkins-x.io/?ref=devopscube.com) \[Open Source\] 8. [**Tekton**](https://tekton.dev/?ref=devopscube.com)\[Open Soruce\] ![Continuous Delivery & GitOps Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Infrastructure-Provisidddoning-Tools.png) ## Infrastructure Provisioning Tools [Infrastructure provisioning](https://devopscube.com/infrastructure-as-code-configuration-management/) tools are used to automate the provisioning of computing infrastructure, including virtual machines, networks, storage, and other cloud resources. This ensures there are no repetitive tasks in terms of infrastructure provisioning. Here are some of the most popular infrastructure provisioning tools that most DevOps teams use. 1. [**Terraform**](https://www.terraform.io/?ref=devopscube.com) \[Open Source & Enterprise\] 2. [**Pulumi**](https://www.pulumi.com/?ref=devopscube.com) \[Open Source & Enterprise\] 3. [**CloudFormation**](https://aws.amazon.com/cloudformation/?ref=devopscube.com)(AWS Service) 4. [**Azure Resource Manager**](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/overview?ref=devopscube.com) (Azure Service) 5. [**OpenTofu**](https://opentofu.org/?ref=devopscube.com)\[Open Source\] 6. [**Spacelift**](https://spacelift.io/?ref=devopscube.com)\[Free & Paid\] ![DevOps Infrastructure Provisioning Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Infrastructure-Provisioning-Tools.png) ## Configuration Management Tools Configuration management tools play an important role in every application and infrastructure deployment. It helps you manage the state of servers and applications and automates every configuration in an idempotent way. The following are the popular configuration management tools used by the operations team in most organizations. 1. [**Ansible**](https://www.ansible.com/?ref=devopscube.com) \[Open Source & Enterprise\] 2. [**Chef**](https://www.chef.sh/?ref=devopscube.com) \[Open Source & Enterprise\] 3. [**Puppet**](https://puppet.com/?ref=devopscube.com) \[Open Source & Enterprise\] 4. [**Saltstack**](https://www.saltstack.com/?ref=devopscube.com) \[Open Source & Enterprise\] ## **Secret Management** Tools Be it on-premise or cloud environments, efficient secret management is a must-have for any DevOps team. DevOps automation tools can integrate with secret management tools to handle secrets at runtime. Secret management within a DevSecOps framework should adopt Least Privilege Access, Regular secret Rotation, Encryption, secure storage, Audit, and Monitoring, Immutable Secrets, etc. You can implement this framework using the following tools. 1. [**Hashicorp Vault**](https://www.vaultproject.io/?ref=devopscube.com)\[Open Source & Enterprise\] 2. [**External Secrets Operator (k8s)**](https://external-secrets.io/?ref=devopscube.com) (Open source) 3. [**AWS Secrets Manager**](https://aws.amazon.com/secrets-manager/?ref=devopscube.com) \[AWS Cloud Service\] 4. [**Google Cloud Secrets Manager**](https://cloud.google.com/secret-manager?ref=devopscube.com) \[GCP Service\] 5. [**Azure Key Vault**](https://azure.microsoft.com/en-us/products/key-vault/?ref=devopscube.com) \[Azure Cloud Service\] 6. [**CyberArk Conjur**](https://github.com/cyberark/conjur?ref=devopscube.com) \[Open source\] 7. [**Sealed Secrets (k8s)** ](https://github.com/bitnami-labs/sealed-secrets?ref=devopscube.com)\[Open Source\] 8. [**Kamus**](https://github.com/Soluto/kamus?ref=devopscube.com) \[Open Source\] **Note:** While choosing a secret management tool, discuss with the organization's security team regarding security compliance. ![DevOps ecret Management Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Infrastructuure-Provisioning-Tools.png) ## **DevSecOps Tools** Let's look into the top tools in DevSecOps, which are listed below. 1. [**Grype**](https://github.com/anchore/grype?ref=devopscube.com) \[Free\] 2. [**OWASP**](https://owasp.org/www-community/Free%5Ffor%5FOpen%5FSource%5FApplication%5FSecurity%5FTools?ref=devopscube.com) \[Free\] 3. [**OSV-Scanner**](https://osv.dev/?ref=devopscube.com) \[Free\] 4. [**JFrog Xray**](https://jfrog.com/xray/?ref=devopscube.com)\[Paid\] 5. [**Black Duck**](https://www.blackduck.com/?ref=devopscube.com) \[Paid\] 6. [**Semgrep**](https://semgrep.dev/?ref=devopscube.com) \[Free\] 7. [**Veracode**](https://www.veracode.com/solutions/devsecops/?ref=devopscube.com)\[Paid\] 8. [**ZAP**](https://www.zaproxy.org/?ref=devopscube.com)\[Free\] 9. [**Burp Suite** ](https://portswigger.net/burp?ref=devopscube.com)\[Paid\] 10. [**StackHawk**](https://www.stackhawk.com/?ref=devopscube.com) \[Paid\] 11. [**Invicti**](https://www.invicti.com/?ref=devopscube.com) \[Paid\] 12. [**Detectify**](https://detectify.com/?ref=devopscube.com) \[Paid\] ![DevSecOps Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/DevSecOps-Scanning-Tools.png) ## **Config/ Service Discovery Tools** 1. [**Consul**](https://www.consul.io/?ref=devopscube.com) \[Open Source & Enterprise\] 2. [**Etcd**](https://etcd.io/?ref=devopscube.com) \[Open Source\] ## Containerization Tools 1. [**Docker**](https://www.docker.com/?ref=devopscube.com) \[Open Source & Enterprise\] 2. [**Podman**](https://devopscube.com/podman-tutorial-beginners/) \[Open Soruce\] 3. [**Buildah**](https://buildah.io/?ref=devopscube.com) \[Open Source\] ## Container Orchestration Tools With the vast adoption of [Docker](https://devopscube.com/what-is-docker/), clustering, and [orchestration tools](https://devopscube.com/docker-container-clustering-tools/) like [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) have become the pillar of many microservices-based deployments. The following are the best tools that are being used by many organizations. 1. [**Kubernetes**](https://kubernetes.io/?ref=devopscube.com) \[Open Source\] 2. [**Openshift**](https://www.redhat.com/en/technologies/cloud-computing/openshift?ref=devopscube.com) \[Open Source & Enterprise\] 3. [**Nomad**](https://www.nomadproject.io/?ref=devopscube.com) \[Open Source & Enterprise\] ## Container Security Tools 1. [**Docker bench**](https://github.com/docker/docker-bench-security?ref=devopscube.com) \[Open Source\] 2. [**Clair**](https://github.com/quay/clair?ref=devopscube.com) \[Open Source\] 3. [**Anchore Engine**](https://github.com/anchore/anchore-engine?ref=devopscube.com) \[Open Source\] 4. [**Aquasec**](https://www.aquasec.com/?ref=devopscube.com) \[Enterprise\] 5. [**Notary**](https://github.com/notaryproject/notary?ref=devopscube.com) \- \[Open Source\] 6. [**Falco**](https://falco.org/?ref=devopscube.com) \[Open Source\] 7. [**Trivy**](https://github.com/aquasecurity/trivy?ref=devopscube.com) \[Open Source\] ![DevOps Container Security Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Loggingdd-Tools.png) ## MLOps Tools 1. [MLflow](https://mlflow.org/?ref=devopscube.com) \[Open source\] 2. [Feast](https://feast.dev/?ref=devopscube.com) \[Open source\] 3. [Apache Airflow](https://airflow.apache.org/?ref=devopscube.com) \[Open source\] 4. [Kserve](https://github.com/kserve/kserve?ref=devopscube.com) \[Open source\] 5. [AWS SageMaker](https://aws.amazon.com/sagemaker/?ref=devopscube.com) \[Enterprise\] 6. [Tokentap](https://github.com/jmuncor/tokentap?ref=devopscube.com) \[Open source\] 7. [Kubeflow](https://www.kubeflow.org/?ref=devopscube.com) \[Open source\] 8. [Ray](https://www.ray.io/?ref=devopscube.com) \[Open source\] 9. [DVC](https://dvc.org/?ref=devopscube.com) \[Open source\] 10. [Evidently AI](https://www.evidentlyai.com/?ref=devopscube.com) \[Open source\] ## Policy Management **Tools** 1. [**Open Policy Agent**](https://www.openpolicyagent.org/?ref=devopscube.com) \[Open Source\] 2. [**Kyverno**](https://kyverno.io/?ref=devopscube.com) \[Open Source\] 3. [**Cloud Custodian**](https://cloudcustodian.io/?ref=devopscube.com) \[Open Source\] ## Service Mesh Tools: 1. [**Istio**](https://istio.io/?ref=devopscube.com) \[Open Source\] 2. [**Linkerd**](https://linkerd.io/?ref=devopscube.com) \[Open Source & Enterprise\] 3. [**Cilium Service Mesh**](https://github.com/cilium/cilium?ref=devopscube.com) 💡 Here is the detailed guide to [Set up Istio on Kubernetes Cluster](https://devopscube.com/setup-istio-on-kubernetes/) ## Automation Tools 1. [**StackStorm**](https://stackstorm.com/?ref=devopscube.com)\[Free\] 2. [**Tilt**](https://tilt.dev/?ref=devopscube.com)\[Open Source\] ## Logging Tools For any production environment, logging and monitoring for infrastructure & application components are a must-have to avoid system failures and application downtime. When it comes to monitoring, we have app-based and infra-based monitoring solutions. Here is the list of tools you could use for your projects. 1. [**ELK Stack**](https://www.elastic.co/elastic-stack?ref=devopscube.com) \[Open Source & Enterprise\] 2. [**Grafna Loki**](https://github.com/grafana/loki?ref=devopscube.com) \[Open Source and Enterprise\] 3. [**Fluentd**](https://www.fluentd.org/?ref=devopscube.com) \[Open Source\] 4. [**Graylog**](https://www.graylog.org/?ref=devopscube.com) \[Open Source & Enterprise\] 5. [**logz.io**](https://logz.io/?ref=devopscube.com) \[Enterprise\] 6. [**Splunk**](https://www.splunk.com/?ref=devopscube.com) \[Enterprise\] 7. [**Syslog-ng**](https://www.syslog-ng.com/?ref=devopscube.com) \[Enterprise\] ![DevOps Logging Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Logging-Tools.png) ## Monitoring & Observability Tools Monitoring & [observability](https://devopscube.com/what-is-observability/) are the key pillars of any organization. Enterprise-level Observability tools use AI and machine learning for Anomaly Detection, Predictive Maintenance, Root Cause Analysis, Enhanced Visualization and Insights, Security Monitoring, etc. The following are the key tools in the monitoring and Observability space. 1. [**Prometheus**](https://prometheus.io/?ref=devopscube.com) \[Open Source\] 2. [**Thanos**](https://github.com/thanos-io/thanos?ref=devopscube.com)\[Highly Available Prometheus Open Source Tool\] 3. [**Cilium**](https://cilium.io/?ref=devopscube.com) \-[eBPF](https://devopscube.com/ebpf/)\-based Networking, Security, and Observability \[Open Source & Enterprise\] 4. [**Falco**](https://github.com/falcosecurity/falco?ref=devopscube.com) \- Cloud Native Runtime Security \[Open Source & Enterprise\] 5. [**Calico**](https://github.com/projectcalico/calico?ref=devopscube.com) \- Pluggable eBPF-based networking and security for containers and [Kubernetes](https://devopscube.com/kubernetes-tutorials-beginners/) \[Open Source & Enterprise\] 6. [**Sensu**](https://sensu.io/?ref=devopscube.com) \[Open Source & Enterprise\] 7. [**Riemann**](http://riemann.io/?ref=devopscube.com) \[Open Source\] 8. [**Nagios**](https://www.nagios.org/?ref=devopscube.com) \[Free & Enterprise\] 9. [**Zabbix**](https://www.zabbix.com/?ref=devopscube.com) \[Open Source & Enterprise\] 10. [**Data Dog**](https://www.datadoghq.com/?ref=devopscube.com) \[Enterprise\] 11. [**New Relic**](https://newrelic.com/?ref=devopscube.com) \[Enterprise\] 12. [**App Dynamics**](https://www.appdynamics.com/?ref=devopscube.com) \[Enterprise\] 13. [**Sumologic**](https://www.sumologic.com/?ref=devopscube.com) \[Enterprise\] 14. [**Dynatrace**](https://www.dynatrace.com/?ref=devopscube.com) \[Enterprise\] 15. [**ClickStack**](https://clickhouse.com/use-cases/observability?ref=devopscube.com) \[Open Source\] 16. [**Mazmo**](https://www.mezmo.com/?ref=devopscube.com)\[Enterprise\] ![DevOps Monitoring & Observability Tools](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/Monitoring---Observability-Tools.png) ## Visualization Tools 1. [**Grafana**](https://grafana.com/?ref=devopscube.com) \[Open Source & Enterprise\] 2. [**Kibana**](https://www.elastic.co/kibana?ref=devopscube.com) \[Open Source & Enterprise\] 3. [**Tableau**](https://www.tableau.com/?ref=devopscube.com) \[Enterprise\] ## Internal Developer Platform Tools Platform engineering is becoming a core part of every organization that wants to adopt DevOps. Internal developer platforms or IDP tools play a key part in platform engineering. The following are the key tools that can be used for IDP. 1. [**Backstage.io**](https://backstage.io/?ref=devopscube.com) by Spotify \[Open Source\] 2. [**Port.io**](https://www.getport.io/?ref=devopscube.com) \[Free & Enterprise\] 3. [**Configure8**](https://www.configure8.io/?ref=devopscube.com) \[Free & Paid\] 4. [**Cortex**](https://www.cortex.io/?ref=devopscube.com) \[Enterprise\] 5. [**Opslevel**](https://www.opslevel.com/?ref=devopscube.com) \[Enterprise\] ## Collaboration Tools The following are the collaboration tools that you could use in your DevOps toolchain. These tools support both messaging and video calling. 1. [**Slack**](https://slack.com/?ref=devopscube.com) \[Free & Paid\] 2. [**Cisco Webex teams**](https://www.webex.com/team-collaboration.html?ref=devopscube.com) \[Free & Paid\] 3. [**Flock**](https://flock.com/?ref=devopscube.com)\[Free & Paid\] 4. [**Google Hangouts**](https://hangouts.google.com/?ref=devopscube.com) \[Free & Paid\] 5. [**Flow Dock**](https://www.flowdock.com/?ref=devopscube.com) \[Paid\] ## Planning & Project Management Tools The following are the planning tools that you could use in your DevOps toolchain. 1. [**Jira**](https://www.atlassian.com/software/jira?ref=devopscube.com) (Free/Paid) 2. [**Trello**](https://trello.com/?ref=devopscube.com) (Free/Paid) 3. [**Asana**](https://asana.com/?ref=devopscube.com) (Free/Paid) 4. [**Backlog.com**](https://skillslane.com/recommends/backlog/?ref=devopscube.com) (Free/Paid) 5. [**Monday.com**](https://monday.com/?ref=devopscube.com) (Paid) ## API Tools 1. [**Postman**](https://www.postman.com/?ref=devopscube.com) \[Free & Enterprise\] 2. [**hopscotch**](https://hoppscotch.io/?ref=devopscube.com) \[Open Source\] 3. [**SoapUI**](https://www.soapui.org/?ref=devopscube.com) \[Open Source & Enterprise\] 4. [**Swagger**](https://swagger.io/tools/open-source/?ref=devopscube.com) \[Open Source & Enterprise\] ## IDE Tools 1. [**Visual Studio Code**](https://code.visualstudio.com/?ref=devopscube.com) \[Free\] 2. [**Sublime Editor** ](https://www.sublimetext.com/?ref=devopscube.com)\[Free\] 3. [**Notepad++**](https://notepad-plus-plus.org/?ref=devopscube.com) \[Free\] ## Bug/Issue Tracking Tools Bug and issue-tracking tools are a must for any team dealing with code. Here is the list of tools you might want to have a look at. 1. [**Backlog**](https://skillslane.com/recommends/backlog-bug-tracker/?ref=devopscube.com) \[Free & Paid\] 2. [**Bugzilla**](https://www.bugzilla.org/?ref=devopscube.com) \[Open Source\] 3. [**Jira**](https://www.atlassian.com/software/jira/bug-tracking?ref=devopscube.com) \[Free & Paid\] 4. [**Lean testing**](https://leantesting.com/free-bug-tracker/?ref=devopscube.com) \[Free\] 5. [**Mantis**](https://www.mantisbt.org/?ref=devopscube.com) \[Free\] ## Test Automation/Performance Testing Tools Another important pillar in the [CI/CD](https://devopscube.com/learning-ci-cd-tools/) pipeline is test automation tools. The following are the automation/performance testing tools that top our list. 1. [**Selenium**](http://www.seleniumhq.org/download/?ref=devopscube.com) 2. [**UFT**](https://www.microfocus.com/en-us/products/uft-one/overview?ref=devopscube.com) 3. [**Appium**](http://appium.io/?ref=devopscube.com) 4. [**Jmeter**](https://jmeter.apache.org/?ref=devopscube.com) 5. [**Blazemeter**](https://www.blazemeter.com/?ref=devopscube.com) ## How to Choose a DevOps Tool Choosing a DevOps tool is not an easy task, as there are many tools available in the market with different capabilities and features. Here are some key factors we think you should consider when choosing a DevOps tool 1. **Project Requirements:** Understand what specific tasks you need the tool to perform. For example, if you need continuous integration and delivery, you may want to look for a tool that supports those features out of the box. 2. **Scalability**: It should be able to scale as per your project requirements 3. **Integration**: Ensure that the tool integrates well with your existing tools and public/private cloud infrastructure. 4. **Usability**: Choose a tool that is easy to use and requires minimal training for the team. It should have a user-friendly interface, good documentation, and community support. 5. **Security**: Security is paramount in DevOps, so look for a tool that has strong security features like access control, encryption, and authentication. 6. **Budget**: Consider the cost of the tool and the infrastructure cost to run the tool. Evaluate the tool's value against its price, and determine if it fits within your budget. ## Conclusion In this article, I have covered the **best DevOps tools** that could be used for your DevOps toolchain to achieve faster results and automate the whole infrastructure. With massive DevOps adoption in the IT industry, the DevOps tools list has also increased. Most tools fall under the open-source category. Also, with many applications joining the cloud native foundation, the DevOps tools adoption is increasing day by day. There is no single magical tool that **fits all the needs of DevOps**. It's about using the right tools that match your environment, team, and application. To achieve a continuous process right from development to deployment you need to use choose between various tools available in the market. You should be careful in choosing a tool for your DevOps pipeline by analyzing the team members and the amount of time it requires for the team members to learn and master it. For example, If your application is made of [Python](https://devopscube.com/python-for-devops/) and you have a huge infrastructure for your application, it is always better to choose Chef over other configuration management tools because developers will be more flexible in using a Python-based tool. So it is not mandatory that you should use a particular DevOps tool just because it is being used by many organizations. If you think that we missed an awesome tool, please share it in the comments section. We will update the article as soon as possible. ### How to Set Up EFK Stack on Kubernetes using Operators URL: https://devopscube.com/setup-efk-stack-on-kubernetes/ Last updated: 2026-01-22T10:37:44.000Z In this [Kubernetes tutorial](https://devopscube.com/kubernetes-tutorials-beginners/), you will learn how to **set up the EFK stack on a Kubernetes** cluster for log streaming, log analysis, and log monitoring. Check out part 1 in this Kubernetes logging series, where we have covered [Kubernetes logging fundamentals and patterns](https://devopscube.com/kubernetes-logging-tutorial/) for beginners. When running multiple applications and services on a Kubernetes cluster, it makes more sense to stream all of your application and Kubernetes cluster logs to one **centralized logging infrastructure** for easy log analysis. This beginner's guide walks you through the key technical aspects of Kubernetes logging using the EFK stack. ## What is EFK Stack? EFK stands for **Elasticsearch, Fluent Bit, and Kibana**. EFK is a popular and the best open-source choice for Kubernetes log aggregation and analysis. 1. **Elasticsearch** is a distributed, scalable search engine commonly used to search large volumes of log data. It is a NoSQL database based on the [Apache Lucene](https://lucene.apache.org/?ref=devopscube.com) search engine (search library from Apache). Its primary work is to store logs and retrieve logs from Fluentbit. 2. **Fluent Bit** is a log shipper. It is a small but fast open-source tool that collects and forwards logs. It collects data from various sources, processes it, and then sends it to the location where the logs are stored and analyzed. It often sends data to services such as Elasticsearch, CloudWatch, Splunk, and Stackdriver. 3. **Kibana** is a UI tool for querying, data visualization, and dashboards. It is a query engine that allows you to explore your log data through a web interface, build visualizations for event logs, and query-specific to filter information for detecting issues. You can virtually build any type of dashboards using Kibana. **Kibana Query Language (KQL**) is used for querying Elasticsearch data. Also, Elasticsearch helps solve the problem of separating huge amounts of unstructured data and is in use by many organizations. Elasticsearch is commonly deployed alongside Kibana. > **Note:** When it comes to Kubernetes, Fluent Bit is the best choice because it is a lightweight, fast tool. However, if you have a **complex log-processing** scenario, you can consider **Fluentd**. Before we move to the setup, let us check the workflow of the EFK stack. ## EFK Stack Architecture The following diagram shows the **high-level architecture of the EFK stack** we will build. ![EFK Setup Architecture](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2026/01/image-61.png) EKF components get deployed as follows, 1. **Fluentbit:-** Deployed as a Daemonset, so an agent pod will run on each node to collect the logs from workloads. 2. **Elasticsearch**:- Deployed as a statefulset as it holds the log data. We also expose the service endpoint for Fluentbit and Kibana to connect to it. 3. **Kibana**:- Deployed as a deployment and connects to the Elasticsearch service endpoint. ## Prerequisites Before beginning the installation, ensure you have the following 1. A Kubernetes cluster 2. Helm \[Local Workstation\] 3. Kubectl \[Local Workstation\] Once you have a Kubernetes cluster, we can start the setup. ## Set up ECK Operator on Kubernetes The first step is setting up **Elasticsearch** and **Kibana** on the cluster. Here, we use the **ECK (Elastic Cloud on Kubernetes) Operator** instead of the standard installation method to easily manage resources such as Elasticsearch and Kibana via Custom Resource Definitions. To install the ECK Operator, we even use the Helm chart. ### Step 1: Add Elastic Helm Repositories The first step is to add the Elastic Helm repositories to our local machine. ```bash helm repo add elastic https://helm.elastic.co helm repo update ``` Once we have added and updated all the Elastic charts, we can begin the installation. ### Step 2: Install ECK Operator To install the Elasticsearch operator, we need to choose the `elastic/eck-operator` chart. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-36.png) In production, we do not deploy the Helm chart directly. Instead, we will make the necessary customizations based on the project requirements and then deploy. To do that, first download the chart or the original values file that contains the modifiable settings. To download the ECK operator Helm chart, run the following commands. ```bash helm pull elastic/eck-operator --untar ``` The following is the directory structure of the ECK operator Helm chart. ```bash eck-operator ├── Chart.lock ├── Chart.yaml ├── LICENSE ├── README.md ├── charts │ └── eck-operator-crds │ ├── Chart.yaml │ ├── README.md │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ └── all-crds.yaml │ └── values.yaml ├── profile-disable-automounting-api.yaml ├── profile-global.yaml ├── profile-istio.yaml ├── profile-restricted.yaml ├── profile-soft-multi-tenancy.yaml ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── cluster-roles.yaml │ ├── configmap.yaml │ ├── managed-namespaces.yaml │ ├── managed-ns-network-policy.yaml │ ├── metrics-service.yaml │ ├── operator-namespace.yaml │ ├── operator-network-policy.yaml │ ├── pdb.yaml │ ├── podMonitor.yaml │ ├── role-bindings.yaml │ ├── service-account.yaml │ ├── service-monitor.yaml │ ├── statefulset.yaml │ ├── validate-chart.yaml │ └── webhook.yaml └── values.yaml ``` Here, you can see the original `values.yaml` file, but we will create a separate one based on the requirements. Copy and paste the following contents into your terminal to create a custom values file. ```bash cat << EOF > dev-es-values.yaml installCRDs: true replicaCount: 1 resources: limits: cpu: 500m memory: 512Mi requests: cpu: 100m memory: 200Mi webhook: enabled: true failurePolicy: Ignore manageCerts: true config: logVerbosity: "0" metrics: port: 9090 EOF ``` Once the custom values file is ready, we can install the ECK operator using the following command. ```bash helm upgrade --install eck-operator elastic/eck-operator \ -n es-operator \ --create-namespace \ -f dev-es-values.yaml ``` Once installation is complete, we need to ensure the Elasticsearch operator pod is running without issues. ### Step 3: Validate the Elasticsearch Operator To ensure the Operator pod runs without issues, run the following command. ```bash $ kubectl -n es-operator get po NAME READY STATUS RESTARTS AGE elastic-operator-0 1/1 Running 1 (13m ago) 14m ``` Since this is an operator, it has custom resources to manage the Elasticsearch pods. To list all the Custom Resource Definitions of the Elasticsearch, use the following command. ```bash $ kubectl get crds | grep elastic agents.agent.k8s.elastic.co 2025-12-29T05:17:50Z apmservers.apm.k8s.elastic.co 2025-12-29T05:17:50Z beats.beat.k8s.elastic.co 2025-12-29T05:17:50Z elasticmapsservers.maps.k8s.elastic.co 2025-12-29T05:17:50Z elasticsearchautoscalers.autoscaling.k8s.elastic.co 2025-12-29T05:17:50Z elasticsearches.elasticsearch.k8s.elastic.co 2025-12-29T05:17:50Z enterprisesearches.enterprisesearch.k8s.elastic.co 2025-12-29T05:17:50Z kibanas.kibana.k8s.elastic.co 2025-12-29T05:17:50Z logstashes.logstash.k8s.elastic.co 2025-12-29T05:17:50Z stackconfigpolicies.stackconfigpolicy.k8s.elastic.co 2025-12-29T05:17:50Z ``` From this list, we need to use the `enterprisesearches.enterprisesearch.k8s.elastic.co` Custom Resource to create an Elasticsearch deployment. ### Step 4: Deploy Elasticsearch Our Elastic operator is ready, so we can create a manifest to create Elasticsearch. Use the following contents to create an Elasticsearch deployment. Since this is a demo, we use an optimized Elasticsearch manifest with a single node and minimal resources. ```bash cat < elasticsearch.yaml apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: quickstart namespace: es-operator spec: version: 8.12.2 nodeSets: - name: default count: 1 # Optimized to 1 node for testing (production usually uses 3) config: node.roles: ["master", "data", "ingest"] node.store.allow_mmap: false xpack.ml.enabled: false xpack.security.enabled: true xpack.watcher.enabled: false podTemplate: spec: containers: - name: elasticsearch resources: requests: memory: 1Gi cpu: 200m limits: memory: 1.5Gi cpu: 1000m env: - name: ES_JAVA_OPTS value: "-Xms512m -Xmx512m" volumeClaimTemplates: - metadata: name: elasticsearch-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi EOF ``` 💡 For production, use minimum 3 nodes for the high availability as well as the appropriate resorces based on your project requirements. To deploy this, use the following command. ```bash kubectl deploy -f elasticsearch.yaml ``` Once the Elasticsearch is deployed, we need to check whether the ElasticSearch pods are running without any issues. ### Step 5: Validate Elasticsearch Deployment Once the deployment is completed, use the following command to list the Elasticsearch pods ```bash $ kubectl get pods -n es-operator -l common.k8s.elastic.co/type=elasticsearch NAME READY STATUS RESTARTS AGE quickstart-es-default-0 1/1 Running 0 4m2s ``` Output show that the Pod is running without any issues. Since ElasticSearch is a custom resource, we can use that to list and see the status as well. ```bash $ kubectl -n es-operator get elasticsearch NAME HEALTH NODES VERSION PHASE AGE quickstart green 1 8.12.2 Ready 2m20s ``` Elasticsearch deployment is completed, so we need to install the Kibana dashboard to visualize the logs. ### Step 6: Deploy Kibana As we deployed the Elasticsearch, we can use one of the Operator's custom resource called `kibanas.kibana.k8s.elastic.co` to deploy Kibana. Use the following Kibana manifest to deploy the Kibana Pods. ```bash cat << EOF > kibana.yaml apiVersion: kibana.k8s.elastic.co/v1 kind: Kibana metadata: name: quickstart namespace: es-operator spec: version: 8.12.2 count: 1 elasticsearchRef: name: quickstart config: server.publicBaseUrl: "http://localhost:5601" podTemplate: spec: containers: - name: kibana resources: requests: memory: 512Mi cpu: 200m limits: memory: 1Gi cpu: 1000m EOF ``` To deploy Kibana, use the following command. ```bash kubectl apply -f kibana.yaml ``` Once the Kibana installation is completed, we need to ensure that the Pods are running. ### Step 7: Validating Kibana Deployment Once the deployment is completed, use the following command to list the Kibana pods and services. ```bash $ kubectl get pods,svc -n es-operator -l common.k8s.elastic.co/type=kibana NAME READY STATUS RESTARTS AGE pod/quickstart-kb-7f694bf8db-pxlrs 1/1 Running 0 11m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/quickstart-kb-http ClusterIP 10.96.138.121 5601/TCP 11m ``` Output shows that the Kibana pod are running without any issues. Kibana also a custom resource so we can list in that way as well. ```bash $ kubectl -n es-operator get kibanas NAME HEALTH NODES VERSION AGE quickstart green 1 8.12.2 12m ``` Now, both the Elasticsearch and the Kibana is ready. Since, Kibana is a dashboard, we need credentials to login. ### Step 8: Generate Kibana Credentials The default user name of Kibana is `elastic` and to generate password, use the following command. ```bash $ kubectl get secret quickstart-es-elastic-user -n es-operator -o go-template='{{.data.elastic | base64decode}}' Yf7CCX9C4Gz9lNpnVrk8zh8Q% ``` Ignore the `%` when copy the password. ### Step 9: Port Forward Kibana Service To access the Kibana dashboard from our local machine, we need to perform port forwarding because Kibana will be deployed as a ClusterIP service. ```bash kubectl port-forward service/quickstart-kb-http -n es-operator 5601 ``` 💡 For production, deploy Kibana with a load balancer so that the load will be distributed and can be accessed with a domain name. Now, we are ready for the Kibana login. ### Step 10: Access Kibana UI To access the UI, open any of the web browser and paste the URL [https://localhost:5601](https://localhost:5601/?ref=devopscube.com) Once the login page is open, paste the default username and the password to enter into. ![The login page of the kibana dashboard.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-53.png) Once the login is completed, you will see a following page. ![The front page of the Kibana dashboard.](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-54.png) Now, both the Elasticsearch and Kibana deployments ready, so we need to deploy the Fluentbit to collect logs. ## Setup Fluent Operator on Kubernetes As like the Elastic operator, we are using an Operator for the FluentBit. Fluentbit is a light weight logging agent that collects logs from the workloads of each nodes. The collected logs will be send to the Elasticsearch for query and visualization. Elasticsearch needs to store the logs so is deployed as a StatefulSets and uses Persistent volumes as storage. To begin the installation, we need to add the Fluent Helm repository. ### Step 1: Add Fluent Helm repository To add the Fluent Helm repo on our local machine, use the following command. ```bash helm repo add fluent https://fluent.github.io/helm-charts helm repo update ``` To install the Fluent operator, we use the `fluent/fluent-operator` chart from the list. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-59.png) Once all the charts are updated, we can create custom values. ### Step 2: Create Custom Values File Before create custom values file, we can pull the chart on the local machine. To pull the chart, use the following command. ```bash helm pull fluent/fluent-operator --untar ``` Once the chart been download, you can see the following structure. ```bash fluent-operator ├── Chart.lock ├── Chart.yaml ├── README.md ├── charts │ ├── fluent-bit-crds │ │ ├── Chart.yaml │ │ ├── crds │ │ │ ├── fluentbit.fluent.io_clusterfilters.yaml │ │ │ ├── fluentbit.fluent.io_clusterfluentbitconfigs.yaml │ │ │ ├── fluentbit.fluent.io_clusterinputs.yaml │ │ │ ├── fluentbit.fluent.io_clustermultilineparsers.yaml │ │ │ ├── fluentbit.fluent.io_clusteroutputs.yaml │ │ │ ├── fluentbit.fluent.io_clusterparsers.yaml │ │ │ ├── fluentbit.fluent.io_collectors.yaml │ │ │ ├── fluentbit.fluent.io_filters.yaml │ │ │ ├── fluentbit.fluent.io_fluentbitconfigs.yaml │ │ │ ├── fluentbit.fluent.io_fluentbits.yaml │ │ │ ├── fluentbit.fluent.io_multilineparsers.yaml │ │ │ ├── fluentbit.fluent.io_outputs.yaml │ │ │ └── fluentbit.fluent.io_parsers.yaml │ │ └── values.yaml │ └── fluentd-crds │ ├── Chart.yaml │ ├── crds │ │ ├── fluentd.fluent.io_clusterfilters.yaml │ │ ├── fluentd.fluent.io_clusterfluentdconfigs.yaml │ │ ├── fluentd.fluent.io_clusterinputs.yaml │ │ ├── fluentd.fluent.io_clusteroutputs.yaml │ │ ├── fluentd.fluent.io_filters.yaml │ │ ├── fluentd.fluent.io_fluentdconfigs.yaml │ │ ├── fluentd.fluent.io_fluentds.yaml │ │ ├── fluentd.fluent.io_inputs.yaml │ │ └── fluentd.fluent.io_outputs.yaml │ └── values.yaml ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── fluent-operator-clusterRole.yaml │ ├── fluent-operator-clusterRoleBinding.yaml │ ├── fluent-operator-deployment.yaml │ ├── fluent-operator-service.yaml │ ├── fluent-operator-servicemonitor.yaml │ ├── fluentbit-clusterfilter-containerd.yaml │ ├── fluentbit-clusterfilter-kubernetes.yaml │ ├── fluentbit-clusterfilter-multiline.yaml │ ├── fluentbit-clusterfilter-systemd.yaml │ ├── fluentbit-clusterinput-metrics.yaml │ ├── fluentbit-clusterinput-nodeExporterMetrics.yaml │ ├── fluentbit-clusterinput-systemd.yaml │ ├── fluentbit-clusterinput-tail.yaml │ ├── fluentbit-containerd-config.yaml │ ├── fluentbit-fluentBit.yaml │ ├── fluentbit-fluentbit-edge.yaml │ ├── fluentbit-input-node-exporter-metrics-edge.yaml │ ├── fluentbit-input-prometheus-scrape-metrics-edge.yaml │ ├── fluentbit-lua-config.yaml │ ├── fluentbit-multilineParser-javaMultiline.yaml │ ├── fluentbit-output-elasticsearch.yaml │ ├── fluentbit-output-forward.yaml │ ├── fluentbit-output-kafka.yaml │ ├── fluentbit-output-loki.yaml │ ├── fluentbit-output-opensearch.yaml │ ├── fluentbit-output-opentelemetry.yaml │ ├── fluentbit-output-prometheus-exporter.yaml │ ├── fluentbit-output-prometheus-remote-write-edge.yaml │ ├── fluentbit-output-stackdriver.yaml │ ├── fluentbit-output-stdout.yaml │ ├── fluentbit-servicemonitor.yaml │ ├── fluentbitconfig-fluentBitConfig.yaml │ ├── fluentbitconfig-fluentbitconfig-edge.yaml │ ├── fluentd-clusterfluentdconfig.yaml │ ├── fluentd-filter-kafka.yaml │ ├── fluentd-fluentd.yaml │ ├── fluentd-output-elasticsearch.yaml │ ├── fluentd-output-kafka.yaml │ ├── fluentd-output-opensearch.yaml │ └── serviceaccount.yaml └── values.yaml ``` You can choose the required settings from the original values file and create a new custom one using the following contents. ```bash cat << EOF > dev-fluent-values.yaml Kubernetes: true operator: enable: true resources: limits: cpu: 50m memory: 50Mi requests: cpu: 10m memory: 20Mi fluentbit: enable: true resources: limits: cpu: 100m memory: 100Mi requests: cpu: 10m memory: 25Mi fluentd: enable: false EOF ``` Once the custom values file is ready, we can install the Fluent Operator as well as the Pods. ### Step 3: Install Fluent Operator and Pods Use the following command to install the Fluent operator and Fluentbit pods. ```bash helm upgrade --install fluent-operator fluent/fluent-operator -f dev-fluent-values.yaml -n fluent --create-namespace ``` Once the installation is completed, check whether the Controller and the Fluentbit agents are running. ### Step 4: Validate the Fluent Operator and Agents To see the status of the Fluent operator and Fluentbit Pods, use the following command. ```bash $ kubectl -n fluent get po,svc NAME READY STATUS RESTARTS AGE pod/fluent-bit-jtkdf 1/1 Running 1 (21m ago) 18h pod/fluent-bit-n6dtg 1/1 Running 1 (21m ago) 18h pod/fluent-bit-x2ndg 1/1 Running 1 (21m ago) 18h pod/fluent-operator-74f784fbb9-nf4gd 1/1 Running 1 (21m ago) 18h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/fluent-bit ClusterIP 10.96.151.168 2020/TCP 18h service/fluent-operator ClusterIP 10.96.71.8 8080/TCP 18h ``` To see the Custom Resource Definitions of the Fluent, use the following command. ```bash $ kubectl get crd | grep fluent clusterfilters.fluentbit.fluent.io 2025-12-29T10:32:05Z clusterfilters.fluentd.fluent.io 2025-12-29T10:32:08Z clusterfluentbitconfigs.fluentbit.fluent.io 2025-12-29T10:32:05Z clusterfluentdconfigs.fluentd.fluent.io 2025-12-29T10:32:08Z clusterinputs.fluentbit.fluent.io 2025-12-29T10:32:05Z clusterinputs.fluentd.fluent.io 2025-12-29T10:32:08Z clustermultilineparsers.fluentbit.fluent.io 2025-12-29T10:32:05Z clusteroutputs.fluentbit.fluent.io 2025-12-29T10:32:05Z clusteroutputs.fluentd.fluent.io 2025-12-29T10:32:08Z clusterparsers.fluentbit.fluent.io 2025-12-29T10:32:05Z collectors.fluentbit.fluent.io 2025-12-29T10:32:06Z filters.fluentbit.fluent.io 2025-12-29T10:32:06Z filters.fluentd.fluent.io 2025-12-29T10:32:08Z fluentbitconfigs.fluentbit.fluent.io 2025-12-29T10:32:06Z fluentbits.fluentbit.fluent.io 2025-12-29T10:32:06Z fluentdconfigs.fluentd.fluent.io 2025-12-29T10:32:08Z fluentds.fluentd.fluent.io 2025-12-29T10:32:09Z inputs.fluentd.fluent.io 2025-12-29T10:32:09Z multilineparsers.fluentbit.fluent.io 2025-12-29T10:32:07Z outputs.fluentbit.fluent.io 2025-12-29T10:32:07Z outputs.fluentd.fluent.io 2025-12-29T10:32:09Z parsers.fluentbit.fluent.io 2025-12-29T10:32:07Z ``` Now, the FluentBit pods are ready to fetch the logs from the workloads. ### Step 5: Create Cluster Output Custom Resource Now, we need to create cluster output custom resource to see the log output on the Fluentbit pods. ```bash cat < fluent-stdout-output.yaml apiVersion: fluentbit.fluent.io/v1alpha2 kind: ClusterOutput metadata: name: stdout labels: fluentbit.fluent.io/enabled: "true" spec: matchRegex: (?:kube|service)\.(?:var\.log\.containers\.counter.*) stdout: format: json EOF ``` Once the manifest is created, use the following command to deploy it. ```bash kubectl apply -f fluent-stdout-output.yaml ``` Once created the custom resource, we can list that using the following command. ```bash $ kubectl get clusteroutputs NAME AGE stdout 3d4h ``` This ensures that the Custom Resource is created. To test the log collection, we will deploy a demo application. ## Verify Fluentd Setup To verify the Fluentd installation, let us start a pod that continuously generates logs. ```bash cat << EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: counter spec: containers: - name: count image: busybox args: - /bin/sh - -c - | i=0 while true; do echo "Thanks for visiting devopscube! $i" i=$((i+1)) sleep 1 done EOF ``` Once it is deployed, the pod keeps on generate logs. ### Step 1: See Logs From Pod Once we deployed the application, we can check the logs of the same pod to ensure that it generating the logs. ```bash $ kubectl logs counter Thanks for visiting devopscube! Thanks for visiting devopscube! Thanks for visiting devopscube! Thanks for visiting devopscube! ``` This ensures that the pod is properly generating the logs, so let us check the Fluentbit pods are collecting are not. ### Step 2: See Logs Through Fluentbit Pods All the workload Pod's logs will be stored in the same node on path `/var/log/containers`. Fluentbit pods will be run as a DaemonSet, so each node has a Fluentbit pod. The agent from the same node will collect those logs from the static location. To check the logs of the Fluentbit pods, use the following command. ```bash kubectl logs -n fluent -l app.kubernetes.io/name=fluent-bit --tail=200 | grep "counter" [{"date":1767072959.964684,"log":"2025-12-30T05:35:59.964536754Z stdout F Thanks for visiting devopscube! ","kubernetes":{"pod_name":"counter","namespace_name":"default","pod_ip":"10.244.1.6","container_name":"count","docker_id":"ec9dcdd990faf638f95a1ca724efb7ecc7da7f15ed34972eabc0c5fa2b015eee","container_image":"docker.io/library/busybox:latest"}}] [{"date":1767072960.966736,"log":"2025-12-30T05:36:00.966605613Z stdout F Thanks for visiting devopscube! ","kubernetes":{"pod_name":"counter","namespace_name":"default","pod_ip":"10.244.1.6","container_name":"count","docker_id":"ec9dcdd990faf638f95a1ca724efb7ecc7da7f15ed34972eabc0c5fa2b015eee","container_image":"docker.io/library/busybox:latest"}}] ``` Here, you can see the same logs generated on the demo application. ### Step 3: Configure Elasticsearch for Kibana Copy the Elasticsearch credentials into the Fluent Bit namespace for the Fluentbit to access the Elasticsearch. ```bash kubectl get secret quickstart-es-elastic-user -n es-operator -o yaml | sed 's/namespace: es-operator/namespace: fluent/' | kubectl apply -f - ``` Create a secret for username as `elastic` ```bash kubectl create secret generic elastic-username --from-literal=username=elastic -n fluent ``` Now, we need to create or modify the Cluster Output custom resource with the credentials. This tells that how the how the FluentBit can authenticate with the Elasticsearch. ```bash cat < fluent-es-output.yaml apiVersion: fluentbit.fluent.io/v1alpha2 kind: ClusterOutput metadata: name: es labels: fluentbit.fluent.io/enabled: "true" spec: matchRegex: (?:kube|service)\.(?:var\.log\.containers\.counter.*) es: host: quickstart-es-http.es-operator.svc port: 9200 httpUser: valueFrom: secretKeyRef: name: elastic-username key: username httpPassword: valueFrom: secretKeyRef: name: quickstart-es-elastic-user key: elastic tls: verify: false index: fluent-bit suppressTypeName: "On" EOF ``` To deploy this, use the following command. ```bash kubectl apply -f fluent-es-output.yaml ``` Once the resource is deployed, we need to restart the fluent pods. ```bash kubectl delete pod -n fluent -l app.kubernetes.io/name=fluent-operator kubectl delete pod -n fluent -l app.kubernetes.io/name=fluent-bit ``` To verify the Elasticsearch index, we need the credentials first. ```bash export ES_PASSWORD=$(kubectl get secret quickstart-es-elastic-user -n es-operator -o jsonpath='{.data.elastic}' | base64 --decode) ``` To check indices, use the following command. ```bash kubectl run curl-test --rm -it --restart=Never --image=curlimages/curl -- \ -k -u elastic:$ES_PASSWORD https://quickstart-es-http.es-operator.svc:9200/_cat/indices?v ``` Now, the index is ready, so we can configure the Kibana dashboard to see the logs. ### Step 4: Configure Kibana Create a secret in the fluent namespace of the Elastic secret ```bash kubectl get secret quickstart-es-elastic-user -n es-operator -o json | \ jq 'del(.metadata.namespace,.metadata.resourceVersion,.metadata.uid,.metadata.creationTimestamp)' | \ kubectl apply -n fluent -f - ``` To see the logs in Kibana dashboard, you need to create a data view. Navigatew to Analytics -> Discover and click "Create data view" to create a new one. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-55.png) Then give a name for the dataview and select the Index patten and save the view. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-56.png) Once the dataview is created, you will be able to see the logs for the workload pods. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-57.png) Here, you can see the same logs that we get in the Fluentbit pods. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-58.png) This is how we can easily track the logs of our Kubernetes workload and is useful to identify the issues using the logs. ## Kubernetes EFK Best Practices 1. **Elasticsearch uses heap memory extensively** for filtering and caching for better query performances, so ample memory should be available for Elasticsearch. Giving more than half of total memory to Elasticsearch could also leave too less memory for OS functions which could in turn hamper Elasticsearch's capabilities. So be mindful of this! A **40-50% of total heap space to Elasticsearch is good enough**. 2. **Elasticsearch indices can fill up quickly** so it's important to clean up old indices regularly. Kubernetes cron jobs can help you do this regularly in an automated fashion. 3. Having data replicated across multiple nodes can **help in disaster recovery** and also **improve query performance**. By default, replication factor in elasticsearch is set to 1. Consider playing around with this values according to your use case. Having atleast 2 is a good practise. 4. Data which is known to be accessed more frequently can be placed in different nodes with more resources allocated. This can be achieved by running a cronjob that moves the indices to different nodes at regular intervals. Though this is an advance use case - it is good for a beginner to atleast have knowledge that something like this can be done. 5. In Elasticsearch, you an archive indices to low cost cloud storage such as aws-s3 and restore when you need data from those indices. This is a best practise if you need to **conserve logs for audit and compliance**. 6. Having multiple nodes like master, data and client nodes with dedicated functionalities is good for high availability and fault tolerance. ## Fluentd vs Fluent Bit Most of them are still confused about choosing between Fluent and FluentBit. Here, I am providing a brief comparison to give you a better idea. | Aspect | Fluent Bit | Fluentd | | -------------------- | --------------------------------- | ----------------------------------- | | **Language** | C | Ruby + C | | **Memory Footprint** | \~650 KB | \~40 MB | | **Plugins** | 100+ | 700+ | | **Best For** | Edge collection, Kubernetes nodes | Log aggregation, complex processing | | **Performance** | High throughput, low latency | Moderate throughput, feature-rich | ## Beyond EFK - Further Research This guide was just a small use case of setting up the Elastic stack on Kubernetes. Elastic stack has tons of other features which help in logging and monitoring solutions. For example, it can ship logs from virtual machines and managed services of various cloud providers. You can even ship logs from data engineering tools like Kafka into the Elastic Stack. The elastic stack has other powerful components worth looking into, such as: 1. **Elastic Metrics**: Ships metrics from multiple sources across your entire infrastructure and makes it available in elastic search and kibana. 2. **APM**: Expands elastic stack capabilities and lets you analyze where exactly an application is spending time quickly fixing issues in production. 3. **Uptime**: Helps in monitoring and analyzing availability issues across your apps and services before they start appearing in the production. Explore and research them! ## Conclusion In his **Kubernetes EFK setup guide**, we learned how to configure the logging infrastructure on Kubernetes. If you want to [become a DevOps engineer,](https://devopscube.com/become-devops-engineer/) it is very important to understand all the concepts involved in the Kubernetes logging. In the next part of this series, we are going to explore Kibana dashboards and visualization options. In Kibana, it is a good practice to **visualize data through graphs** wherever possible as it gives a much more clear picture of your application state. So don't forget to check out the next part of this series. Till then, keep learning and exploring. ### How to Clone Voice in ElevenLabs (A Beginner's Guide) URL: https://devopscube.com/clone-voice-in-elevenlabs/ Last updated: 2026-01-21T13:46:11.000Z Looking to learn how to clone your voice in ElevenLabs? You are in the right place. In this guide, you will learn how to clone your voice using ElevenLabs and how to avoid common mistakes while recording your audio. I will explain each step based on how I cloned a voice for our [DevOpsCube YouTube channel](https://www.youtube.com/c/devopscube?ref=devopscube.com) and [DevOpsCube Instagram](https://www.instagram.com/devopscube?ref=devopscube.com), with a focus on getting the right voice, tone, accent, and style. [ElevenLabs](https://elevenlabs.io/?ref=devopscube.com) is widely used by creators who make content for platforms like YouTube, Instagram, audiobooks, dubbing, podcasts and more. It is one of the top tools that does this work better. Lets get started with the tutorial. ## Steps to Clone Your Voice Using ElevenLabs Follow these steps to clone your voice with ElevenLabs in just a few minutes. ### **Step 1:** Go to the voices page Once you login to Elevenlabs, in the dashboard, look at the left-side menu and click **Voices**. Once you enter the page, on the right side, you will see a button called **Create or Clone a Voice**. Click on it. ![Elevenlabs voices page and button to create a professional voice](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-25.png) ### **Step 2:** Upload or record your audio In the next page, you will see two options. - If you already have pre-recorded audio, click **Upload Sample** and upload your file - If you don’t have any audio, click **Record Yourself** to record your voice live. You can also select the language while recording. ![Professional voice cloning page](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-26.png) For better and more accurate results, I recommend uploading or recording at least **2 hours of audio**. ElevenLabs suggests recording up to **3 hours** for a more professional-quality voice clone. 💡 We used almost 2 hours of recorded audio to train the voice model, and the results are very impressive. So more data = better clone. ### **Step 3:** Verify your voice Once your audio is uploaded, ElevenLabs will ask you to verify your voice. The verification and cloning process may take a few minutes or sometimes a few hours. Fine-tuning the voice takes time, so the processing may be longer in some cases. Once this step is complete, your voice will be ready to use. Yes, now the voice is ready to use. ### **Step 4:** Use your professional voice You can find your cloned voice on the **Voices** page with the name you saved as shown below. ![Create voice clone](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-27.png) To use it, go to **Text to Speech,** paste or write your script, and select your cloned voice from the right-side panel. Click **Generate Speech**, which appears below your script. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-28.png) Your audio will be generated, and you can use it for videos, reels, or other content. ![click generate speech button](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-29.png) For example, we recently created audio for our Instagram reel using ElevenLabs. Here is the audio👇 Audio Clone Created By Elevenlabs 0:00 /68.623625 1× I hope this gives you a clear idea of how [ElevenLabs](https://elevenlabs.io/?ref=devopscube.com) works and why why it lives up to the hype. 🎁 ****Note:** If you are planning to get the pro, creator or any other plan, you can use an [Elevenlabs discount](https://devopscube.com/elevenlabs-discount/) to get a massive discount****(Upto 50%)**. ## Mistakes to Avoid While Recording Your Audio To be honest, cloning the voice is the easy part. The hard part is recording your voice and making it sound natural. Let me explain why with a few points. ### Record in a Quiet Environment Finding a quiet place to record is not easy for everyone, but you need to create that space. If you record with background noise like traffic, fans, or other people talking, the AI gets confused, and the cloned voice will not sound right. Always try to record in a quiet room. For me, the best time to record is late at night after 11 PM or early morning around 6 AM, when my surroundings are quiet. ⚠️ ****Note:** ElevenLabs has a background noise cancellation feature, which you can use if you do not have a perfectly quiet space. ### Use a Clear and Decent Microphone I am not telling you that you need an expensive studio setup. Just use a decent microphone that captures your voice clearly. A clear voice helps ElevenLabs clone your voice faster and more accurately. ### Speak Like You Many people, including me, change their voice when they start recording. Our natural tone will change, and the voice starts sounding robotic. Don't make that mistake. Just speak casually like you are explaining something to a friend. Use your natural tone, pauses, and normal way of speaking. This helps ElevenLabs clone your real voice, not a forced or artificial one. ### Add Pitch and Emotion If you want your cloned voice to sound real, you need to show ElevenLabs how you normally speak. Smile while speaking, ask questions, speed up and slow down your speech. These small variations make your voice sound more human and natural. ### Do not Mispronounce Words This is a common mistake. If you mispronounce a word, ElevenLabs will learn that mistake and repeat it. That recording then becomes useless. So stay focused and pronounce words clearly and correctly. ## Conclusion In this guide, I explained how to clone your original voice using ElevenLabs. The tech behind ElevenLabs is **neural network–based voice models**. These models are trained on **large amounts of human speech** to learn how human voices sound, how speech flows and how emotion and tone work. That is why we are able to create almost perfect clone of our voices. Also, this is the same tool many small and big influencers and video creators are using today, and they strongly recommend it. I also recommend it for creators who want professional-quality voice cloning. For example, top tech creators like [Varun Maya](https://www.instagram.com/thevarunmayya?ref=devopscube.com) use ElevenLabs heavily for voice cloning and HeyGen for video avatars in his Instagram reels. They have seen great success in distributing content using AI. If you still have any doubts about cloning your voice, drop them in the comments. I will help you right away. If you want to know more valuable tools like this, here is the list of the [best content creation tools](https://devopscube.com/content-creation-tools/). ⚠️ I have published a detailed [ElevenLabs review](https://devopscube.com/elevenlabs-review/) from my experience. Check it out to know more about this tool. ### How to Use Kubernetes Gateway API for Istio Service Mesh (GAMMA Approach) URL: https://devopscube.com/gateway-api-for-service-mesh/ Last updated: 2026-04-24T03:09:14.000Z In this blog we will look at how to use the Gateway API for internal [Istio](https://devopscube.com/istio-architecture/) traffic management (east-west traffic) using the GAMMA approach. We will also look at a real world case study of GAMMA approach used in production. In the earlier blog about [Istio ingress with Gateway API](https://devopscube.com/istio-ingress-kubernetes-gateway-api/), we learned how Gateway API works with the Istio gateway controller to manage ingress and egress traffic. But the [**Gateway API**](https://devopscube.com/setup-envoy-gateway-api/) **is not only for ingress**. With the GAMMA initiative, we can now use Gateway API for internal service-to-service routing inside the mesh as well. Also, when using [Istio Ambient Mesh mode](https://devopscube.com/setup-istio-ambient-mode/), the L7 traffic management is managed using gateway API. First, let’s understand what GAMMA is. ## GAMMA: The Future of Mesh Routing [GAMMA](https://gateway-api.sigs.k8s.io/mesh/gamma/?ref=devopscube.com) stands for **Gateway API for Mesh Management** and Administration. [Kubernetes Gateway API](https://devopscube.com/kubernetes-gateway-api/) was originally designed to manage ingress traffic. That means routing requests coming from outside the cluster to services inside the cluster (north-south traffic). GAMMA extends Gateway API to support **internal service-to-service traffic** (east-west traffic). This allows us to use the same Gateway API resources like **`HTTPRoute`** and **`GRPCRoute`** for both ingress and mesh traffic. 💡 Ideally we we are shifting away from Istio's proprietary `VirtualService` and use the Kubernetes standard `HTTPRoute` Although we use the same **`HTTPRoute`** object, there is one **key difference** when using it for internal mesh traffic. When HTTPRoute is used for ingress traffic, we normally set the **parentRefs to a Gateway**, because the Gateway owns the IP and ports that receive external requests. But in the GAMMA approach, **HTTPRoute parentRefs references a Kubernetes Service** instead of Gateways. The HTTPRoute then controls how traffic arriving at that service is routed (weighting, traffic splitting, and more). ![Gateway API for Mesh Management](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-5.png) Another important point is that you cannot use the **shared service + subsets** **pattern** like we do in Istio with VirtualService and **`DestinationRule`**. The reason is that Gateway API is designed to be a vendor-neutral standard that **works across different service mesh** implementations, not only Istio. Now that we have an understanding of GAMMA, lets look at how to implement it practically. ## Implementing Canary Deployments with GAMMA In this hands-on setup, we will implement a canary deployment with GAMMA approach. Here is what we are going to build. 1. Deploy two versions of the app 2. Expose them through their own services 3. Create a shared service that acts as the **parent reference** for the **`HTTPRoute`** 4. Create an HTTPRoute with the shared service as the parentRef, splitting traffic 90/10 between the two service endpoints 5. Create two DestinationRules to apply Istio features to the application traffic 6. Finally, validate the setup with a client request. ![Implementing Canary Deployments with GAMMA](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/12/image-6.png) 📌 I am showing a canary setup for demo purposes. You can also route all traffic to a single service endpoint if needed. ## Setup Prerequisites To follow this setup, you need to have the following. 1. Kubernetes cluster with Istio Installed 2. Gateway API CRD's installed in the cluster. 📌 Refer [Istio Installtion Guide](https://devopscube.com/setup-istio-on-kubernetes/) if you dont have a Istio setup ready. ## Create Istio Enabled Namespace We will deploy all the objects in the istio-test namespace. If you don’t already have this namespace, use the command below to create it and enable Istio for it. ```bash kubectl create ns istio-test kubectl label namespace istio-test istio-injection=enabled ``` ## Deploy the Workloads (Backend v1 & v2) For testing Gateway API with the mesh, we will deploy two versions of the application and expose them through separate services (`backend-v1` and `backend-v2`) Use the following manifest to deploy the apps and services. ```yaml cat <<'EOF' | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: backend-v1 namespace: istio-test spec: replicas: 3 selector: matchLabels: { app: backend, version: v1 } template: metadata: labels: { app: backend, version: v1 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v1"] ports: - containerPort: 5678 --- apiVersion: apps/v1 kind: Deployment metadata: name: backend-v2 namespace: istio-test spec: replicas: 2 selector: matchLabels: { app: backend, version: v2 } template: metadata: labels: { app: backend, version: v2 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v2"] ports: - containerPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend-v1 namespace: istio-test spec: selector: app: backend version: v1 ports: - name: http port: 80 targetPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend-v2 namespace: istio-test spec: selector: app: backend version: v2 ports: - name: http port: 80 targetPort: 5678 EOF ``` ## Configure the Root Service Now we have `backend-v1` and `backend-v2` services. However, clients in the mesh need a single stable address (e.g., `http://backend`) to call. You can call this the **root service**. The mesh will then **split between v1 and v2 services.** Use the following YAML to create the shared service (root service). ```yaml cat <<'EOF' | kubectl apply -f - apiVersion: v1 kind: Service metadata: name: backend namespace: istio-test spec: selector: app: backend ports: - name: http port: 80 targetPort: 5678 EOF ``` ## Deploy HTTPRoute For Canary Routing Now, lets create an `HTTPRoute` that binds to the shared `backend` Service. We will define a **90/10 c**anary **traffic splitting.** Meaning,90% of traffic goes to V1 backend, and 10% goes to V2 backend. ```yaml cat <<'EOF' | kubectl apply -f - apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: backend-split namespace: istio-test spec: parentRefs: - name: backend kind: Service group: "" port: 80 rules: - backendRefs: - name: backend-v1 port: 80 weight: 90 - name: backend-v2 port: 80 weight: 10 EOF ``` Validate the HTTPRoute ```bash $ kubectl get HTTPRoute -n istio-test NAME HOSTNAMES AGE backend-split 9m48s ``` ## Destination Rule To Apply Istio Features The `HTTPRoute` we created in the previous step primarily handles the routing. Meaning, it knows which service to send traffic. But it cannot implement advanced *connection* settings like Load Balancing algorithms, Circuit Breaking, outlier detection etc. It is still handled by the the Istio **DestinationRule**. 💡 ****Note:** The Gateway API is developing `BackendLBPolicy`, for load-balancing, session-persistence, LB behavior etc but currently, `DestinationRule` is the standard way to configure this in Istio For our canary traffic splitting, lets create DestinationRule that applies `ROUND_ROBIN` algorithm and `ISTIO_MUTUAL` tls mode for encryption. We create two separate DestinationRule becuase, `backend-v1` and `backend-v2` are treated as independent destinations. Deploy the DestinationRule using the following manifest. ```yaml cat < While the Gateway APIs offer a lot of rich routing functionality, it does not yet cover 100% of Istio’s feature set. (istio.io) Now, lets understand the Gateway API integration practically. 📚 Understanding of Gateway API basics is very important for this implementation. If you are new to Gateway API, please refer to our [Kubernetes Gateway API tutorial](https://devopscube.com/kubernetes-gateway-api/) ## Setup Prerequisites To get started with this setup you need an Istio-enabled [Kubernetes cluster.](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) We have covered the full Istio setup using sidecar mode in a detailed blog. Please refer to the following guide for that setup. > [Set up Istio on a Kubernetes Cluster](https://devopscube.com/setup-istio-on-kubernetes/) 📌 Since this is a continuation blog, we will ****use the same sample applications we deployed** in the istio setup guide for testing ingress. So please make sure to deploy them as well. ## Install Gateway API CRD's The first step is to install the Kubernetes Gateway API CRDs. This way Kubernetes understands the Gateway API [custom objects](https://devopscube.com/kubernetes-objects-resources/) and Istio can watch for those Gateway API objects and act on them. To install the Gateway API CRDs, use the following command. ```bash kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml ``` Once the installation is completed, we can list them to ensure the installation. ```bash $ kubectl get crds | grep gateway gatewayclasses.gateway.networking.k8s.io 2025-05-21T13:49:23Z gateways.gateway.networking.k8s.io 2025-05-21T13:49:29Z grpcroutes.gateway.networking.k8s.io 2025-05-21T13:49:32Z httproutes.gateway.networking.k8s.io 2025-05-21T13:49:35Z referencegrants.gateway.networking.k8s.io 2025-05-21T13:49:36Z ``` The output confirms that the CRDs have been successfully installed and that they are used to define the routing rules. 💡 Apart from Gateway API CRDs, Kubernetes requires Controller to configure the underlying proxies and manage traffic (e.g., Nginx Gateway Fabric Controller) However, since we are using Istio, its ****built-in gateway controller** acts as a [Gateway API controller](https://devopscube.com/setup-envoy-gateway-api/). So we do not need to install a separate controller. ## Default Istio GatewayClass To use Gateway API, the first thing that we need is the **GatewayClass**. It tells Kubernetes **which controller** will implement the gateways. In our case its the istio **`gateway-controller`.** When we install Istio on a Kubernetes cluster, it automatically creates a **`GatewayClass`**. You can list the GatewayClasses using the following command. ```bash $ kubectl get gc NAME CONTROLLER ACCEPTED AGE istio istio.io/gateway-controller True 3h43m istio-remote istio.io/unmanaged-gateway True 3h43m ``` Here, you can see two Gateway Classes. - `istio` \- This is Istio's built-in controller that manages Gateway resources. It creates and manages actual gateway pods (like istio-ingressgateway) in your cluster. - `istio-remote` \- It references gateways that exist in another. Meaning the controller is in another cluster and especially useful for the multi cluster mesh management. Next, let’s deploy a demo application that we will use to test ingress connectivity using the Gateway API. ## Deploy Demo Application For this demo, we are using the same application [deployment](https://devopscube.com/kubernetes-deployment-tutorial/) from the Istio setup blog. If you are already following that blog and have the demo app running, you can skip this step. Otherwise, you can follow the deployment instructions here. Use the following manifest to deploy the demo apps and its related service endpoints (**`backend-v1`** & **`backend-v2`**). ```yaml cat <<'EOF' | kubectl apply -f - apiVersion: v1 kind: Namespace metadata: labels: istio-injection: enabled name: istio-test --- apiVersion: apps/v1 kind: Deployment metadata: name: backend-v1 namespace: istio-test spec: replicas: 3 selector: matchLabels: { app: backend, version: v1 } template: metadata: labels: { app: backend, version: v1 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v1"] ports: - containerPort: 5678 --- apiVersion: apps/v1 kind: Deployment metadata: name: backend-v2 namespace: istio-test spec: replicas: 2 selector: matchLabels: { app: backend, version: v2 } template: metadata: labels: { app: backend, version: v2 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v2"] ports: - containerPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend-v1 namespace: istio-test spec: selector: app: backend version: v1 ports: - name: http port: 80 targetPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend-v2 namespace: istio-test spec: selector: app: backend version: v2 ports: - name: http port: 80 targetPort: 5678 EOF ``` Once the deployment is completed, ensure that the resources are running without any issues as given below. ```bash $ kubectl -n istio-test get po,svc NAME READY STATUS RESTARTS AGE pod/backend-v1-7c88547fc6-9755x 2/2 Running 0 10s pod/backend-v1-7c88547fc6-97hvg 2/2 Running 0 10s pod/backend-v1-7c88547fc6-tdjb2 2/2 Running 0 10s pod/backend-v2-86c767bf6b-9vplh 2/2 Running 0 10s pod/backend-v2-86c767bf6b-bs2kg 2/2 Running 0 10s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/backend-v1 ClusterIP 10.100.171.193 80/TCP 10s service/backend-v2 ClusterIP 10.100.185.97 80/TCP 9s ``` ## Creating Istio Ingress With Gateway API Now that the required application and other basic setup is ready, we can start configuring ingress using Gateway API objects. Follow the steps given below. ### Step 1: Create a Gateway **Gateway** is a Custom Resource of Gateway API where we define what type of traffic the Controller should handle. For this demo, we will use the following. - Traffic type - **HTTP** - Protocol - **80** - Gateway Class - **istio** When we deploy a Gateway object, the Gateway controller (Istio controller) **creates an Envoy proxy pod** to route traffic to your backend pods. It also **creates an external load balancer** (on the cloud) so that external traffic can reach the proxy. Copy the following code on your terminal to create a Gateway YAML configuration file. ⚠️ We are tested this setup on [AWS EKS](https://devopscube.com/create-aws-eks-cluster-eksctl/). Thats why we are using AWS-specific annotations for the load balancer. Please update these annotations based on the cloud provider you are using. The rest of the configuration remains the same. ```bash cat << EOF > istio-gateway.yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: istio-gateway namespace: istio-test annotations: service.beta.kubernetes.io/aws-load-balancer-type: "nlb" spec: gatewayClassName: istio listeners: - name: http protocol: HTTP port: 80 allowedRoutes: namespaces: from: Same EOF ``` To apply this configuration, use the following command. ```bash kubectl apply -f istio-gateway.yaml ``` It will deploy a proxy pod (Data plane controller) and service type **`LoadBalancer`** in the **`istio-test`** namespace. Use the following command to validate that the proxy pod and service are deployed. ```bash $ kubectl get po,svc -n istio-test -l gateway.networking.k8s.io/gateway-name=istio-gateway NAME READY STATUS RESTARTS AGE pod/istio-gateway-istio-67584dc449-qmkpx 1/1 Running 0 4m31s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/istio-gateway-istio LoadBalancer 10.100.77.16 ad8805f370c854e749a18ed03f2bb2e0-4940c029a9c83906.elb.us-west-2.amazonaws.com 15021:31161/TCP,80:31432/TCP 4m31s ``` If you describe the Proxy pod, you will see **`istio/proxyv2`** image being used. It is a envoy based proxy. Now use the following command list the Gateway object and see its created and valid. ```bash $ kubectl -n istio-test get gateway NAME CLASS ADDRESS PROGRAMMED AGE istio-gateway istio ad8805f370c854e749a18ed03f2bb2e0-4940c029a9c83906.elb.us-west-2.amazonaws.com True 17s ``` In the above output, **`...9a9c83906.elb.us-west-2.amazonaws.com`** is the DNS name of the created [Network Load Balancer](https://devopscube.com/aws-load-balancers/). If you are using Google Cloud or Azure, you will see the respective load balancer endpoint instead. Now our gateway is ready. This means **traffic from external sources** can reach the cluster through the Gateway load balancer that was created. Next, we need to configure routes so that the gateway proxy pod inside the cluster knows **which pods** to send the traffic to and **how** it should route that traffic. ### Step 2: Create an HTTPRoute **`HTTPRoute`** is another Gateway API Custom Resource to defines the routing rules (where to send the traffic internally). In the **`HTTPRoute`** configuration, we will primarily define the following. - The Gateway that we created in previous step. - A hostname - The backend services (Demo app services **`backend-v1`** & **`backend-v1`**) - Define weights (50 - 50) to split the traffic between two services (canary based) 💡 If you have a valid domain (for example, managed in Route53), you can use it for this testing. Even if you do not have one ****continue with the following hostname configurations**. We will cover local DNS resolution in the next steps. To create a **`HTTPRoute`** manifest, copy the following in the terminal. ```bash cat << EOF > istio-httproute.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: backend-route namespace: istio-test spec: parentRefs: - name: istio-gateway namespace: istio-test hostnames: - "test.devopscube.com" rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: backend-v1 port: 80 weight: 50 - name: backend-v2 port: 80 weight: 50 EOF ``` To apply this, use the following command. It will create a HttpRoute in the **`istio-test`** namespace. ```bash kubectl apply -f istio-httproute.yaml ``` Now, validate the **`HttpRoute`** resource using the following command. ```bash $ kubectl -n istio-test get httproutes NAME HOSTNAMES AGE backend-route ["test.devopscube.com"] 85s ``` Now that we have defined the routing rules, the gateway proxy pod knows which Kubernetes service endpoint to send the traffic to and how to split it in a canary style. ### Step 4: Create a Destination Rule The Gateway API standard doesn't yet have mature features for circuit breaking or connection pooling. So, if you want to use Istio **features like circuit breaking, custom load-balancing algorithms, mTLS or rate limiting** at the application service level, you need to add Istio **`DestinationRule`** resources for those services. Istio **`DestinationRule`** defines policies that apply to traffic intended for a service **after** routing has occurred. For example, in our **`DestinationRule`** we are going to define **`ROUND_ROBIN`** algorithm, **`maxConnections`** and Outlier Detection. Copy the following to the terminal to create the `DestinationRule` ```bash cat << EOF > istio-destinationrule.yaml apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: backend-destination-rule namespace: istio-test spec: host: backend-v1.istio-test.svc.cluster.local trafficPolicy: loadBalancer: simple: ROUND_ROBIN connectionPool: tcp: maxConnections: 100 http: http1MaxPendingRequests: 50 http2MaxRequests: 100 maxRequestsPerConnection: 2 outlierDetection: consecutive5xxErrors: 5 interval: 30s baseEjectionTime: 30s maxEjectionPercent: 50 --- apiVersion: networking.istio.io/v1beta1 kind: DestinationRule metadata: name: backend-v2-destination-rule namespace: istio-test spec: host: backend-v2.istio-test.svc.cluster.local trafficPolicy: loadBalancer: simple: ROUND_ROBIN connectionPool: tcp: maxConnections: 100 http: http1MaxPendingRequests: 50 http2MaxRequests: 100 maxRequestsPerConnection: 2 outlierDetection: consecutive5xxErrors: 5 interval: 30s baseEjectionTime: 30s maxEjectionPercent: 50 EOF ``` To apply, use the following command. ```bash kubectl apply -f istio-destinationrule.yaml ``` It creates two destination rules for each backend services. Both uses the same traffic policy configurations. Now list the **`DestinationRule`** resources and validate it. ```bash $ kubectl -n istio-test get destinationrules NAME HOST AGE backend-destination-rule backend-v1.istio-test.svc.cluster.local 106m backend-v2-destination-rule backend-v2.istio-test.svc.cluster.local 106m ``` ### Step 5: Configure Local DNS Resolution (Optional) ⚠️ In production, use a DNS provider like Route53 with a valid domain name. Now, we are going to create a temporary DNS entry on our local machine so that we can test the traffic with the `test.devopscube.com` hostname we used in the HttpRoute. If your load balancer endpoint is a DNS name, get the public IP of the load balancer using the following command. 📌 Ignore this step if your cloud load balancer already provides a direct IP address. ```bash dig +short ``` You will get a similar like output. ```bash $ dig +short ad8805f370c854e749a18ed03f2bb2e0-4940c029a9c83906.elb.us-west-2.amazonaws.com 35.95.166.48 ``` Now, open the `/etc/hosts` on your local machine and paste IP and the hostname name you have given in the **HTTPRoute** config. For example, ``` 35.95.166.48 test.devopscube.com ``` Here is how it looks ```bash $ sudo vim /etc/hosts Password: $ cat /etc/hosts ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 35.95.166.48 test.devopscube.com ``` Once the IP is mapped with the hostname, save the file and exit. Now our entire ingress configuration is ready. The next step is to validate the end-to-end traffic flow. ### Step 4: Validate the Ingress Traffic Flow Now lets test the complete ingress traffic flow. The following linux script runs the `curl test.devopscube.com` command 10 times in a row. This helps us validate whether the canary traffic split is happening between the v1 and v2 services as configured in the `HttpRoute` ```bash for i in {1..10}; do curl test.devopscube.com; done ``` The following output shows that the external traffic is properly routed to both backend services. ```bash $ for i in {1..10}; do curl test.devopscube.com; done hello from backend v1 hello from backend v2 hello from backend v2 hello from backend v1 hello from backend v2 hello from backend v2 hello from backend v1 hello from backend v1 hello from backend v2 hello from backend v1 ``` ## Conclusion In this blog we have covered how to configure Istio + Kubernetes Gateway API to manage ingress (north-south) traffic in a Kubernetes cluster. We practically walked through how a Gateway + HTTPRoute can **expose Istio mesh services externally.** With the [graduation of mesh support in Gateway ](https://istio.io/latest/blog/2024/gateway-mesh-ga/?ref=devopscube.com)API, Gateway API supports internal (east-west) traffic routing inside a service mesh via the [GAMMA Initiative ](https://gateway-api.sigs.k8s.io/mesh/gamma/?ref=devopscube.com)(Gateway API for Mesh Management and Administration). That means Gateway API is no longer limited just to ingress/egress. You can use HTTPRoute, GRPCRoute, etc..to declare how services talk to each other inside the Istio service mesh. This actually brings **consistency to both external and internal** traffic management. Refer the[ Managing East-West Traffic with Gateway API](https://devopscube.com/gateway-api-for-service-mesh/) blog to see it in action. If you want a real world example, you can look at Careem use case. They recently migrated to Istio with Gateway API + GAMMA to enable a “define-once, route-everywhere” model. Also, in [Istio ambient mesh mode](https://devopscube.com/setup-istio-ambient-mode/), the Waypoint porxy for L7 traffic managment is managed through Gateway API. ### Sandboxed Containers: What They Are and How They Isolate Workloads URL: https://devopscube.com/sandboxed-containers/ Last updated: 2025-11-26T02:25:21.000Z In this blog, we will look at how sandboxed containers improve workload isolation, reduce security risks, and whether they’re right for the infrastructure. By the end of this blog, you will have learned the following: - Sandboxed containers - Container runtime and host kernel access - Performance trade-offs - Organizations that use sandboxed containers in production - Should you use sandboxed containers? ## What Are Sandboxed Containers? Sandboxed containers are a type of container runtime that provides an additional layer of security by isolating containers from the host operating system (OS) and other containers. You can also call it as virtualised containers. Here is how it works. Unlike traditional containers (e.g., Docker, which shares the host OS kernel), sandboxed containers use lightweight virtualization or other isolation mechanisms to fully isolate them. This prevents container breakout attacks. Meaning that a container can't escape its limits and gets access to the host OS Kernel or other containers. This ensures stronger security for multi-tenant environments (when many users/orgs share the same system.) Some popular sandboxed container runtimes include: - [**gVisor**](https://gvisor.dev/?ref=devopscube.com)(Developed by Google) – A user-space kernel that intercepts syscalls to provide extra security. - [**Kata Containers**](https://katacontainers.io/?ref=devopscube.com) – Runs each container inside a lightweight VM, ensuring strong kernel isolation. ![](https://blog.techiescamp.com/content/images/2025/02/image-12.png) Instead of sharing the host kernel directly, these runtimes introduce an additional layer that limits direct access to system calls. It isolates the workloads much better than standard container runtimes. For example, - gVisor has its own "mini-kernel" (called **Sentry**) that runs in user space (not directly on the host OS). When an app inside the container makes a syscall, gVisor **intercepts** it and **emulates** (pretends to handle) it instead of letting it go directly to the host OS. - Kata runs containers in lightweight VMs. The VM kernel typically allows \~200-300 syscalls (similar to a normal Linux kernel). The app inside the container makes syscalls to the VM's kernel, not the host OS kernel. ## Container Runtime and Host Kernel Access To understand sandboxed containers, we first need to know how much access a typical container has to the host kernel. Most containers today run on container runtimes such as `containerd` or `cri-o`. Let’s consider what happens when you run a basic container: - It uses the host’s system calls directly. - It shares the same kernel version and capabilities. - It is controlled through Linux capabilities, which limit privileged operations. ![](https://blog.techiescamp.com/content/images/2025/02/image-11.png) However, despite these controls, containers can still, - Make direct system calls (\~300) to the kernel, which could be exploited if there are vulnerabilities. - Read kernel version and system information. - Access kernel modules and subsystems (though with some restrictions). This level of access poses a risk when running untrusted workloads, especially in multi-tenant environments like CI/CD platforms. ## Performance Trade-offs With good security benefits, sandboxed containers come with some performance trade-offs. Since sandboxed containers rely on user-space kernels, they may consume more CPU and memory compared to traditional containers. Unlike standard containers, which start almost instantly, sandboxed containers may take slightly longer to boot due to the added virtualization layer. ## Organizations that Use Sandboxed Containers Following are some of the top organizations that use sandboxed containers in production: 1. OpenAI is using gVisor runtime to run some of its high-risk tasks. 2. Cloudflare uses gVisor for its building infrastructure 3. NVIDIA uses Kata Containers to support AI/ML workloads 4. Blink is a DevOps platform that uses gVisor for the EKS Pods to run securely. ## Use Case Let's say you are building a SaaS-based CI/CD platform like CircleCI or BuildKite, where other companies run their build pipelines. Let's say this service lets users define their own build steps and run any Docker container they need for builds. Ultimately, these build jobs run as containers or pods inside your cluster, and the separation between companies is mostly logical. While companies are logically separated, they still **share the same underlying system kernel.** Now, let’s say someone on your team mistakenly allows **privileged mode** in pod security settings. This means a compromised build job could gain access to the host system. If that happens, one company’s build could access another company’s source code, secrets, or sensitive data. This is a huge security risk! So how do you avoid this? To prevent such risks, we need stronger isolation between builds. This is where Sandboxed Containers come into play. 💡 ****Note:** The use case is just an example. ## Should You Use Sandboxed Containers? If you're running sensitive, multi-tenant workloads like: - CI/CD services > Serverless functions (e.g., AWS Lambda, Cloud Run) - SaaS platforms where customers execute arbitrary code Then sandboxed containers are a great way to minimize risk and ensure better isolation. However, if your workloads run in a trusted environment (such as an internal microservices architecture), the **overhead may not be worth it.** ## Conclusion Although sandboxed containers have certain performance trade-offs, some enterprises use this technology to run their workflows securely. Companies that use sandboxed containers have made performance tweaks to make them work at almost the same speed as normal containers. Hope this blog serves as a primer on sandboxed containers. Want to Stay Ahead in DevOps & Cloud? Join the Free Newsletter Below. ### Setup Rancher on Kubernetes Cluster URL: https://devopscube.com/setup-rancher-on-kubernetes-cluster/ Last updated: 2025-11-21T07:49:45.000Z In this blog, you will learn to set up Rancher on your Kubernetes cluster to manage your multiple Kubernetes clusters. By the end of this blog, you will have learned. 1. Understand key Rancher features 2. The installation of Rancher on Kubernetes 3. Adding Kubernetes clusters on Rancher ## What is Rancher? Lest say you are working in a project that runs applications on Kubernetes. At first, you might have just one Kubernetes cluster. But as the project grows, you may have clusters in different environments for development, testing, and production Also, you might have clusters spread across different cloud providers (AWS, Azure, Google Cloud) for multi-cloud strategy. Some clusters might be running in your own data centers. Now, how do you manage all these clusters? How do you plan the upgrades? How do you enforce security policies for all the clusters? Well, here is where Rancher comes in to play. [Rancher](https://github.com/rancher/rancher?ref=devopscube.com) is a free management platform that acts as a "control center" for all your Kubernetes clusters. You can manage all your clusters from a single interface, whether they are in AWS, Azure, on-premises, or at the edge. When we say Rancher helps "manage" clusters, here is what you can actually do with it. 1. **Cluster Operations:** You can [create a new Kubernetes cluster](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) with a few clicks. You can connect clusters you already have running anywhere. You can even safely [upgrade kubernetes versions](https://devopscube.com/upgrade-kubernetes-cluster-kubeadm/) across all clusters without downtime. 2. **Application Management:** You can deploy apps to any cluster from a catalog (like an app store for Kubernetes). Also you can move, update applications across multiple clusters simultaneously. 3. **Security & Compliance:** You can create security policies like "[no containers can run as root user](https://devopscube.com/run-kubernetes-pod-as-non-root-user/)". You can also scan for [vulnerabilities](https://devopscube.com/scan-docker-images-using-trivy/) in your running containers. 4. **Day-to-Day Operations:** You can view logs from all your applications in one place. Also, you can [debug pods](https://devopscube.com/troubleshoot-kubernetes-pods/) by performing SSH into containers without complex kubectl commands. Now that you have a high level idea of what Rancher is, lets get our hands dirty with a practical setup. So that it will all make sense for you. ## Prerequisites - Kubernetes cluster (v1.33 +) - Nginx Ingress Controller \[Kubernetes\] - Certmanager \[Kubernetes\] - [Helm](https://devopscube.com/create-helm-chart/) \[Local Workstation\] - [Kubectl](https://devopscube.com/kubectl-set-context/) \[Local Workstation\] If you want to know more about the hardware requirements, please refer to this [official documentation](https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/installation-requirements?ref=devopscube.com). Once you ensure all the prerequisites are available, we can pull the Helm chart to begin the installation. > **Note:** At the time of writing this blog, Rancher is not supported for Kubernetes v1.34. ## Set up Nginx Controller (Prerequisite) Ingress controller and Cert Manager are two important components that are needed for the Rancher setup. The Rancher needs the Nginx Ingress Controller to route incoming traffic. To set up the Nginx Ingress Controller on your Kubernetes cluster, follow the guide "[Setup Nginx Ingress Controller On Kubernetes](https://devopscube.com/setup-ingress-kubernetes-nginx-controller/)" 💡 For this demo, Nginx is using the ****NodePort** service type. This allows us to route the traffic without a Load Balancer. But in real production, you should use the ****LoadBalancer** service type so the Ingress Controller creates a real Load Balancer to route the traffic. ## Setup Cert Manager (Prerequisite) Rancher also needs **Cert Manager** to create TLS certificates for secure communication between the clusters you add. To set up a cert manager on a Kubernetes cluster, follow the guide "[Set up Cert Manager in a Kubernetes cluster](https://devopscube.com/nginx-ingress-with-cert-manager/)" 💡 n this demo, we use the Cert Manager ****without** a real Certificate Authority, such as Let's Encrypt. So, the Cert Manager only creates ****self-signed certificates**. But in production, you should use ****Cert Manager with a trusted Certificate Authority** to generate valid certificates. ## Set Up Rancher using Helm The setup begins with the requirements to install Rancher. ### Step 1: Add the Rancher Repo First, we need to add the entire Rancher Helm repo on our local machine and update the repo to ensure we have the latest chart. ```bash helm repo add rancher-stable https://releases.rancher.com/server-charts/stable helm repo update ``` You can now directly install Rancher, though you can pull this chart on your local machine if you want. To pull the chart, use the following command. ```bash helm pull rancher-stable/rancher --untar ``` The following is the directory structure of the Helm chart. ![the directory structure of the rancher helm chart](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-19.png) Here, you can see the values file (`values.yaml`) that has all the modifiable parameters. The following are the container images used on this chart. - `docker.io/rancher/rancher` - `rancher/shell:v0.5.0` - `rancher/mirrored-bci-micro:15.6.24.2` We are going to do a custom installation so that anyone can try on any type of Kubernetes cluster. ### Step 2: Create Custom Values File The customization we used to give a hostname to access the Rancher and give a custom password to access the Rancher dashboard. To do this, create a file called `custom-values.yaml` with the following settings. ```yaml hostname: 4.246.120.68.sslip.io ingress: ingressClassName: "nginx" tls: source: rancher bootstrapPassword: "devops123" ``` In the above configuration, we have added - **Hostname** \- Change the [IP](https://devopscube.com/ip-address-tutorial/) with your node's public IP or the DNS name of the Load Balancer created by the Ingress Controller. - **Ingress Class** \- Name of the Ingress Class - **TLS Certificate source** \- Source to create [TLS certificates](https://devopscube.com/configure-ingress-tls-kubernetes/) for Ingress - **Password** \- Custom login password for Rancher The `*.sslip.io` is the wildcard DNS name and is required because, in Ingress, to attach TLS certificates, a domain name is required. This is only required for the testing environment. 💡 Instead of LB DNS, we can provide a hostname like `rancher.techiescamp.com` if we already have a domain name and DNS service like ****Route53.** Using "rancher" as TLS source means that we are telling Rancher to use self-signed certificates. ### Step 3: Install Rancher Now, we are ready for the installation with the custom values file. Use the following command to install Rancher on a Kubernetes cluster. ```bash helm install rancher rancher-stable/rancher \ --namespace cattle-system \ --create-namespace \ -f custom-values.yaml ``` Once the installation is completed, you can see the instructions on the terminal on how to log in to Rancher. > Note: The Rancher pods will take 5 to 10 minutes to completly up and running Before we login, we can check the status of the Rancher Pods. ```bash kubectl -n cattle-system get po ``` By default, Rancher will deploy with three replications for high availability. ![the list of pods from the rancher deployment](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-197.png) This confirms that all the Rancher pods are running without any issues. ### Step 6: Access Rancher UI Open any web browser and paste the URL `https://4.246.120.68.sslip.io:32001`, You will see a login page where you need to enter the password. ⚠️ `32001` is the nodeport number of the Nginx Ingress controller service. If you are using Load Balancer, the Node Port number is not required. ![accessing the rancher from a browser](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-198.png) Since we use the HTTPS URL, it is showing as "Not secure" because we have used an untrusted SSL certificate created by Rancher. On the next page, you will need to confirm the Rancher server URL. Since we are not using DNS, we can give the Node's IP address as the server URL. ![the welcome page of the rancher](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-199.png) After clicking the "Continue" button, we can see the dashboard. ![the dashboard of the rancher on kubernets](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-26.png) By default, we can see that a cluster is added to Rancher. This is a cluster where we install the Rancher. Now, we are ready to add clusters to Rancher to manage them. ## Adding Kubernetes Clusters to Rancher For this demo, I am using a Kind cluster, but you can use any Kubernetes cluster, even managed clusters like EKS, AKS, and [GKE](https://devopscube.com/setup-ingress-gke-ingress-controller/) as well. Assuming you already have a cluster, and if you want to set up a Kind cluster, you can refer to this blog --> [**Kubernetes Kind Cluster Tutorial**](https://devopscube.com/kubernetes-kind-cluster-tutorial-setup-and-deploy-apps/)**.** From the dashboard, click the "Import Existing" button to add a cluster. ![importig a cluster on Rancher](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-109.png) If the cluster is not a managed cluster, such as EKS, AKS, or GKE, choose the "Generic" ![adding a cluster on rancher](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-110.png) A "[Cluster Management](https://devopscube.com/consul-service-discovery-beginners-guide/)" page will open. Here, you need to provide a name for the cluster that you are going to add. This page has some other settings that we can configure, such as. **Basic -** Cluster version management settings **Members Roles -** Controls who can access the cluster with the defined level of permission (By default, the Admin user will be added) **Labels & Annotations -** Adding labels to clusters to identify and organize them (e.g., `environment: production`) **Registries -** Configure the registries to pull images on a private environment (JFrog, Harbor, or Private Docker Hub) **Advanced -** Settings for the Rancher Agent (Configure as variables). ![filling to add a cluster to rancher](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-111.png) On the next page, we will get instructions to deploy the Rancher agent on the cluster that we want to add to the Rancher. ![the command to install the rancher agent on a kubernets cluster](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-200.png) Here, we have chosen the second command to install the Rancher agent on the Kind cluster because we have not used a valid SSL for the Rancher. To ensure that the Rancher agent is deployed in the cluster, use the following command. ```bash kubectl -n cattle-system get po ``` You will get the following output. ```bash NAME READY STATUS RESTARTS AGE cattle-cluster-agent-c4655cd8d-4zr9s 1/1 Running 0 48m cattle-cluster-agent-c4655cd8d-ptp5q 1/1 Running 0 49m helm-operation-fr6fl 0/2 Completed 0 46m helm-operation-vgnhz 0/2 Completed 0 46m rancher-webhook-6ddf589c5d-l4qsm 1/1 Running 0 46m ``` Once the agent starts running, we can see the same UI page turn with the information of the added cluster. ![the dashborad of the added cluster in rancher](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-201.png) Here, you can see all the nodes of the Kind cluster. If you want to see the detailed information of a particular node, click on the node name. ![the detailed information of the control plane of the added cluster in rancher](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-202.png) In the next section, we perform a simple operation of deploying a Pod via Rancher. ## Testing a Deployment from Rancher For testing, we are deploying an Nginx pod on a Kind cluster from the Rancher dashboard. Navigate to Workloads --> Pods --> Click the "Create" button. ![selecting the pod configuration on rancher to create a pod](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-223.png) On the next page, you need to fill a form of Pod details such as pod name, container name, image name, etc then click "Create" button. ![filling the details on rancher form to deploy a pod ](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-224.png) 💡 If you are familiar with YAML, then select the "****Edit as YAML**" button and change it with your settings. You can see the status of the Pod creation as well as the information. ![the status of the pod creation in the rancher dashboard](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-225.png) Once the creation is successfully completed, you can see the following output. ![after creating the pod, the available options to make the modification on the deployment](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/10/image-226.png) If you click the three dots, you will see options like opening the pod shell, viewing logs, editing the configuration, cloning, downloading the pod's YAML file, or deleting the pod. ## Rancher Operations Rancher is not only a dashboard to view all your cluster, deploy pods or troubleshoot. 1. We can set a **certralized authentication** for all clusters by integrating systems like active directory, LDAP, GitHub, SAML or Okta 2. We can directly deploy tools like Prometheus and Istio from the Rancher's **Apps & Marketplace** using helm charts. 3. We can group namespaces across clusters for the multi cluster project management. We can also set quotas, permissions and policies for these groups. 4. We can create Kubernetes clusters using cluster templates, and even create new Rancher managed clusters. 5. Rancher Fleet is a GitOps method to manage applications across clusters like ArgoCD. It keeps on sync with the version contorl systems such as GitHub. ## Rancher Case Studies Rancher is already using by many organizations. Here are the few examples. - [World Wide Technologs (WWT)](https://www.wwt.com/case-study/rancher-kubernetes-management-provides-increased-efficiency?ref=devopscube.com) uses Rancher to quickly spin up Kubernetes clusters so that their development team can test a new features and applications. - [Inventx](https://www.suse.com/c/rancher%5Fblog/driving-kubernetes-adoption-in-finance-with-rancher/?ref=devopscube.com) is a financial and insureence provider using Rancher to manage their multi cluster hybrid setup also to manage certrailzed compliance for the clusters. ## Clean up the Rancher Setup If you want to clean the reancher setup, you can run the following YAML. ```bash kubectl create -f https://raw.githubusercontent.com/rancher/rancher-cleanup/main/deploy/rancher-cleanup.yaml ``` This will run a Kubernetes Job to clean all the Rancher-related resources. To watch the cleanup, use the following command. ```bash kubectl -n kube-system logs -l job-name=cleanup-job -f ``` This will take a bit of time to complete the cleanup. Once it is completed, use the following command to verify ```bash # Check namespaces kubectl get namespaces | grep cattle kubectl get namespaces | grep fleet # Check CRDs kubectl get crd | grep cattle.io ``` Once verified, we need to remove the job as well. ```bash kubectl delete -f https://raw.githubusercontent.com/rancher/rancher-cleanup/main/deploy/rancher-cleanup.yaml ``` ## Conclusion This blog covered the setup of Rancher on a Kubernetes cluster and a demo of how to add a cluster and perform operations on it from the Rancher dashboard. There is more you can do with the Rancher like authentication, upgradation or even create Rancher Kubernetes clusters. Explore them, and we will also cover those topics in the upcoming blogs. ### How to Set up Istio on Kubernetes Cluster? [Step-by-Step] URL: https://devopscube.com/setup-istio-on-kubernetes/ Last updated: 2026-04-24T03:08:06.000Z In this blog, you will learn how to install and configure Istio on Kubernetes using Helm. By the end, you will understand, 1. Different Istio installation modes 2. How to install Istio custom resources and the sidecar proxy ([daemon](https://devopscube.com/kubernetes-daemonset/)) 3. How to validate the setup with a demo application & canary release strategy. 4. Key concepts like `DestinationRule` and `VirtualService` and more.. Let's get started! ## What is Istio? [Istio](https://istio.io/?ref=devopscube.com) is a popular [Service Mesh](https://devopscube.com/service-mesh-tools/), an infrastructure layer that manages communication between microservices in a Kubernetes cluster. It is used in production by companies like Airbnb, Intuit, eBay, Salesforce, etc. Everyone starting with Istio will have the following question. *Why do we need Istio when Kubernetes offers many microservices functionalities?* Well, when you have dozens or hundreds of microservices talking to each other, you face **challenges that Kubernetes cant handle.** Here are some of those features Kubernetes doesnt offer natively. 1. Load balancing between service versions. 2. Implementing Circuit breaking and retry patterns. 3. Enabling automatic Mutual [TLS](https://devopscube.com/configure-ingress-tls-kubernetes/) (mTLS) between all services. 4. Automatic metrics collection for all service-to-service calls 5. Distributed tracing to follow requests across services and more.. Without ISTIO, you will have to build these features into every microservice yourself. But Istio provides them at the infrastructure level using **sidecar proxies** (Envoy) that intercept all network traffic without changing your application code. 📌 Explaining all Istio concepts is beyond the scope of this guide. Here, we will focus on setting up Istio on kubernetes, getting it up and running, and validating the setup using sample applications. You can read the [Istio architecture](https://devopscube.com/istio-architecture/) blog to dive deep in to Istio internals. Now that you have a high level idea of Istio service mesh, lets get started with the setup. ## Setup Prerequisites To set up Istio, you need the following. 1. A [kubernetes cluster ](https://devopscube.com/setup-kubernetes-cluster-kubeadm/) 2. [Kubectl](https://devopscube.com/kubectl-set-context/) \[Local workstation\] 3. [Helm](https://devopscube.com/create-helm-chart/) \[Local workstation\] Lets get started with the setup. ## Kubernetes Node Requirements To have a basic Istio setup up and running, you need to have the following minimum CPU and memory resources on your worker node. - 4 vCPU - 16 GB RAM It will be enough for Istio control plane + sidecars + a few sample apps to get started. ⚠️ If you enable ****telemetry / logging / tracing** (Prometheus, Grafana, Jaeger/Kiali), memory/CPU overhead will increase. ## Istio Sidecar Vs Ambient Mode Before you start setting up Istio, you should know the following two Istio deployment modes. ### 1\. Sidecar Mode In this mode, Istio Deploys an Envoy proxy as a sidecar container alongside each application pod. All the traffic flows through this sidecar proxy (data plane component) and **provides all the L4-L7 features** directly within the pod for all inbound and outbound connections. ![Istio Sidecar Mode](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-90.png) It also means, each pod requires additional CPU and memory (typically 100-500MB RAM) for the sidecar container. ### 2\. Ambient Mode In this mode, no sidecars are injected into application pods. Istio deploys a node-level proxy called [ztunnel](https://github.com/istio/ztunnel?ref=devopscube.com) as a [DaemonSet](https://devopscube.com/kubernetes-daemonset/) for L4 functionality (mTLS, authN/authZ at transport layer). This means, all pods on a node share the same ztunnel instance instead of their own sidecar proxies. If you want L7 features (HTTP, gRPC, etc) you can run an optional namespace-scoped waypoint proxies. ![Istio Ambient Mode ztunnel and Waypoint proxy](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-91.png) To put is simple, ambient mode is more “evolved” in concept but it is still newer. Meaning there are more trade-offs and some gaps ⚠️ In this guide we are ****focussing on the Istio Sidecar Mode** mode because ambient mode still has a few limitations and relative immaturity compared to the sidecar model. If you want to learn more about Ambient Mode, please refer to the [****Set Up Istio in Ambient Mode**](https://devopscube.com/setup-istio-ambient-mode/) blog. ## Install Istio Using Helm Helm is the common method followed in organizations to istall and mangage Istio. We will be using Helm to install Istio on the [Kubernetes cluster](https://devopscube.com/production-ready-kubernetes-cluster/). Follow the steps given below for the installation. ### Step 1: Add Helm Chart Repo First, we need to add and update the official Istio Helm repo on our local machine. ```bash helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update ``` Now, we have added the Istio repo. So we can list the available charts of this repo. ```bash helm search repo istio ``` In the output, we can see all the Istio related chart lists and their latest versions. We will not be using all the charts. ```bash $ helm search repo istio NAME CHART VERSION APP VERSION DESCRIPTION istio/istiod 1.28.0 1.28.0 Helm chart for istio control plane istio/istiod-remote 1.23.6 1.23.6 Helm chart for a remote cluster using an extern... istio/ambient 1.28.0 1.28.0 Helm umbrella chart for ambient istio/base 1.28.0 1.28.0 Helm chart for deploying Istio cluster resource... istio/cni 1.28.0 1.28.0 Helm chart for istio-cni components istio/gateway 1.28.0 1.28.0 Helm chart for deploying Istio gateways istio/ztunnel 1.28.0 1.28.0 Helm chart for istio ztunnel components ``` We will be using only those are required for sidecar mode implementation. ### Step 2: Install Istio CRD's Istio adds many custom features to Kubernetes like traffic routing, mTLS, gateways, sidecar rules, policies, and more. These Istio features do not exist in Kubernetes by default. To support them, Istio defines them as Custom Resource Definitions (CRDs) We can install the CRD's from the Istio chart list. We need to choose the `istio/base` chart to setup Istio in sidecar mode. Execute the following command to install istio-base. ```bash helm install istio-base istio/base -n istio-system --set defaultRevision=default --create-namespace ``` You should get a successful message as follows. ```bash NAME: istio-base LAST DEPLOYED: Sat Nov 15 14:58:26 2025 NAMESPACE: istio-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Istio base successfully installed! ``` Once the CRD deployment is completed, the Kubernetes API server supports Istio resource types. We can list the Istio CRDs using the following command. ```bash kubectl get crds | grep istio ``` You will get the following output. It contains CRD's realted to security, traffic management, telemetry, extensions and workloads. ```bash $ kubectl get crds | grep istio authorizationpolicies.security.istio.io 2025-11-15T06:20:10Z destinationrules.networking.istio.io 2025-11-15T06:20:10Z envoyfilters.networking.istio.io 2025-11-15T06:20:10Z gateways.networking.istio.io 2025-11-15T06:20:10Z peerauthentications.security.istio.io 2025-11-15T06:20:10Z proxyconfigs.networking.istio.io 2025-11-15T06:20:10Z requestauthentications.security.istio.io 2025-11-15T06:20:10Z serviceentries.networking.istio.io 2025-11-15T06:20:10Z sidecars.networking.istio.io 2025-11-15T06:20:10Z telemetries.telemetry.istio.io 2025-11-15T06:20:10Z virtualservices.networking.istio.io 2025-11-15T06:20:10Z wasmplugins.extensions.istio.io 2025-11-15T06:20:10Z workloadentries.networking.istio.io 2025-11-15T06:20:10Z workloadgroups.networking.istio.io 2025-11-15T06:20:10Z ``` ### Customizing Istio Chart & Values (Optional) In **enterprise environments**, you cannot install Istio directly from the public Helm repo. You will have to host the helm chart in internal helm repos (e.g., Nexus, Artifactory, Harbor, S3 bucket, Git repo). Also you will customization to the default values to meet the project requirements. In that case, you can download the chart locally or store it on your own repo, use the following command. ```bash helm pull istio/base --version 1.28.0 --untar ``` Once you pull the chart, the directory structure looks like this. ```bash base |-- Chart.yaml |-- README.md |-- files | |-- crd-all.gen.yaml | |-- profile-ambient.yaml | |-- ... | |-- ... | |-- ... | |-- profile-remote.yaml | `-- profile-stable.yaml |-- templates | |-- NOTES.txt | |-- crds.yaml | |-- defaultrevision-validatingadmissionpolicy.yaml | |-- defaultrevision-validatingwebhookconfiguration.yaml | |-- reader-serviceaccount.yaml | `-- zzz_profile.yaml `-- values.yaml ``` Here, you can see the `values.yaml` file, which has the modifiable parameters. So if you want to do a custom installation, you can modify this file or create a new values file with only the required parameters. Then run the following command to install the CRDs using the downloaded chart. ```bash helm install istio-base ./base -n istio-system --create-namespace ``` 💡 To use the custom values file, during the Helm installation command, use the `-f` field with the path of the custom file. ### Step 3: Install Istio Daemon (Istiod) Istiod is the **Istio control plane** that manages everything related to Istio, like managing configuration,mTLS, service discovery, certification management etc. Now, install the Istiod using the [Helm chart](https://devopscube.com/create-helm-chart/). For that, we need to select the `istio/istiod` chart from the list. ```bash helm install istiod istio/istiod -n istio-system --wait ``` Wait a few seconds to complete the installation. This will install the Istiod control plane as a deployment and other required objects like services, configmaps, secrets, etc. ### Customizing Istio Daemon Chart & Values (Optional) For a custom installation, pull the charts to local, create a custom values file, or modify the default `values.yaml` file, then install the charts downloaded locally. Use the following command to download the chart locally. ```bash helm pull istio/istiod --version 1.28.0 --untar ``` The following is the structure of the chart. ```bash istiod |-- Chart.yaml |-- README.md |-- files | |-- gateway-injection-template.yaml | |-- grpc-agent.yaml | |-- grpc-simple.yaml | |-- ... | |-- ... | |-- ... | |-- profile-preview.yaml | |-- profile-remote.yaml | |-- profile-stable.yaml | `-- waypoint.yaml |-- templates | |-- NOTES.txt | |-- _helpers.tpl | |-- autoscale.yaml | |-- ... | |-- ... | |-- ... | |-- validatingwebhookconfiguration.yaml | |-- zzy_descope_legacy.yaml | `-- zzz_profile.yaml `-- values.yaml ``` This is how the Istiod Helm chart is structured, and the following are the images used on this chart. - `busybox:1.28` - `docker.io/istio/pilot:1.28.0` 💡 In ****project envionments**, you will have to ****host these images in internal private registries** and use that image urls in the helm chart. Then run the following command to install Istiod using the downloaded chart. ``` helm install istiod ./istiod -n istio-system --wait ``` 💡 By default, Istiod is deployed with Horizontal Pod Autoscaler, so when the Pod's CPU threshold reaches 80%, the replication will be increased. The default max replication is 5. ## Validating Istio Installation Run the following command to list the pod, deployment, and service created by the Helm chart. ```bash kubectl -n istio-system get po,deploy,svc ``` You will see the following objects. ```bash $ kubectl -n istio-system get po,deploy,svc NAME READY STATUS RESTARTS AGE pod/istiod-fd9bbfdf8-wd5sw 1/1 Running 0 5m20s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/istiod 1/1 1 0 5m20s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/istiod ClusterIP 10.102.128.197 15010/TCP,15012/TCP,443/TCP,15014/TCP 5m20s ``` The output ensures that the installation is successful without any issues. ## Install Istioctl \[Local Machine\] **`Istioctl`** is a command-line tool to access and manage the Istio Daemon from the local machine. Use the following command to install Istioctl. For Linux: ```bash curl -sL https://istio.io/downloadIstioctl | sh - export PATH=$HOME/.istioctl/bin:$PATH echo 'export PATH=$HOME/.istioctl/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` For MAC: ```bash brew install istioctl ``` For other installation options, you can use this [official documentation](https://istio.io/latest/docs/ops/diagnostic-tools/istioctl/?ref=devopscube.com) for the installation. Verify the installtion using the following command. It will shows the Istio clinent and control plane version. ```bash $ istioctl version client version: 1.28.0 control plane version: 1.28.0 data plane version: none ``` Now, we need to test Istio with applications. ## Quick Istio Demo: Deploy Apps, Inject Sidecars, and Split Traffic Now that we have completed the installation, let's validate the setup using a sample deployment that uses Istio features. Here is what we are going to do. - Create a namespace and label it for automatic Istio sidecar injection. - Then deploy two sample applications versions (V1 & V2) in the istio enabled namespace. - Configure Destination rule & Virtual Service to split traffic between two versions of app using weighted routing. - Then test the setup by creating a client pod and sends requests to the application service endpoint. The following image shows what we are going to build in this test setup. ![](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-89.png) Application deployment on Istio mesh to perform canary routing Let's get started with the setup. ### Create a Namespace & Label For testing, we use a dedicated namespace ```bash kubectl create ns istio-test ``` Now we need to add the istio specific lable to enable automatic Istio sidecar injection. ```bash kubectl label namespace istio-test istio-injection=enabled ``` When you set `istio-injection=enabled` on a namespace, Istio's **`MutatingAdmissionWebhook`** automatically injects an Envoy proxy sidecar container into any new pods deployed in that namespace. Verify the label. ```bash $ kubectl get namespace istio-test --show-labels NAME STATUS AGE LABELS istio-test Active 4m2s istio-injection=enabled,kubernetes.io/metadata.name=istio-test ``` ⚠️ If you add the `istio-injection=enabled` label to an existing namespace with pods, you will need to restart the pods for the sidecar injection to happen. ### Deploy Two Sample Apps For our validation, we are deploying two demo **http echo** applications and then test the traffic routing. You can directly copy and paste the following manifests on your terminal to deploy the apps. ```yaml cat << EOF > demo-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: backend-v1 namespace: istio-test spec: replicas: 3 selector: matchLabels: { app: backend, version: v1 } template: metadata: labels: { app: backend, version: v1 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v1"] ports: - containerPort: 5678 --- apiVersion: apps/v1 kind: Deployment metadata: name: backend-v2 namespace: istio-test spec: replicas: 2 selector: matchLabels: { app: backend, version: v2 } template: metadata: labels: { app: backend, version: v2 } spec: containers: - name: echo image: hashicorp/http-echo args: ["-text=hello from backend v2"] ports: - containerPort: 5678 --- apiVersion: v1 kind: Service metadata: name: backend namespace: istio-test labels: app: backend service: backend spec: ports: - name: http port: 80 targetPort: 5678 selector: app: backend EOF ``` Once you deploy the pod in the labelled namespace, **Istio will inject the proxy sidecar** on each pod. Run the following command to check the status of the sample applications and backend **`svc`**. ```bash kubectl -n istio-test get po,svc ``` You will get the following output. ```bash $ kubectl -n istio-test get po,svc NAME READY STATUS RESTARTS AGE pod/backend-v1-7c88547fc6-6krk8 2/2 Running 0 60s pod/backend-v1-7c88547fc6-lvntb 2/2 Running 0 60s pod/backend-v1-7c88547fc6-x49kr 2/2 Running 0 60s pod/backend-v2-86c767bf6b-blf56 2/2 Running 0 59s pod/backend-v2-86c767bf6b-zwzp7 2/2 Running 0 59s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/backend ClusterIP 10.100.134.45 80/TCP 55s ``` If you notice, the output says 2/2 ready. It is the application pod + the sidecar proxy. To verify this, describe any of the pods from the namespace, and you will see the sidecar container. ```bash kubectl -n istio-test describe po ``` You can see the main container and Istios container added as a sidecar as shown below. ![the described output to see the istio injected sidecar container](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/11/image-88.png) Also, you can use `istioctl` to check the status of the proxies using the following command. ```bash istioctl -n istio-test proxy-status ``` And, you will get the following output. ```bash $ istioctl -n istio-test proxy-status NAME CLUSTER ISTIOD VERSION SUBSCRIBED TYPES backend-v1-7c88547fc6-6krk8.istio-test Kubernetes istiod-fd9bbfdf8-dzcsp 1.28.0 4 (CDS,LDS,EDS,RDS) backend-v1-7c88547fc6-lvntb.istio-test Kubernetes istiod-fd9bbfdf8-dzcsp 1.28.0 4 (CDS,LDS,EDS,RDS) backend-v1-7c88547fc6-x49kr.istio-test Kubernetes istiod-fd9bbfdf8-dzcsp 1.28.0 4 (CDS,LDS,EDS,RDS) backend-v2-86c767bf6b-blf56.istio-test Kubernetes istiod-fd9bbfdf8-dzcsp 1.28.0 4 (CDS,LDS,EDS,RDS) backend-v2-86c767bf6b-zwzp7.istio-test Kubernetes istiod-fd9bbfdf8-dzcsp 1.28.0 4 (CDS,LDS,EDS,RDS) ``` In the output, we can see two Envoy proxies, which are connected with the Istio daemon (Control Plane). Each side-car Envoy proxy is subscribed to specific discovery feeds via **gRPC or streaming connection** to the Istio control plane to decide how the traffic should be routed. 1. **LDS (Listener Discovery Service)** \- This tells the Envoy to which IP and Ports to listen, and what to do when the traffic arrives. 2. **RDS (Route Discovery Service)** \- After traffic is received, it tells Envoy where it should be sent. 3. **CDS (Cluster Discovery Service)** \- Defines the services on other clusters and how to connect them. 4. **EDS (Endpoint Discovery Service)** \- List the Pod IPs and Ports inside each cluster so Envoy can reach the correct destination. This means **at runtime, Envoy is receiving updates** for what listeners to use, what routes to send traffic on. Now, our demo deployments are ready, so we can now create the Destination Rule. ### Create a Destination Rule As the name indicates, destination rule basically defines the rules on how the traffic should be handled at the destination (pod). When we say rules, it means, - Load balancing method - Connection limits - Circuit breaking - TLS settings - Retry policies and more.. For example, if you want to enable mTLS, or LEAST\_REQUEST load balancing for the destination pod, you define all those in the **`DestinationRule`** CRD. All the **`DestinationRule`** **configurations get translated into Envoy proxy** (pod sidecar) configuration. 💡 (istiod) pushes **`DestinationRule`** ****EVERY proxy in the mesh**, regardless of whether they'll ever call that service or not. In our example, we are going to **perform a traffic split** between two versions of applications using **weighted routing**. It is also useful for canary routing. For that we need to create a **`DestinationRule`**that creates two subsets. - **Subset v1:** To group all pods with label **`version: v1`** - **Subset v2:** Groups all pods with label **`version: v2`** When traffic reaches the dataplane proxy, it routes between the label-based subsets of one service. The following is the sample Destination rule configuration that creates two subsets. ```yaml cat < destination-rule.yaml apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: backend namespace: istio-test spec: host: backend.istio-test.svc.cluster.local subsets: - name: v1 labels: version: v1 - name: v2 labels: version: v2 EOF ``` To apply this, use the following command. ```bash kubectl apply -f destination-rule.yaml ``` In the above config, we have used - **`spec.host: backend.istio-test.svc.cluster.local`** \- The domain name of the backend service that we created in the previous step. It defines that the traffic should route to this backend service. - **`subsets`** \- Defines the backend application deployments based on labels. We have two deployments under one service so created two subsets. 💡 Istio tells all Envoy proxies, "**When you see traffic going to* `backend.istio-test.svc.cluster.local`, **apply these rules (subsets v1 and v2)*. To list the Destination Rule Custom Resources, use the following command. ``` kubectl -n istio-test get destinationrules ``` You will get the following output. ```bash $ kubectl -n istio-test get destinationrules NAME HOST AGE backend backend.istio-test.svc.cluster.local 6s ``` Now, we need to create a Virtual service. ### Create a Virtual Service **Virtual Service** is a Custom Resource of the Istio, where we define where to route the traffic based on conditions such as host, path, weight, canary, etc. So why do we need **`VirtualServic`e** when we already have **`DestinationRule`**? Well, they serve completely different purposes in traffic management. Think of it this way. - **VirtualService** \= WHAT traffic goes WHERE (Eg, path/host-matching, canary/weight, splits, header-based routing etc.) - **DestinationRule** \= HOW to handle traffic at the destination (connection policies) Lets create a Virtual Service that does **weighted routing (canary style)** to the two subsets we deigned in the Destination rule. To create a Virtual Service, use the following manifet. ```yaml cat < virtual-service.yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: backend namespace: istio-test spec: hosts: - backend.istio-test.svc.cluster.local http: - route: - destination: host: backend.istio-test.svc.cluster.local subset: v1 weight: 50 - destination: host: backend.istio-test.svc.cluster.local subset: v2 weight: 50 EOF ``` Here, we have defined the hostname of the service to route the traffic. **`spec.http.route`** \- This defines how to spread the traffic to the subsets. Here, we use the canary method, so the **50% traffic route to the v1** service and the **remaining 50% will be routed to the v2** service. To apply this, use the following command. ```bash kubectl apply -f virtual-service.yaml ``` To list the available virtual services, use the following command. ```bash kubectl -n istio-test get virtualservices ``` You will get the following output. ```bash $ kubectl -n istio-test get virtualservices NAME GATEWAYS HOSTS AGE backend ["backend.istio-test.svc.cluster.local"] 5s ``` Now, out setup is ready. Now we need to test the canary routing using a client Pod. ### Validate Traffic Routing With A Client For validation, we are going to create a client pod to send a request to the sample applications. To create a client pod, use the following manifest. We are deploying a curl image to send curl request. ```yaml cat <__//`. Each pod folder contains the individual container folder and its respective log file. Each folder has a naming scheme that follows Also, if your underlying container engine is Docker, you will find the logs in `/var/lib/docker/containers` the folder. If you log in to any Kubernetes worker node and go to `/var/log/containers` the directory, you will find a log file for each container running on that node. The log file naming scheme follows `/var/log/pods/__//`. An example is shown in the image below. ![Kubernetes container log location](https://storage.ghost.io/c/5f/2f/5f2f4d20-2abf-4534-8d40-7aa233aedd43/content/images/2025/03/image-1-58.png) Also, these log files are controlled by Kubelet, so when you run the **kubectl logs** command, kubelet shows these logs in the terminal. ## Kubelet Logs For Kubelet, you can access the logs from individual worker nodes using the journalctl command. For example, use the following command to check the Kubelet logs. ``` journalctl -u kubelet journalctl -u kubelet -o cat ``` If the Kubelet is running without systemd, you can find the Kubelet logs in the **/var/log** directory. ## Kubernetes Container Log Format As explained earlier, all the log data is stored in plain text format. If you open any of the log files, you will find the logs in following structure for each log entry. ```