<?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: Lakshya Gupta</title>
    <description>The latest articles on Forem by Lakshya Gupta (@lakshya806).</description>
    <link>https://forem.com/lakshya806</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%2F675511%2Fff5a5dbc-4b3f-4c0b-a0da-08f9697ec703.jpg</url>
      <title>Forem: Lakshya Gupta</title>
      <link>https://forem.com/lakshya806</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lakshya806"/>
    <language>en</language>
    <item>
      <title>Kubernetes Architecture Simplified #2</title>
      <dc:creator>Lakshya Gupta</dc:creator>
      <pubDate>Fri, 06 Aug 2021 22:49:28 +0000</pubDate>
      <link>https://forem.com/lakshya806/kubernetes-architecture-simplified-2-4aag</link>
      <guid>https://forem.com/lakshya806/kubernetes-architecture-simplified-2-4aag</guid>
      <description>&lt;p&gt;So by now, I have heard a lot about &lt;strong&gt;Kubernetes&lt;/strong&gt; and how people are finding it so cool. This really intrigued me and I wanted to get a deeper look at the &lt;strong&gt;architecture&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Here is my attempt to put down my learnings in a simple language.&lt;/p&gt;

&lt;p&gt;As we know, &lt;strong&gt;Kubernetes&lt;/strong&gt; is a container orchestration tool that has revolutionized the deployment process. Everyone is talking about it and day by day, more and more companies are adopting it. Let's understand its structure.&lt;/p&gt;

&lt;p&gt;If you have any doubt while going through the blog, feel free to refer to the &lt;strong&gt;Kubernetes&lt;/strong&gt; &lt;a href="https://kubernetes.io/docs/home/" rel="noopener noreferrer"&gt;Official Documentation&lt;/a&gt;. You can also refer to this &lt;a href="https://dev.to/lakshya806/introduction-to-kubernetes-1-3ik1"&gt;blog&lt;/a&gt; to get a brief &lt;strong&gt;Introduction to Kubernetes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Before diving deep into the architecture let's first understand few concepts that will help understand the workflow of &lt;strong&gt;K8s(Kubernetes)&lt;/strong&gt; better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Concepts Behind Kubernetes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Declarative vs Imperative
&lt;/h3&gt;

&lt;p&gt;Let's understand this with an example, suppose you were asked to drive a car at exactly 60km/hr. To attain this, you would probably try to speed up the car till you reach 60km/hr and if the car was over 60km/hr, you would try to slow it down. &lt;/p&gt;

&lt;p&gt;This is a &lt;strong&gt;declarative model&lt;/strong&gt; where you describe the &lt;strong&gt;desired state&lt;/strong&gt; without actually stating the actions required to reach there. &lt;/p&gt;

&lt;p&gt;On the other hand, if you were simply told to slow down or to speed up the car, that would be an &lt;strong&gt;imperative model&lt;/strong&gt; where you were provided the list of actions that will create the &lt;strong&gt;desired state&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So it is important to understand that &lt;strong&gt;Kubernetes&lt;/strong&gt; runs on a &lt;strong&gt;declarative model&lt;/strong&gt; that saves us a lot of time and energy. We can just say "make sure that there are four pods running" instead of telling it spicifically "run this pod, run that pod". &lt;strong&gt;K8s&lt;/strong&gt; will take care of everything else for us.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Control loop
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fr2p8qq12jynec5a5ryhj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fr2p8qq12jynec5a5ryhj.png" alt="observe,diff and act control loop"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;control loops&lt;/strong&gt; are one of the core features that make &lt;strong&gt;Kubernetes&lt;/strong&gt; so special. Almost every structure in &lt;strong&gt;Kubernetes&lt;/strong&gt; uses some sort of a control loop, where you describe the &lt;strong&gt;state&lt;/strong&gt; of the objects you want and not the actual steps to get there. &lt;/p&gt;

&lt;p&gt;This is a loop that is constantly running and it includes the following processes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;observe&lt;/strong&gt;: it observes the current state of the Kubernetes &lt;a href="https://kubernetes.io/docs/concepts/architecture/" rel="noopener noreferrer"&gt;cluster&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;diff&lt;/strong&gt;: compares the current state of the cluster to the desired state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;act&lt;/strong&gt;: makes sure that the current state meets the desired state.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3. Reconciliation
&lt;/h3&gt;

&lt;p&gt;If you understood the control loop and declarative statements, this is basically the implementation of the two. Reconciliation is a simple process that makes sure that the &lt;strong&gt;actual state&lt;/strong&gt; is looking like the &lt;strong&gt;desired state&lt;/strong&gt; via the observe, diff, and act control loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kubernetes Architecture
&lt;/h2&gt;

&lt;p&gt;Now that we have understood about &lt;strong&gt;states&lt;/strong&gt; and &lt;strong&gt;control loops&lt;/strong&gt; in Kubernetes, this would be the right time to get introduced to the actual &lt;strong&gt;architecture of Kubernetes&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Frgqkypxmlsnhyt1bzh6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Frgqkypxmlsnhyt1bzh6t.png" alt="Kubernetes Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Learning K8s can be overwhelming so I will try to provide a very high-level view of how it is structured. Do check out the &lt;a href="https://kubernetes.io/docs/tasks/tools/" rel="noopener noreferrer"&gt;Official documentation&lt;/a&gt; for referencing. &lt;/p&gt;

&lt;h3&gt;
  
  
  1. Master Node
&lt;/h3&gt;

&lt;p&gt;On the left, we have the &lt;strong&gt;Master node&lt;/strong&gt;, and connected to it are several &lt;strong&gt;worker nodes&lt;/strong&gt;. The master node runs several important processes that are important to run Kubernetes. It also controls and manages the worker nodes. &lt;/p&gt;

&lt;p&gt;The master node is where the plan of action required to align the current state to the &lt;strong&gt;desired state&lt;/strong&gt; is formed. Master node mainly consists of the following component:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;kube-apiserver&lt;/strong&gt;: This is the &lt;strong&gt;most important&lt;/strong&gt; component responsible for handling all the internal and external requests. &lt;br&gt;
&lt;strong&gt;Kube-apiserver&lt;/strong&gt; allows communication between the &lt;strong&gt;master node&lt;/strong&gt; and the &lt;strong&gt;worker nodes&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;kube-schedular&lt;/strong&gt;: It basically creates new pods and decides which worker node to deploy it on. &lt;br&gt;
It also consists of all the resources to create and deploy &lt;strong&gt;pods&lt;/strong&gt; on the &lt;strong&gt;worker nodes&lt;/strong&gt; if an old pod dies. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;kube-controller-manager&lt;/strong&gt;: This runs &lt;strong&gt;controller processes&lt;/strong&gt; in the background that take care of the cluster. One of the controllers' function is to communicate to the &lt;strong&gt;kube-schedular&lt;/strong&gt; when a pod dies and makes sure the &lt;strong&gt;desired state&lt;/strong&gt; that we talked about, is reached.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;etcd&lt;/strong&gt;: It is a &lt;strong&gt;key-value&lt;/strong&gt; store database that stores the state of the &lt;strong&gt;Kubernetes&lt;/strong&gt; cluster like the number of pods, their state, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2. Worker Node
&lt;/h3&gt;

&lt;p&gt;On the right, we have the &lt;strong&gt;worker node&lt;/strong&gt;. While the &lt;strong&gt;master node&lt;/strong&gt; runs the tasks that are important for Kubernetes to function, it is the &lt;strong&gt;worker node&lt;/strong&gt; that runs the tasks given by the user. &lt;/p&gt;

&lt;p&gt;There can be more than one worker nodes attached to a master node but at least one worker node is needed to run the cluster. &lt;/p&gt;

&lt;p&gt;Before looking at the components of the worker node, let's first understand what &lt;strong&gt;pods&lt;/strong&gt; are. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pods&lt;/strong&gt; are the smallest unit in Kubernetes. They are made up of one or many &lt;a href="https://www.docker.com/resources/what-container#:~:text=A%20container%20is%20a%20standard,one%20computing%20environment%20to%20another.&amp;amp;text=Available%20for%20both%20Linux%20and,same%2C%20regardless%20of%20the%20infrastructure." rel="noopener noreferrer"&gt;containers&lt;/a&gt; and act as a single instance of an application.&lt;/p&gt;

&lt;p&gt;Now coming back to the &lt;strong&gt;worker nodes&lt;/strong&gt;, they consists of:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Container runtime engine&lt;/strong&gt;: This is an engine that runs the &lt;strong&gt;containers&lt;/strong&gt; inside the &lt;strong&gt;pod&lt;/strong&gt;. For example, we have &lt;strong&gt;Docker&lt;/strong&gt; in the figure above. You can read more about Docker &lt;a href="https://docs.docker.com/get-started/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;kubelet&lt;/strong&gt;: It interacts with the container runtime engine(Docker) and makes sure that the required containers are running inside the pods. It also facilitates communication between the worker node and the master node. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;kube-proxy&lt;/strong&gt;: This enables internal as well as external networking among the &lt;strong&gt;pods&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Yaay you reached the end! This was a brief overview of the &lt;strong&gt;Kubernetes Architecture&lt;/strong&gt;. I hope you now have a clearer picture of the concepts behind it. &lt;/p&gt;

&lt;p&gt;There are few details that I have omitted in order to keep the explanation simple, but feel free to check out the &lt;a href="https://kubernetes.io/docs/home/" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;. I really hope you liked the blog and do let me know in the comments if you did. &lt;/p&gt;

&lt;p&gt;Feel free to &lt;strong&gt;connect&lt;/strong&gt; with me on &lt;a href="https://twitter.com/lakshya806" rel="noopener noreferrer"&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt; and say hi, I'll be more than happy to have a conversation. :) &lt;/p&gt;

&lt;p&gt;This blog is a part of my &lt;strong&gt;#100DaysOfKubernetes&lt;/strong&gt; challenge. Do check out my journey on &lt;a href="https://twitter.com/lakshya806" rel="noopener noreferrer"&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/a&gt; when you drop by. :D&lt;/p&gt;

&lt;p&gt;Thanks for reading! :)&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>beginners</category>
      <category>cloudnative</category>
    </item>
    <item>
      <title>Introduction To Cloud Native Chaos Engineering</title>
      <dc:creator>Lakshya Gupta</dc:creator>
      <pubDate>Thu, 29 Jul 2021 16:00:25 +0000</pubDate>
      <link>https://forem.com/lakshya806/introduction-to-cloud-native-chaos-engineering-28d6</link>
      <guid>https://forem.com/lakshya806/introduction-to-cloud-native-chaos-engineering-28d6</guid>
      <description>&lt;p&gt;In this blog, I will be sharing my learning from a Live stream about chaos engineering. the link to which can be found [here]. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=LK0oDLQE4S8"&gt;https://www.youtube.com/watch?v=LK0oDLQE4S8&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problems before Chaos Engineering
&lt;/h2&gt;

&lt;p&gt;Before Chaos Engineering was adopted there was no way to tackle problems that were unpredictable. For example, high traffic on the app would cause a system outage. This outage, even for a small time would cost millions to companies and their reputation as well. This is where we felt that normal streamlined testing is not enough.&lt;/p&gt;

&lt;p&gt;There are many services running in the system and the interaction between them can be unpredictable. These interactions often result in downtime of the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Chaos Engineering?
&lt;/h2&gt;

&lt;p&gt;Chaos engineering can be thought of as a mechanism of running experiments on the system by exposing it to real-life scenarios to see whether the system can withstand unexpected disruptions. These include scenarios of high traffic on the system or when the system faces any sort of outage. By running these experiments on the system we try to find out its weakness and makes the system more resilient. Any event capable of disrupting steady state is a potential variable in a Chaos experiment&lt;/p&gt;

&lt;p&gt;There are four steps in Chaos Engineering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steady-state&lt;/li&gt;
&lt;li&gt;Hypothesis&lt;/li&gt;
&lt;li&gt;Experiment&lt;/li&gt;
&lt;li&gt;Adapt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More details on these can be found on &lt;a href="https://principlesofchaos.org/"&gt;https://principlesofchaos.org/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is resilience
&lt;/h2&gt;

&lt;p&gt;Resilience is a system's ability to stay working even when a fault is occurred. Resilience of a system can be challenged in many ways such as when the services become unhealthy or when a node in a Kubernetes cluster goes to not-ready state or when there is a memory leak in the system. Chaos engineering caters to these problems of not maintaining a resilient system.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to build resilience
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Identify steady state conditions i.e. the state that we want the system to be in ideally.&lt;/li&gt;
&lt;li&gt;Introduce a fault related to what you want to test&lt;/li&gt;
&lt;li&gt;Did the system regain its steady state after introducing a fault?&lt;/li&gt;
&lt;li&gt;If yes then the system is resilient&lt;/li&gt;
&lt;li&gt;If no then work on this weakness and again introduce a fault&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Litmus and Chaos Engineering is introduced in DevOps space?
&lt;/h2&gt;

&lt;p&gt;The general idea is that we should also focus on operations and not just the development side. Instead of writing tests for all the microservices individually, we can automate the entire process using Litmus. This make everything very smooth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Kubernetes?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes is the de facto standard in the industry.&lt;/li&gt;
&lt;li&gt;Kubernetes is highly scalable.&lt;/li&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cloud Native Chaos Engineering
&lt;/h2&gt;

&lt;p&gt;Cloud Native leverages the idea of using cloud storage to run microservices on the system. Some principles of Cloud Native Chaos Engineering are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Projects are mainly open source&lt;/li&gt;
&lt;li&gt;Community support&lt;/li&gt;
&lt;li&gt;Open observability&lt;/li&gt;
&lt;li&gt;Open API&lt;/li&gt;
&lt;li&gt;GitOps&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Run services without an outage&lt;/li&gt;
&lt;li&gt;Run services to meet the business SLAs and SLOs&lt;/li&gt;
&lt;li&gt;Scale your services on demand&lt;/li&gt;
&lt;li&gt;Upgrade you services without an outage&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Some advantages of using Litmus:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Litmus is cross-cloud&lt;/li&gt;
&lt;li&gt;It takes a cloud-native approach to create, manage and monitor chaos&lt;/li&gt;
&lt;li&gt;It is a complete framework to implement Chaos Engineering within a cloud-native ecosystem&lt;/li&gt;
&lt;li&gt;It helps both developers and SREs to automate the chaos experiment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Useful Resources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Beginner friendly issues to contribute:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbWYwZVYxMGxPMnZza3Z1RmdocXdpcm9lMW9pZ3xBQ3Jtc0tsU0pGTEdTY1BlMjI3NzhRN0MtOVFfVER3aXJPZGh3UVBrTkxXbmtfa1p3SURjLTdGUGFfZjkyc0d3cTI3NGxzb0c2TkpDbUptTjNlbjY3RTlzUlZaQmdpd0E3c2Y4ZjFvaWsxeVMxcWkwQjA3WXZXWQ&amp;amp;q=https%3A%2F%2Fgithub.com%2Flitmuschaos%2Flitmus"&gt;https://github.com/litmuschaos/litmus&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqa0FPMVJ5ZWVRb1hCQjFpRkpWcWxfMXBoV1pNUXxBQ3Jtc0trc2lfZ0Y1V1lleHI5SHdOaDZlWC0zbzctS3haUXduM0NueWZnZG90aW9SWmlwZEw0V25iT2t5aUZFVS12Y3hGSm53Mkp5WmRQZ0tVT2UyNmpza19CdzFCWW95eDNGNFpyTXF2Q1dXd1J6STNPbTZmbw&amp;amp;q=https%3A%2F%2Fgithub.com%2Flitmuschaos%2Ftest-tools"&gt;https://github.com/litmuschaos/test-t...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbnNrMXdtYV9lQmhKYWxyZ2V2eHNHZEtvY0k5Z3xBQ3Jtc0trMGlQWERyM3dlYl9Wa0ZYU0ZCTDN6aEdKRjh4X2daaGpZNXJoNE1abGR4SDlQQllRRjgtTEVJOV9Tc2lNd3hENmZyU2ZaaThyc1VJWjhTb1V2cVB5R3FEZTZPYmo1V1NUdE1KaDlONDJwZGxIUklJdw&amp;amp;q=https%3A%2F%2Fgithub.com%2Flitmuschaos%2Fwebsite-litmuschaos"&gt;https://github.com/litmuschaos/websit...&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Blogs and videos to learn more about Litmus:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbl9USS04ck1qZ2RIY0l5UmZsZGZIWXl5T3plQXxBQ3Jtc0tuY2I5czFsLUVwMGFDT1MzeGFwbm80LV9abl9ZSVVnMTRrMlllVmdnNV9ldW1JakVzREdsRHkybnZuaFJRYTVWMnRKSjU2Z0ppaXh0WmNCemdXZ0VOYWwwRXhTaHBhQmZtWS1lQkJwVXp4aUNEeUVZMA&amp;amp;q=https%3A%2F%2Fdev.to%2Flitmus-chaos"&gt;https://dev.to/litmus-chaos&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbHF0U2ozMXNRdUtqV1lPVzlwcDJtS0RXTlFmUXxBQ3Jtc0trWkpDYkwtcUhiVmpGMlFFXzdqZFJCTUM4THBBSzFFY05ZZjdlcE15dHBEUWFxWURDVk0zTXFCN2xtUDFHRUx5eG9LcGhaamFrbVZfbDBwbzV1QzF2UjF3QWE0eHN2X2hNU2NuQUE3ZXJCcFQ4ek1xOA&amp;amp;q=https%3A%2F%2Fmedium.com%2Flitmus-chaos"&gt;https://medium.com/litmus-chaos&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/channel/UCa57PMqmz_j0wnteRa9nCaw/videos"&gt;https://www.youtube.com/channel/UCa57...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbmR6UVh2Z0VqTUxFSUN5dkV5Z1pKRkFhVFNqUXxBQ3Jtc0tsdEp4QnIxS3VpMjZVTHlMRF83OXM3VHptdjl1VERyTVg4X0tKWVFhRDlaZTI2WWlUUmNCTkNzQnJqanBaZ2k4Z2Q4RkNiOWpfb2FIMmFvT1AxZHpXTXg1NG10U254RmRLdXNVakFJNjB6Yk0takFWNA&amp;amp;q=https%3A%2F%2Fgithub.com%2Flitmusbot%2Fkatacoda-scenarios"&gt;https://github.com/litmusbot/katacoda...&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can join the slack community too! That is where you can ask your queries and get to learn more about chaos &amp;amp; contributing to Litmus! To join the slack please follow the following steps!&lt;br&gt;
Step 1: Join the Kubernetes slack using the following link: &lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbUpyY0ZFYmFvS2ZqQjVkNXAzY0ZsTkpubHc1Z3xBQ3Jtc0tsdVFZYXVxTGFOTHNKNzE5TGw2ME51dUVOR25paTFsWDlGMzR6MVFuQWRBVnV2ZGdFSnF3Q3lDVFVhakEybF83dGtYWVZfZXJZYnUwaHgtMFpoWnlzWGpYOGtEeVNvbEdOd1V6bm53Yjl1NmdjcWxaSQ&amp;amp;q=https%3A%2F%2Fslack.k8s.io%2F"&gt;https://slack.k8s.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Join the &lt;a href="https://www.youtube.com/hashtag/litmus"&gt;#litmus&lt;/a&gt; channel on the Kubernetes slack or use this link after joining the Kubernetes slack: &lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqbkhBMEttVHo0SVk0dHkzUk1iYlNQSHZFUTVyQXxBQ3Jtc0tsUWhRRzFEYnBZN1lfWXNjZG5ORW5nMGMxbnh0Y3Y2U0l2eUhIeU9RenQ3cHZCOFV5Y0s3Vlg1eHlSVVhSb2E4S2EweEhSSFU4cU9OMGFzZkNaWkszVjdidTNNaUZUblpXa1JmTjFpdHNEY3U1Y1Vudw&amp;amp;q=https%3A%2F%2Fslack.litmuschaos.io%2F"&gt;https://slack.litmuschaos.io/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Thank you! :)
&lt;/h3&gt;

</description>
      <category>kubernetes</category>
      <category>cloudnative</category>
      <category>litmuschaos</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Introduction to Kubernetes #1 </title>
      <dc:creator>Lakshya Gupta</dc:creator>
      <pubDate>Wed, 28 Jul 2021 11:36:39 +0000</pubDate>
      <link>https://forem.com/lakshya806/introduction-to-kubernetes-1-3ik1</link>
      <guid>https://forem.com/lakshya806/introduction-to-kubernetes-1-3ik1</guid>
      <description>&lt;h2&gt;
  
  
  What is Kubernetes?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes is an open-source container orchestration tool powered by Google.&lt;/li&gt;
&lt;li&gt;It helps us manage apps that are made of containers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What problems does it solve ?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Apps moving from a monolithic app structure to microservices comprise of isolated containers, and managing these containers can be a difficult task.&lt;/li&gt;
&lt;li&gt;Kubernetes guarantees 

&lt;ol&gt;
&lt;li&gt;High availability &lt;/li&gt;
&lt;li&gt;Scalability &lt;/li&gt;
&lt;li&gt;Disaster Recovery&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Basic architecture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;There is one &lt;strong&gt;master node&lt;/strong&gt; and connected to it are a couple of &lt;strong&gt;worker nodes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Each node has a kubelet running on it that enables it to connect to other nodes.&lt;/li&gt;
&lt;li&gt;Worker nodes are where the actual work is happening.&lt;/li&gt;
&lt;li&gt;The master node runs several processes that are important to run Kubernetes. These processes are:

&lt;ul&gt;
&lt;li&gt;API Server: This is a container that is an entry point to the Kubernetes cluster.&lt;/li&gt;
&lt;li&gt;Controller Manager: Keeps track of what is happening in the cluster.&lt;/li&gt;
&lt;li&gt;Scheduler: It is responsible for scheduling containers on different nodes.&lt;/li&gt;
&lt;li&gt;Etcd: It is key-value storage that holds the current state of a Kubernetes cluster at any given time. This is the backing store of Kubernetes&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Worker nodes run heavier tasks than master nodes but the master nodes run more important tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Basic Concepts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Pod: A pod is the smallest unit that a Kubernetes user can interact with.&lt;/li&gt;
&lt;li&gt;On each worker node, there are multiple pods and on each pod, there are multiple containers.&lt;/li&gt;
&lt;li&gt;We usually have one pod per application.&lt;/li&gt;
&lt;li&gt;Each pod has its own self-containing server and its own internal IP addresses.&lt;/li&gt;
&lt;li&gt;These pods connect to each other using this internal IP address.&lt;/li&gt;
&lt;li&gt;If a pod dies a new pod is created which has a new IP address.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is a service?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definition&lt;/strong&gt;: An abstract way to expose an application running on a set of Pods as a network service.&lt;/p&gt;

&lt;p&gt;Pods get created and destroyed all the time in Kubernetes according to the need of the deployment. Every time a new pod is created it gets a new IP address and its connection with other pods gets lost. It would be inconvenient to adjust the IP addresses all the time. This is where &lt;strong&gt;services&lt;/strong&gt; come to play.&lt;/p&gt;

&lt;p&gt;A service is set in front of a pod(or replica of pods) and has its own IP address which is permanent.Clients use this IP address instead of the pods' IP addresses. So even if a pod dies and the IP address gets changed, it won't affect the communication between the the services.&lt;/p&gt;

&lt;p&gt;Services have many functionalities, it has a permanent IP address and at the same time it is a load balancer.&lt;/p&gt;

&lt;p&gt;More about it on the next blog :) &lt;br&gt;
Stay Tuned!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>cloudnative</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
