<?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>DEV Community: Shashank Palakurthi</title>
    <description>The latest articles on DEV Community by Shashank Palakurthi (@shashankpalakurthi).</description>
    <link>https://dev.to/shashankpalakurthi</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%2F3262947%2F43c718d6-42f7-4b32-b0d7-4c36124789a1.jpg</url>
      <title>DEV Community: Shashank Palakurthi</title>
      <link>https://dev.to/shashankpalakurthi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shashankpalakurthi"/>
    <language>en</language>
    <item>
      <title>Getting Started with Kubernetes</title>
      <dc:creator>Shashank Palakurthi</dc:creator>
      <pubDate>Mon, 16 Jun 2025 22:03:24 +0000</pubDate>
      <link>https://dev.to/shashankpalakurthi/getting-started-with-kubernetes-2nbe</link>
      <guid>https://dev.to/shashankpalakurthi/getting-started-with-kubernetes-2nbe</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Started with Kubernetes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is Kubernetes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kubernetes (often abbreviated as K8s) is an open-source container orchestration platform designed to automate the deployment, scaling, and management of containerized applications. It helps you run apps across multiple machines, taking care of things like load balancing, service discovery, scaling, and making sure everything stays up and running.&lt;/p&gt;

&lt;p&gt;Kubernetes helps you easily manage containerized applications, making sure they run reliably and can scale well in changing environments. It takes care of the underlying infrastructure complexity and gives developers and operations teams a consistent and dependable platform to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Kubernetes Architecture and Core Concepts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;At its core, Kubernetes follows a &lt;strong&gt;master-worker architecture&lt;/strong&gt;. The &lt;strong&gt;control plane&lt;/strong&gt; is responsible for maintaining the desired state of the cluster - such as which applications should be running and how they're configured. The &lt;strong&gt;worker nodes&lt;/strong&gt; are where the actual applications and workloads run inside containers.&lt;/p&gt;

&lt;p&gt;Organizations use &lt;strong&gt;managed Kubernetes services&lt;/strong&gt; to simplify operations. One popular option is &lt;strong&gt;Amazon Elastic Kubernetes Service (EKS)&lt;/strong&gt;. It takes care of the control plane for you, so you don't have to manually install or manage the core components. This lets teams focus more on deploying and managing applications rather than the infrastructure.&lt;/p&gt;

&lt;p&gt;Key components in an EKS environment include:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Server:&lt;/strong&gt; The main entry point for all Kubernetes operations. You interact with it using tools like &lt;strong&gt;kubectl&lt;/strong&gt; or the AWS CLI. This is fully managed by the service provider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scheduler :&lt;/strong&gt; Assigns pods to available nodes based on resource needs and defined constraints. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controller Manager :&lt;/strong&gt; Works behind the scenes to make sure the actual state of the cluster matches the desired state. It ensures things like replicas and configurations stay consistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;etcd:&lt;/strong&gt; A distributed key-value store used by Kubernetes to store all cluster data. In managed environments, this is typically maintained and backed up by the platform provider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubelet:&lt;/strong&gt; Runs on each node, making sure containers are up and running and remain healthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Common Kubernetes Concepts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Pods:&lt;/strong&gt; The smallest deployable unit in Kubernetes. A pod usually contains one or more containers that share the same network and storage resources, along with specifications on how to run them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployments:&lt;/strong&gt; Manage the lifecycle of pods, making sure the desired number of replicas are always running and replacing failed ones automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Services:&lt;/strong&gt; Define a logical group of pods and a way to access them. Services can be exposed internally or externally, depending on how they're configured.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ConfigMaps:&lt;/strong&gt; Store non-sensitive configuration data in key-value pairs. Useful for separating config from application code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secrets:&lt;/strong&gt; Store sensitive data like passwords, tokens, or API keys.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Where Do I Start?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does Kubernetes Fit Your Use Case?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before getting started with Kubernetes, it's important to ask a few key questions to see if it fits your needs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability:&lt;/strong&gt; Does your application need to scale automatically based on traffic or resource usage? Kubernetes handles dynamic scaling efficiently, making it easy to scale up or down as needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Distributed Architecture:&lt;/strong&gt; Are you running microservices or distributed systems? Kubernetes is well-suited for managing containers spread across multiple machines or environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;High Availability:&lt;/strong&gt; Does your application require consistent uptime and resilience? Kubernetes includes features like self-healing, rolling updates, and automatic failover to keep your services running even during issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Containerized Workloads:&lt;/strong&gt; Are your apps already containerized, or are you planning to containerize them? Kubernetes is built to manage containerized applications, helping you deploy, monitor, and scale them smoothly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complex Infrastructure Needs:&lt;/strong&gt; Does your setup involve load balancing, service discovery, or microservice communication? Kubernetes offers built-in solutions to simplify these tasks and manage them efficiently at scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Ready to Proceed?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If your application matches the criteria above and you're ready to use Kubernetes for container orchestration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy clustering!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>infrastructureascode</category>
      <category>containerization</category>
    </item>
    <item>
      <title>Getting Started with Kyverno: Kubernetes Policy Made Simple</title>
      <dc:creator>Shashank Palakurthi</dc:creator>
      <pubDate>Fri, 13 Jun 2025 05:43:29 +0000</pubDate>
      <link>https://dev.to/shashankpalakurthi/getting-started-with-kyverno-kubernetes-policy-made-simple-4f89</link>
      <guid>https://dev.to/shashankpalakurthi/getting-started-with-kyverno-kubernetes-policy-made-simple-4f89</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;What is Kyverno?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Kyverno is a policy admission controller that helps you manage and enforce rules across your clusters. It works by validating, mutating, or even blocking incoming requests to the Kubernetes API server based on a set of policies. In simple terms, Kyverno lets you automatically check whether resources meet certain standards before they’re created or updated. This helps ensure consistency, improve security, and catch misconfigurations early — without writing custom code.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Do We Need Kyverno?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As Kubernetes environments grow more complex, maintaining security and consistency becomes harder. Kyverno helps by providing a structured way to enforce policies that define what’s allowed and what’s not — making it easier to follow security best practices and organizational standards.&lt;/p&gt;

&lt;p&gt;For instance, you can create a policy that only permits pods to use images from an approved container registry. This ensures that teams deploy trusted, verified images — while blocking unapproved or potentially harmful workloads before they even start.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Kyverno Custom Resources&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Kyverno uses Custom Resource Definitions (CRDs) to define and manage policies within Kubernetes environments. These CRDs help you control how resources are created, modified, or validated — ensuring that workloads follow security and operational standards. Whether you’re working at the namespace level or managing your entire cluster, Kyverno provides flexible tools to help you enforce rules consistently.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Policy vs ClusterPolicy&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Kyverno provides two main types of policy resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Policy&lt;/strong&gt; — Applied within a specific namespace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ClusterPolicy&lt;/strong&gt; — Applied cluster-wide and not tied to any particular namespace.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both types allow you to define one or more rules, each of which includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Match&lt;/strong&gt; conditions: which resources the rule applies to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exclude&lt;/strong&gt; conditions: which resources to ignore.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each rule can perform actions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mutate&lt;/strong&gt; resources (e.g., add a label to a pod).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate&lt;/strong&gt; values (e.g., ensure a label or annotation exists).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify images&lt;/strong&gt; (e.g., check if a container uses an approved image hash).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate&lt;/strong&gt; other resources (e.g., auto-create ConfigMaps or roles).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can run these policies in two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Audit mode:&lt;/strong&gt; Logs violations without blocking the request — ideal for testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enforce mode:&lt;/strong&gt; Actively blocks resources that don’t meet policy requirements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Kyverno also supports PolicyExceptions to allow specific resources to bypass a policy when needed — useful for controlled flexibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Audit Mode&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In audit mode, Kyverno scans existing resources across namespaces to check if they comply with defined policies. This mode doesn’t block or modify anything — it simply reports violations. It’s a safe and practical way to test new policies before enforcing them in production, helping teams understand the potential impact without disrupting workloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Enforce Mode&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Enforce mode is used to apply policies to &lt;strong&gt;newly created or modified resources&lt;/strong&gt;. When a resource doesn’t meet policy requirements, Kyverno will block it. This ensures that all new workloads follow security and operational standards from the start.&lt;/p&gt;

&lt;p&gt;Note that &lt;strong&gt;enforce mode does not affect existing resources&lt;/strong&gt;. Even if something already running violates a policy, it won’t be removed or changed unless the policy is also applied in another way.&lt;/p&gt;

&lt;p&gt;Some namespaces can be excluded from enforcement if needed — for example, system or exempted dev namespaces.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;PolicyException&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;There may be cases where a workload intentionally needs to bypass a policy — for example, a temporary or special-use deployment. That’s where &lt;strong&gt;PolicyException&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;p&gt;A PolicyException lets you create a rule to skip validation or mutation for specific resources. These exceptions are defined using match selectors based on namespace, resource type, or resource name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Use exceptions sparingly. If you find yourself needing too many exceptions, it may be a sign that the policy itself needs to be updated or made more flexible.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Understanding PolicyReport in Kyverno&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Kyverno automatically generates &lt;strong&gt;PolicyReports&lt;/strong&gt; that summarize which resources in your cluster are compliant or non-compliant with the defined policies. These reports help you track which workloads pass or fail validation checks based on your current policies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: PolicyReports only reflect results from &lt;strong&gt;audit mode&lt;/strong&gt;. Since audit mode evaluates existing resources without blocking them, the reports provide a live snapshot of what’s happening in the cluster.&lt;/p&gt;

&lt;p&gt;Resources blocked in &lt;strong&gt;enforce mode&lt;/strong&gt; don’t appear in these reports — because they never get created in the first place.&lt;/p&gt;

&lt;p&gt;PolicyReports are especially helpful when testing new policies, as they show the potential impact before enforcement is turned on.&lt;/p&gt;

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

&lt;p&gt;Kyverno makes Kubernetes policy management approachable by using familiar YAML syntax and integrating seamlessly with cluster operations. Whether you’re just starting with audit mode or rolling out enforcement in production, Kyverno helps teams maintain consistency, security, and governance — without introducing unnecessary complexity.&lt;/p&gt;

&lt;p&gt;As you begin experimenting with Kyverno, start small: test your policies in audit mode, review PolicyReports, and gradually move toward enforcement. And remember — policies are not just guardrails, they’re a powerful way to encode best practices into your infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Resources&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;About Kyverno — Official Website: &lt;a href="https://kyverno.io/#about-kyverno" rel="noopener noreferrer"&gt;https://kyverno.io/#about-kyverno&lt;/a&gt;&lt;br&gt;
Kyverno Policy Samples: &lt;a href="https://kyverno.io/policies/" rel="noopener noreferrer"&gt;https://kyverno.io/policies/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>cloud</category>
      <category>kyverno</category>
    </item>
  </channel>
</rss>
