<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Shittu Sulaimon (Barry)</title>
    <description>The latest articles on Forem by Shittu Sulaimon (Barry) (@sadebare).</description>
    <link>https://forem.com/sadebare</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1337539%2F85f7f414-a6cb-4333-a371-c93b45a5a2c8.jpg</url>
      <title>Forem: Shittu Sulaimon (Barry)</title>
      <link>https://forem.com/sadebare</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sadebare"/>
    <language>en</language>
    <item>
      <title>You Pay 6x More When Your EKS Cluster Goes Out of Support</title>
      <dc:creator>Shittu Sulaimon (Barry)</dc:creator>
      <pubDate>Mon, 29 Dec 2025 18:25:04 +0000</pubDate>
      <link>https://forem.com/sadebare/you-pay-6x-more-when-your-eks-cluster-goes-out-of-support-289d</link>
      <guid>https://forem.com/sadebare/you-pay-6x-more-when-your-eks-cluster-goes-out-of-support-289d</guid>
      <description>&lt;p&gt;Many teams don’t realize this until it shows up on the AWS bill.&lt;/p&gt;

&lt;p&gt;Amazon EKS has &lt;strong&gt;two support modes&lt;/strong&gt; for Kubernetes versions: &lt;strong&gt;standard support&lt;/strong&gt; and &lt;strong&gt;extended support&lt;/strong&gt;. The difference between them is not just lifecycle; it is &lt;strong&gt;cost&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Standard vs Extended Support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standard support:&lt;/strong&gt; &lt;code&gt;$0.10 per hour&lt;/code&gt; per cluster&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extended support:&lt;/strong&gt; &lt;code&gt;$0.60 per hour&lt;/code&gt; per cluster (&lt;strong&gt;6× more&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Extended support applies when a Kubernetes version goes out of standard support. At first, this increase may seem small, but if you manage multiple clusters across development, staging, and production, the cost adds up very quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Kubernetes Version Lifecycle in EKS
&lt;/h3&gt;

&lt;p&gt;Kubernetes releases a new minor version roughly every &lt;strong&gt;four months&lt;/strong&gt;. AWS EKS follows this model and supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;latest three minor versions&lt;/strong&gt; under standard support&lt;/li&gt;
&lt;li&gt;About &lt;strong&gt;14 months&lt;/strong&gt; of standard support per version&lt;/li&gt;
&lt;li&gt;An additional &lt;strong&gt;~12 months&lt;/strong&gt; of extended support at a higher cost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Standard support versions receive newer security patches, API updates, and configuration improvements. Staying within these versions is strongly recommended.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Happens If You Don’t Upgrade
&lt;/h3&gt;

&lt;p&gt;AWS notifies customers through the &lt;strong&gt;AWS Personal Health Dashboard&lt;/strong&gt; at least &lt;strong&gt;60 days&lt;/strong&gt; before a cluster enters extended support.&lt;/p&gt;

&lt;p&gt;If a cluster goes beyond extended support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS will automatically upgrade the &lt;strong&gt;control plane&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You must manually upgrade &lt;strong&gt;worker nodes and add-ons&lt;/strong&gt; such as CoreDNS, kube-proxy, VPC CNI, and CSI drivers&lt;/li&gt;
&lt;li&gt;Kubernetes &lt;strong&gt;version skew policies&lt;/strong&gt; apply: upgrades must happen one minor version at a time, and worker nodes must not lag too far behind the control plane&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ignoring this can lead to broken workloads or cluster instability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Keeping your EKS clusters within &lt;strong&gt;standard support&lt;/strong&gt; is not just a security or stability best practice, it is a &lt;strong&gt;cost avoidance strategy&lt;/strong&gt;. Planning upgrades early helps you avoid surprise bills and keeps your platform healthy.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>kubernetes</category>
      <category>cloud</category>
      <category>finops</category>
    </item>
    <item>
      <title>EKS Disaster Recovery, Simplified: Native Backups with AWS Backup</title>
      <dc:creator>Shittu Sulaimon (Barry)</dc:creator>
      <pubDate>Sun, 21 Dec 2025 21:53:04 +0000</pubDate>
      <link>https://forem.com/sadebare/eks-disaster-recovery-simplified-native-backups-with-aws-backup-15g4</link>
      <guid>https://forem.com/sadebare/eks-disaster-recovery-simplified-native-backups-with-aws-backup-15g4</guid>
      <description>&lt;p&gt;For years, platform engineers have shared the same quiet nightmare: backing up EKS at scale. As clusters grow and teams stay lean, disaster recovery stops being optional and becomes mandatory. Until recently, this usually meant Velero pain, custom scripts, manually managed S3 buckets, and constant anxiety about whether your persistent volumes matched cluster state. It worked, but it was fragile, time-consuming, and easy to get wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Turning Point: November 10, 2025&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AWS closed a long-standing gap by introducing native Amazon EKS support in AWS Backup. This isn’t a minor feature drop—it’s a shift from DIY backup engineering to managed reliability.&lt;/p&gt;

&lt;p&gt;Here’s why this matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Native EKS Backup is a Game-Changer&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Composite Recovery Points (the missing piece)&lt;/strong&gt;&lt;br&gt;
Previously, EKS backups were fragmented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster configs in one place&lt;/li&gt;
&lt;li&gt;EBS snapshots somewhere else&lt;/li&gt;
&lt;li&gt;Hope holding everything together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS Backup now captures &lt;strong&gt;cluster state + persistent storage (EBS, EFS, S3)&lt;/strong&gt; as a single, consistent recovery point. No more guessing if your data and manifests are in sync.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. One Pane of Glass&lt;/strong&gt;&lt;br&gt;
If you already use AWS Backup for EC2, RDS, or DynamoDB, EKS backups will feel familiar.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same workflows, policies, and visibility&lt;/li&gt;
&lt;li&gt;No extra controllers&lt;/li&gt;
&lt;li&gt;No per-cluster Velero babysitting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Policy-Driven, Not Script-Driven&lt;/strong&gt;&lt;br&gt;
Instead of CronJobs inside your clusters, you define &lt;strong&gt;Backup Plans&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Back up every 6 hours. Retain for 30 days.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AWS handles scheduling, encryption, immutability, and lifecycle management automatically. This is what “set and forget” is supposed to look like.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Restores Without the Stress&lt;/strong&gt;&lt;br&gt;
Restores no longer feel like a gamble. You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restore an entire cluster&lt;/li&gt;
&lt;li&gt;Recover a single namespace&lt;/li&gt;
&lt;li&gt;Roll back individual persistent volumes&lt;/li&gt;
&lt;li&gt;Restore into a brand-new EKS cluster as part of the process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s real operational confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why This Matters Now&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Native EKS backup is more than protection against accidental deletion. It provides a safety net for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cluster upgrades (e.g., 1.30 → 1.31)&lt;/li&gt;
&lt;li&gt;AMI rollouts that fail&lt;/li&gt;
&lt;li&gt;Security patches&lt;/li&gt;
&lt;li&gt;Kubernetes API changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For production EKS, this feature quietly changes how teams sleep at night. AWS didn’t just add a backup option; they removed a category of operational stress.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Practical Guide: Enabling Native EKS Backups&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you already have an EKS cluster, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to your &lt;strong&gt;AWS Backup&lt;/strong&gt; resource, go to &lt;strong&gt;Settings&lt;/strong&gt;, then &lt;strong&gt;Configure Resource&lt;/strong&gt;. Include your EKS cluster as a protected resource.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faosiltx8cgl0ouy583yh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faosiltx8cgl0ouy583yh.png" alt="AWS Backup Configure Resource" width="800" height="341"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Protected Resources&lt;/strong&gt;, click &lt;strong&gt;Create On-Demand Backup&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26wf1c72u2qdl94yswzj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26wf1c72u2qdl94yswzj.png" alt="Create On-Demand Backup" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a &lt;strong&gt;custom IAM role&lt;/strong&gt; for backup, attaching:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AWSBackupServiceRolePolicyForBackup&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWSBackupServiceRolePolicyForRestores&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example role: &lt;strong&gt;EKS-BACKUP-ROLE-EXAMPLE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkf3idq0m51msvo1idt3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkf3idq0m51msvo1idt3m.png" alt="IAM Role" width="800" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start the backup. You can verify progress in the &lt;strong&gt;Backup&lt;/strong&gt; or &lt;strong&gt;EKS&lt;/strong&gt; page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb88uptsjk8298b39fsc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb88uptsjk8298b39fsc9.png" alt="Backup In Progress" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Restoring Your EKS Cluster&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;In &lt;strong&gt;AWS Backup&lt;/strong&gt;, navigate to &lt;strong&gt;Protected Resources&lt;/strong&gt; and select the &lt;strong&gt;Resource ID&lt;/strong&gt; of the cluster. Choose the &lt;strong&gt;composite recovery point&lt;/strong&gt; and click &lt;strong&gt;Restore&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdauixjqk92f146ntwjzf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdauixjqk92f146ntwjzf.png" alt="Restore Step" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Configure restore options:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scope&lt;/strong&gt;: entire cluster or a namespace&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Destination&lt;/strong&gt;: original cluster, existing cluster, or new cluster&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this walkthrough, we restore into a new cluster to demonstrate full capabilities.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Select storage resources to include. AWS Backup supports EBS, EFS, and S3 storage for persistent data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Backup provisions the cluster and restores workloads based on your configuration.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5f2v9ad64fcfq426wjk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp5f2v9ad64fcfq426wjk.png" alt="Restore in Progress" width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This workflow doesn’t replace GitOps or careful upgrade strategies, but it provides a reliable safety net for runtime recovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Considerations &amp;amp; Best Practices&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Even with native EKS backup, there are important points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not all Kubernetes resources are restored exactly as is, especially external integrations&lt;/li&gt;
&lt;li&gt;Restore time depends on PV size and data footprint&lt;/li&gt;
&lt;li&gt;AWS Backup costs apply for snapshots, storage, and retention&lt;/li&gt;
&lt;li&gt;This complements GitOps, but doesn’t replace it&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Native Amazon EKS support in AWS Backup removes much of the complexity that platform teams previously managed manually. It delivers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Consistent, policy-driven backups&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Predictable restores&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No additional controllers or operational overhead&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For production EKS environments, it significantly reduces the risk and stress associated with cluster level failures while keeping operations simple and predictable. Platform teams finally have a &lt;strong&gt;set-and-forget safety net&lt;/strong&gt; for backups and restores.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;References&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html" rel="noopener noreferrer"&gt;AWS Backup Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html" rel="noopener noreferrer"&gt;Amazon EKS Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/integration-backup.html" rel="noopener noreferrer"&gt;AWS Blog: Native EKS Backup Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/aws/secure-eks-clusters-with-the-new-support-for-amazon-eks-in-aws-backup/" rel="noopener noreferrer"&gt;AWS Blog: Secure EKS Clusters with AWS Backup&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>kubernetes</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Chaos Engineering in Kubernetes: 5 Real World Experiments to Try Today</title>
      <dc:creator>Shittu Sulaimon (Barry)</dc:creator>
      <pubDate>Thu, 08 May 2025 07:47:03 +0000</pubDate>
      <link>https://forem.com/sadebare/chaos-engineering-in-kubernetes-5-real-world-experiments-to-try-today-3p75</link>
      <guid>https://forem.com/sadebare/chaos-engineering-in-kubernetes-5-real-world-experiments-to-try-today-3p75</guid>
      <description>&lt;p&gt;In today’s fast paced digital world, distributed systems have become the backbone of modern applications. However, their complexity also makes them vulnerable to unpredictable failures. Chaos engineering provides a proactive approach to building resilience by intentionally injecting faults and observing how systems respond. This practice enables teams to uncover hidden weaknesses and prepare for real world disruptions before they escalate into critical incidents. It’s important to note that chaos engineering is different from traditional software testing. While testing verifies that a system works as expected under normal conditions, chaos engineering deliberately introduces failure to evaluate how resilient the system is under stress.&lt;/p&gt;

&lt;p&gt;In this article, I’ll be using Chaos Mesh a Kubernetes native chaos engineering tool to demonstrate how faults can be injected into a Kubernetes ecosystem to improve its resilience. I’ll walk through its architecture and highlight common chaos experiments you can perform using Chaos Mesh.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chaos Mesh: Bringing Chaos Engineering to Kubernetes
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://chaos-mesh.org/" rel="noopener noreferrer"&gt;Chaos Mesh&lt;/a&gt; is a CNCF open source project that implements chaos engineering concepts specifically for Kubernetes environments. It achieves this by injecting faults and abnormalities into a Kubernetes cluster or a physical node to analyze how workloads and the environment perform under different failure scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://chaos-mesh.org/" rel="noopener noreferrer"&gt;Chaos Mesh Architecture&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Chaos Mesh leverages Kubernetes Custom Resource Definitions (CRDs) to perform chaos engineering in a Kubernetes environment. Different CRD types are used based on the specific fault being injected, and various controllers manage these CRD objects. Chaos Mesh consists of three primary components:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Chaos Dashboard&lt;/strong&gt;: A major component that provides a user friendly interface for visualizing and experimenting with different types of chaos. The dashboard leverages CRDs and enables users to select and induce chaos experiments into the system. Additionally, it supports Role Based Access Control (RBAC) to grant users specific permissions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chaos Controller Manager&lt;/strong&gt;: This component is responsible for scheduling and monitoring chaos experiments. It injects faults into the system through the Kubernetes API and monitors system responses. It includes different controllers such as the workflow controller, scheduler controller, and controllers for various fault types.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chaos Daemon&lt;/strong&gt;: The main execution component of Chaos Mesh. Running in &lt;em&gt;DaemonSet&lt;/em&gt; mode with privileged permissions (which can be disabled), Chaos Daemon interacts with network devices, file systems, and kernels by modifying the target Pod Namespace.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://medium.com/nerd-for-tech/chaos-engineering-in-kubernetes-using-chaos-mesh-431c1587ef0a" rel="noopener noreferrer"&gt;Chaos Mesh Architecture&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l6vkekajh8zzipesdko.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3l6vkekajh8zzipesdko.webp" alt="Image description" width="800" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Chaos Mesh, we can perform different types of chaos simulations on both nodes and Kubernetes environments.&lt;/p&gt;

&lt;h4&gt;
  
  
  Chaos Experiments in Kubernetes
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pod Fault Simulation&lt;/strong&gt;: This involves injecting pod crashes, deletions, or restarts using &lt;em&gt;PodChaos&lt;/em&gt; in Chaos Mesh.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Fault Simulation&lt;/strong&gt;: This experiment simulates network outages within a cluster, packet drops, and bandwidth limitations between nodes. This is done using &lt;em&gt;NetworkChaos&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Stress Simulation&lt;/strong&gt;: This experiment stresses CPU, memory, or disk resources in the cluster. It is implemented using &lt;em&gt;StressChaos&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Fault Simulation&lt;/strong&gt;: This experiment introduces HTTP faults such as aborting or delaying HTTP connections, modifying HTTP request parameters, or altering response content. It is implemented using &lt;em&gt;HTTPChaos&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Additionally, several other chaos experiments can be performed in Kubernetes.&lt;/p&gt;

&lt;h4&gt;
  
  
  Chaos Experiments on Physical Nodes
&lt;/h4&gt;

&lt;p&gt;For physical nodes, Chaos Mesh provides &lt;em&gt;Chaosd&lt;/em&gt;, a tool that enables experimentation with different failure scenarios, including:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Process Fault Simulation&lt;/strong&gt;: Killing or stopping a process to observe its impact on the environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Pressure Simulation&lt;/strong&gt;: Applying stress to CPU, memory, and disk resources on each node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host Level Injection&lt;/strong&gt;: Shutting down or restarting a node within a cluster to simulate failures.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Instrumentation with Chaos Mesh Using Kubernetes
&lt;/h3&gt;

&lt;p&gt;Chaos Mesh is a powerful chaos engineering tool designed for Kubernetes environments. It can be used across different Kubernetes setups, whether you're running on cloud platforms like &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html" rel="noopener noreferrer"&gt;EKS&lt;/a&gt;, &lt;a href="https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster" rel="noopener noreferrer"&gt;GKE&lt;/a&gt; or &lt;a href="https://learn.microsoft.com/en-us/azure/aks/learn/quick-kubernetes-deploy-portal?tabs=azure-cli" rel="noopener noreferrer"&gt;AKS&lt;/a&gt;, or using local solutions like Minikube, kubeadm or kind (&lt;a href="https://kubernetes.io/docs/tasks/tools/" rel="noopener noreferrer"&gt;local-setup-guide&lt;/a&gt;).&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Install Chaos Mesh
&lt;/h4&gt;

&lt;p&gt;Install via curl:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl &lt;span class="nt"&gt;-sSL&lt;/span&gt; https://mirrors.chaos-mesh.org/v2.7.1/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use &lt;a href="https://chaos-mesh.org/docs/production-installation-using-helm/" rel="noopener noreferrer"&gt;helm (Recommended for production)&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Verify the Installation
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   kubectl get po &lt;span class="nt"&gt;-n&lt;/span&gt; chaos-mesh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This confirms that the core components dashboard, controller manager, and chaos daemon are running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojz00ocw4wdnmk484glc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fojz00ocw4wdnmk484glc.png" alt="Image description" width="800" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: Access the Chaos Mesh Dashboard
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   kubectl port-forward &lt;span class="nt"&gt;-n&lt;/span&gt; chaos-mesh svc/chaos-dashboard 2333:2333
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbul75db4vwzkzqszaqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbul75db4vwzkzqszaqn.png" alt="Image description" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4: Deploy a simple application on the cluster for chaos experiment
&lt;/h4&gt;

&lt;p&gt;To conduct chaos experiments, we will deploy a &lt;a href="https://github.com/sadebare/chaos-mesh-experiments-on-kubernetes/tree/main/react-app" rel="noopener noreferrer"&gt;simple React application&lt;/a&gt; using &lt;a href="https://github.com/sadebare/chaos-mesh-experiments-on-kubernetes/blob/main/deployment-manifest/app.yaml" rel="noopener noreferrer"&gt;Kubernetes manifest&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Now we can access the application &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcp9zezhh9kz79dw527fq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcp9zezhh9kz79dw527fq.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Chaos Experiments
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Experiment 1: PodChaos
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh.org/v1alpha1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PodChaos&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;custom-pod-failure-experiment&lt;/span&gt;
  &lt;span class="na"&gt;namespace&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh&lt;/span&gt; 
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pod-kill&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt; 
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;namespaces&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;chaos-experiment&lt;/span&gt; 
    &lt;span class="na"&gt;labelSelectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;app'&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;react-app'&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;30s'&lt;/span&gt;
  &lt;span class="na"&gt;gracePeriod&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;br&gt;
Simulates a scenario where all matching pods are forcefully killed. This helps test the resilience and auto recovery behavior of deployments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Effect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All pods with the label app: react app in the chaos experiment namespace were terminated and restarted.&lt;/li&gt;
&lt;li&gt;The application was briefly unavailable for 30 seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyxtp4vtxp51nk1oqwjv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyxtp4vtxp51nk1oqwjv.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthqu3m6y7w6qirurkn5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fthqu3m6y7w6qirurkn5y.png" alt="Image description" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiement 2: HTTPChaos
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh.org/v1alpha1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;HTTPChaos&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;custom-http-failure-experiment&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;namespaces&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;chaos-experiment&lt;/span&gt; 
    &lt;span class="na"&gt;labelSelectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;react-app&lt;/span&gt;
  &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Request&lt;/span&gt;
  &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;
  &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GET&lt;/span&gt;
  &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/&lt;/span&gt;
  &lt;span class="na"&gt;abort&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;br&gt;
Intercepts and aborts incoming HTTP GET requests to simulate upstream service failures or gateway crashes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Effect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All HTTP GET requests to / on port 80 were blocked for 10 minutes, making the app appear down.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8q8zb9hnxffcja9qdi2t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8q8zb9hnxffcja9qdi2t.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bypqi32h9wzt9v4rkkw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bypqi32h9wzt9v4rkkw.png" alt="Image description" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiement 3: NetworkChaos
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh.org/v1alpha1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;NetworkChaos&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;custom-network-bandwidth-failure-experiment&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;bandwidth&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;namespaces&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;chaos-experiment&lt;/span&gt; 
    &lt;span class="na"&gt;labelSelectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;app'&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;react-app'&lt;/span&gt;
  &lt;span class="na"&gt;bandwidth&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;rate&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;2mbps'&lt;/span&gt;
    &lt;span class="na"&gt;limit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20971520&lt;/span&gt;
    &lt;span class="na"&gt;buffer&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;br&gt;
Limits the network bandwidth to simulate slow network conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Effect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The application’s outgoing bandwidth was restricted to 2 Mbps, with a buffer and rate limit applied.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Useful for testing frontend responsiveness or service timeouts under constrained network speeds.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw52ld957ietfxqr2bnf8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw52ld957ietfxqr2bnf8.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvro4u4qvxggh9dcrfvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvro4u4qvxggh9dcrfvy.png" alt="Image description" width="800" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiement 4: StressChaos
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh.org/v1alpha1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;StressChaos&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;custom-cpu-stress-test-experiment&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;  &lt;span class="c1"&gt;# Apply chaos to all matching pods&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;namespaces&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;chaos-experiment&lt;/span&gt;
    &lt;span class="na"&gt;labelSelectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;react-app&lt;/span&gt;
  &lt;span class="na"&gt;stressors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;workers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;
      &lt;span class="na"&gt;load&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;  &lt;span class="c1"&gt;# 80% CPU load on each worker&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;10m&lt;/span&gt;  &lt;span class="c1"&gt;# Stress for 10 minutes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;br&gt;
Applies CPU pressure by generating artificial load on the container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Effect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Each matching pod experienced 80% CPU usage across 4 workers for 10 minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This can uncover performance bottlenecks or autoscaling issues.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdqbasjmjp9sj0kav8sg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdqbasjmjp9sj0kav8sg.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kjcuzs46wcf94wvwrej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0kjcuzs46wcf94wvwrej.png" alt="Image description" width="800" height="98"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Experiement 5: TimeChaos
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh.org/v1alpha1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;TimeChaos&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;custom-time-shift-example-experiment&lt;/span&gt;
  &lt;span class="na"&gt;namespace&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;chaos-mesh&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;namespaces&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;chaos-experiment&lt;/span&gt;
    &lt;span class="na"&gt;labelSelectors&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;react-app&lt;/span&gt;
  &lt;span class="na"&gt;timeOffset&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;-10m100ns'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt;&lt;br&gt;
Shifts the system clock on the container to simulate clock skew or time drift.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Effect:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;System time on each pod was shifted 10 minutes backward.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Helps test the behavior of time sensitive features like cron jobs, auth tokens, and expiry mechanisms.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma3lbrvwlumqpb9i4kx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma3lbrvwlumqpb9i4kx6.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚠ Note: TimeChaos only affects the main container process (PID 1) and its child processes. It does not impact processes launched externally using kubectl exec. Therefore, to test TimeChaos effectively, you need to observe the application’s internal behavior (logs, API responses, or time based operations) rather than relying on external exec based checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Chaos engineering with Chaos Mesh transforms failure into resilience by proactively testing systems under stress. By simulating real world disruptions like pod crashes and network delays you uncover weaknesses before they cause outages. This practice ensures your Kubernetes applications don’t just survive chaos but emerge stronger. In distributed systems, resilience isn’t luck, it’s engineered. 🚀&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS EKS AutoMode: Simplifying Kubernetes Management</title>
      <dc:creator>Shittu Sulaimon (Barry)</dc:creator>
      <pubDate>Sat, 21 Dec 2024 08:21:16 +0000</pubDate>
      <link>https://forem.com/sadebare/aws-eks-automode-simplifying-kubernetes-management-5h27</link>
      <guid>https://forem.com/sadebare/aws-eks-automode-simplifying-kubernetes-management-5h27</guid>
      <description>&lt;p&gt;From the word “Auto”, it’s clear that this feature emphasizes automation. EKS AutoMode is a revolutionary feature that AWS recently unveiled at re:Invent December 2024, with the goal of making Kubernetes cluster administration on Amazon Elastic Kubernetes Service (EKS) easier. Customers can concentrate on innovation and adding value to their organizations thanks to this feature, which eliminates the operational load typically involved with setting up and maintaining Kubernetes clusters.&lt;/p&gt;

&lt;p&gt;In the past, AWS simplified things for users by controlling the EKS clusters' control plane, which included maintaining intricate parts like the API server and other things. But with EKS AutoMode, AWS has gone one step further by automating networking, storage, and worker node management, relieving users of several infrastructure hassles. For enterprises wishing to implement Kubernetes without requiring in-depth knowledge of its underlying architecture, this breakthrough represents a major advancement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Advantages of AWS EKS AutoMode&lt;/strong&gt;&lt;br&gt;
Here are some of the standout benefits of this new feature:&lt;br&gt;
&lt;strong&gt;1. Simplified Cluster Operations:&lt;/strong&gt;&lt;br&gt;
The Operational Excellence pillar of AWS's Well-Architected Framework is specifically in line with EKS AutoMode's architecture. Essential processes like patching, version upgrades, cluster management, and putting security best practices into effect are all automated by it. As a result, clients no longer have to invest time in overseeing the clusters' operational lifecycle—AWS takes care of everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Improved Performance, Availability, and Security:&lt;/strong&gt; &lt;br&gt;
EKS AutoMode improves the security posture, availability, and performance of applications operating in the cluster by automating operational operations. Even while scaling or patching, workloads are guaranteed to fulfill strict security and performance requirements thanks to built-in AWS optimizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Cost-Optimized Compute and Right-Sizing:&lt;/strong&gt;&lt;br&gt;
EKS AutoMode's capacity to optimize computational resources is among its most remarkable attributes. By preventing over- or under-provisioning, it guarantees that the compute, memory, and storage resources needed for workloads are sized appropriately. This ensures that apps operate effectively while conserving money.&lt;br&gt;
EKS AutoMode further lowers expenses for clients by optimizing EC2 instances by automatically choosing the appropriate instance sizes and types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Built-In Health Monitoring and Auto Repair:&lt;/strong&gt;&lt;br&gt;
EKS AutoMode continuously monitors the health of applications and underlying resources, automatically repairing any issues that arise. This ensures that workloads remain highly available and resilient without manual intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Streamlined Kubernetes Adoption:&lt;/strong&gt;&lt;br&gt;
Even without a thorough understanding of Kubernetes architecture, enterprises may easily adopt Kubernetes with EKS AutoMode. For businesses wishing to adopt containerization and update their applications, this reduces the entry barrier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hands-On Guide: Creating an EKS AutoMode Cluster Using the AWS Console&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To establish a cluster in the console, we have two choices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Quick configuration (with EKS Auto Mode)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Custom configuration&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This post will teach you how to use the Quick configuration option to construct an EKS Auto Mode cluster.&lt;/p&gt;

&lt;p&gt;Step 1: Sign in to the AWS Management Console&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log in to your AWS account at AWS Management Console.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Navigate to the EKS (Elastic Kubernetes Service) dashboard by searching for EKS in the search bar.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 2: Create a new EKS cluster&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On the Amazon EKS dashboard, click on Create cluster.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Under the Cluster configuration section:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name: Enter a name for your cluster (e.g., eks-automode-cluster).&lt;/li&gt;
&lt;li&gt;Version: Select the Kubernetes version you’d like to use (the latest version is recommended for best support and features).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1tpy7r48z893pgtw11a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1tpy7r48z893pgtw11a.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
Step 3: The Cluster IAM Role should be chosen. Use the Create suggested role option if this is your first time setting up an EKS Auto Mode cluster.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Cluster IAM Role includes required permissions for EKS Auto Mode to manage resources including EC2 instances, EBS volumes, and EC2 load balancers, by default it will create &lt;code&gt;eksClusterRole&lt;/code&gt;, the name can actually change but the policy attached is the important part.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;These are the list policies that is created in the attached policies:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc0f03iv9wbanz7np6w4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcc0f03iv9wbanz7np6w4.png" alt="Image description" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 4: Choose the role of Node IAM. Use the Create suggested role option if this is your first time setting up an EKS Auto Mode cluster.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The necessary permissions for Auto Mode nodes to connect to the cluster are included in the Node IAM Role. Permissions to retrieve ECR images for your containers must be included in the Node IAM Role. By default we have the role named &lt;code&gt;AmazonEKSAutoNodeRole&lt;/code&gt; which have the following policy attached to it. The name can vary but the necessary policies should be attached.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fksvo09oas42qxvki1kke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fksvo09oas42qxvki1kke.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you recently created a new role, use the Refresh icon to reload the role selection dropdown.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 5: For your EKS Auto Mode cluster, choose the VPC. You can either select a VPC you've already made for EKS or click the build VPC button to build a new one.&lt;/p&gt;

&lt;p&gt;Step 6: (optional) Select View quick configuration defaults to review all configuration values for the new cluster. The table indicates some values are not editable after the cluster is created.&lt;/p&gt;

&lt;p&gt;Step 7: By selecting "Create cluster." Note that it may take up to fifteen minutes to construct the cluster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fusysoaj5u3m6pf4jvrs8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fusysoaj5u3m6pf4jvrs8.png" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After it has successfully created a cluster, let us view the nodes being provisioned by navigating to the compute tab:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj1xum48zyswfee8i1zo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj1xum48zyswfee8i1zo.png" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Here we see no node being provisioned and nodefinitely no resources will be available, so let us ttry and inflate workload into the cluster so we can have workloads and nodes running. let's &lt;code&gt;kubectl apply&lt;/code&gt; the below manifest file
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: apps/v1
kind: Deployment
metadata:
  name: inflate
spec:
  replicas: 1
  selector:
    matchLabels:
      app: inflate
  template:
    metadata:
      labels:
        app: inflate
    spec:
      terminationGracePeriodSeconds: 0
      nodeSelector:
        eks.amazonaws.com/compute-type: auto
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
        fsGroup: 2000
      containers:
        - name: inflate
          image: public.ecr.aws/eks-distro/kubernetes/pause:3.7
          resources:
            requests:
              cpu: 1
          securityContext:
            allowPrivilegeEscalation: false

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Now, let's recheck the nodes and the workload running from the console. From the below diagram, we can see it provisioned where the deployment is running.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn92o3ec7b7n1xwtyu02e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn92o3ec7b7n1xwtyu02e.png" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqng1hnoa5evw7eh3zdcw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqng1hnoa5evw7eh3zdcw.png" alt="Image description" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;We can then destroy and clean up the workload.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Out of the box solution that is applied to EKS is the observability of the cluster, added to it is a dashboard for Control plane monitoring, Cluster health issues, Cluster insights and Node health issues.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
