<?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>Debug School: Kumar</title>
    <description>The latest articles on Debug School by Kumar (@kumar).</description>
    <link>https://www.debug.school/kumar</link>
    <image>
      <url>https://www.debug.school/images/F1QWPU_asClivPqZa6PuThdvg7QhDvpGS6l7liWoGO4/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvdXNl/ci9wcm9maWxlX2lt/YWdlLzY5NS83MjA1/MTYxZS05YjQyLTRl/NmMtYjVmMC05ZjVi/OWMxNDlmOTMucG5n</url>
      <title>Debug School: Kumar</title>
      <link>https://www.debug.school/kumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.debug.school/feed/kumar"/>
    <language>en</language>
    <item>
      <title>Kubernetes Resources - Services</title>
      <dc:creator>Kumar</dc:creator>
      <pubDate>Mon, 25 Sep 2023 07:45:18 +0000</pubDate>
      <link>https://www.debug.school/kumar/kubernetes-services-4hj2</link>
      <guid>https://www.debug.school/kumar/kubernetes-services-4hj2</guid>
      <description>&lt;h2&gt;
  
  
  What are Kubernetes Services?
&lt;/h2&gt;

&lt;p&gt;Kubernetes Services are a way to expose the functionalities/API provided by the workloads (containers) hosted in the cluster. There are many types of services, ClusterIP Service, NodePort Service, LoadBalancer Service. Each have its uses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do we need them and how they work?
&lt;/h2&gt;

&lt;p&gt;Kubernetes workloads (containers) run in an overlay network that is internal to the Kubernetes cluster. In order to expose the functionalities/APIs provided by these workloads (containers), it becomes imperative that Kubernetes provides a mechanism. Kubernetes has the concept of Services for this purpose.&lt;/p&gt;

&lt;h3&gt;
  
  
  ClusterIP Service
&lt;/h3&gt;

&lt;p&gt;Expose the pod/deployment/rc across the cluster (all nodes). This provides an abstraction from changing Pod IP addresses (when pods get replaced). The ClusterIP Service gets a fixed IP address and based on label selectors workloads are matched and their pod IPs are used as endpoints by the ClusterIP Service to forward traffic. In the event of a Pod going down and replaced, the Kubernetes cluster will immediately replace the old the Pod IP with the newly replaced Pod IP.&lt;/p&gt;

&lt;h3&gt;
  
  
  NodePort Service
&lt;/h3&gt;

&lt;p&gt;Expose the pod/deployment/rc externally/outside of the cluster. This type of service contains a ClusterIP service and a Node port mapping. A Node Port mapping will result in a decided port opened in all Nodes (Worker+Master) and that will forward traffic to the ClusterIP Service.&lt;/p&gt;

&lt;h3&gt;
  
  
  LoadBalancer Service
&lt;/h3&gt;

&lt;p&gt;Create and expose the LoadBalancer in the hosting platform (cloud/on prem). This type of service includes a NodePort Service and the automation integration with the hosting compute platform for obtaining a external LoadBalancer configured. This is used to create a LoadBalancer in the hosting cloud platform to forward traffic to the NodePort service.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>services</category>
      <category>loadbalancing</category>
      <category>availability</category>
    </item>
    <item>
      <title>Kubernetes Resources - Basics</title>
      <dc:creator>Kumar</dc:creator>
      <pubDate>Fri, 22 Sep 2023 12:05:14 +0000</pubDate>
      <link>https://www.debug.school/kumar/kubernetes-day-2-4n33</link>
      <guid>https://www.debug.school/kumar/kubernetes-day-2-4n33</guid>
      <description>&lt;h2&gt;
  
  
  What is Namespaces?
&lt;/h2&gt;

&lt;p&gt;A Namespace is a logical isolation of compute and kubernetes resources. Via namespaces multiple teams can share a kubernetes cluster for the purposes without stepping over each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.debug.school/images/BlFrxCfOB6jxNn6XPTAjVLvux6Oz-wbit-FM29cZGOY/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvZHk2bXNt/dXN1dm8yZzE3Ynoz/N3YucG5n" class="article-body-image-wrapper"&gt;&lt;img src="https://www.debug.school/images/BlFrxCfOB6jxNn6XPTAjVLvux6Oz-wbit-FM29cZGOY/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvZHk2bXNt/dXN1dm8yZzE3Ynoz/N3YucG5n" alt="Image description" width="800" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Pod?
&lt;/h2&gt;

&lt;p&gt;A Pod is a unit of compute in Kubernetes. This an abstraction used by Kubernetes to handle containers. Kubelet is responsible for initializing Pods. Pods are logical and not represented by any running process(es). Rather a pod has mappings to set of containers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.debug.school/images/TbZi0hWm5tn124sCzDMS-xb2Kggz--7Fehjuvmo7Q88/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvZjNld29j/dmd5NTFzMzVhMWZl/ZXcucG5n" class="article-body-image-wrapper"&gt;&lt;img src="https://www.debug.school/images/TbZi0hWm5tn124sCzDMS-xb2Kggz--7Fehjuvmo7Q88/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvZjNld29j/dmd5NTFzMzVhMWZl/ZXcucG5n" alt="Image description" width="800" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ReplicaSets?
&lt;/h2&gt;

&lt;p&gt;A ReplicaSet is used to specify scaling and replication of pods. In Kubernetes we have the capability to auto heal the setup. ReplicaSet is where we specify the target state (number of instances of pods to be deployed) and based on that, Kubernetes will ensure those many pods are alive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.debug.school/images/NWEW9yI1vEWOo3aPDJYMsiIAzylUka7L6wq58ejit1w/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvMWl1Mmhp/ZzRlOTd1MWRxdGg4/ZHYucG5n" class="article-body-image-wrapper"&gt;&lt;img src="https://www.debug.school/images/NWEW9yI1vEWOo3aPDJYMsiIAzylUka7L6wq58ejit1w/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvMWl1Mmhp/ZzRlOTd1MWRxdGg4/ZHYucG5n" alt="Image description" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Deployment?
&lt;/h2&gt;

&lt;p&gt;A Deployment resource is an improvement of RS and has additional features to perform rollouts/rollbacks and rollout strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.debug.school/images/xjLsb37JyVp_gQtaxGQPhE8Elksu4LZ3xExlr1F81SY/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvZ3Jwa2R4/dm51OTFheTNyYzU5/M2gucG5n" class="article-body-image-wrapper"&gt;&lt;img src="https://www.debug.school/images/xjLsb37JyVp_gQtaxGQPhE8Elksu4LZ3xExlr1F81SY/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvZ3Jwa2R4/dm51OTFheTNyYzU5/M2gucG5n" alt="Image description" width="800" height="125"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kubernetes</title>
      <dc:creator>Kumar</dc:creator>
      <pubDate>Thu, 21 Sep 2023 09:13:19 +0000</pubDate>
      <link>https://www.debug.school/kumar/kubernetes-59kj</link>
      <guid>https://www.debug.school/kumar/kubernetes-59kj</guid>
      <description>&lt;h2&gt;
  
  
  What is Kubernetes?
&lt;/h2&gt;

&lt;p&gt;Kubernetes is a container workload orchestration and management tool. It was created by Google and open sourced to all by 2015. Since then, it has attained significant adoption as the main tool for container orchestration by the industry. The Cloud Native Consortium Foundation (CNCF) manages this open source technology and along with the an ecosystem has created to build and release related technologies and framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do we need it?
&lt;/h2&gt;

&lt;p&gt;We need this for orchestration of workloads/containers. Kubernetes has a mechanism to ensure that it automatically self heals and corrects recoverable errors/faults in the system. This makes our applications much more resilient as failures are auto-recovered and the Engineering staff will be involved for non-recoverable errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works?
&lt;/h2&gt;

&lt;p&gt;Kubernetes is made up of Control Plane components that are installed in the Kubernetes Master nodes and the Worker nodes. It uses a Container runtime to manage the running of containers in the nodes. Also Kubernete uses serveral Kubernetes resources to abstract the underlying infrastructure concerns like Network and Storage to provide the supported functionalities. &lt;/p&gt;

&lt;h2&gt;
  
  
  What are the components of Master?
&lt;/h2&gt;

&lt;p&gt;The Master nodes have the following components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kube API Server (front ends the K8s cluster)&lt;/li&gt;
&lt;li&gt;ETCD (key value based data store for the cluster state)&lt;/li&gt;
&lt;li&gt;Controller Manager (responsible for running the controllers)&lt;/li&gt;
&lt;li&gt;Scheduler (responsible for assigning workloads to nodes)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What are the components of Worker?
&lt;/h2&gt;

&lt;p&gt;The Worker nodes have the following components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kubelet (responsible for initializing the pods)&lt;/li&gt;
&lt;li&gt;Container Runtime (responsible for creating and the containers)&lt;/li&gt;
&lt;li&gt;Kube Proxy (manages the worker node's firewall).&lt;/li&gt;
&lt;/ul&gt;

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