<?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: Vikas Kalra</title>
    <description>The latest articles on Debug School by Vikas Kalra (@vikask).</description>
    <link>https://www.debug.school/vikask</link>
    <image>
      <url>https://www.debug.school/images/7D24yX-vZDYHbf2ZSRAqVBzXXUnu3_m3B9h9CoaFHZg/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvdXNl/ci9wcm9maWxlX2lt/YWdlLzcwMC8wYzY0/NzNiNi1hYTg4LTRh/ZGYtOGY2Mi00ZjZh/MDkwMzM3MzIucG5n</url>
      <title>Debug School: Vikas Kalra</title>
      <link>https://www.debug.school/vikask</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.debug.school/feed/vikask"/>
    <language>en</language>
    <item>
      <title>Understanding Service</title>
      <dc:creator>Vikas Kalra</dc:creator>
      <pubDate>Mon, 25 Sep 2023 07:41:29 +0000</pubDate>
      <link>https://www.debug.school/vikask/understanding-service-41aa</link>
      <guid>https://www.debug.school/vikask/understanding-service-41aa</guid>
      <description>&lt;p&gt;Initially we created a Pod .. next we wanted them to he highly available .. we learnt how to create Replica Set and made them available, so even it one pod goes down .. the functionality that the pod was offering is still available. But then the Pods could be running on different Workers (Nodes) and would have different IPs.&lt;/p&gt;

&lt;p&gt;Also the fact that if one Pod goes down and we have a new Replacement pod coming up .. there is no guarantee that the new Pod will retain the same IP address.. it will get a new IP address.&lt;/p&gt;

&lt;p&gt;This is where we Service comes in. Services are of various types:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ClusterIP&lt;/li&gt;
&lt;li&gt;NodePort&lt;/li&gt;
&lt;li&gt;LoadBalancer&lt;/li&gt;
&lt;li&gt;External??&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We use ClusterIP Service to load balance at the Service Level. When creating the same don't forget to map the SELECTOR to the Service that we want to Load Balance (name of the Application - metadata.labels.app -&amp;gt; name mentioned here). This also acts as a means for ensuring that the App accessing the service is actually using the NEW version that you intend to be used.&lt;/p&gt;

&lt;p&gt;We use NodePort to load balance at the Node Level. Also to expose internal Port at the Cluster level. Here as well we use the Selector and a NEW port is created that is exposed at the Cluster level and maps back to the Pod's IP&lt;/p&gt;

&lt;p&gt;We use LoadBalancer to load balance at the Internet / Route53 level. We map the Domain name to to IP of the Cluster IPs (ALL node IPs) so that the incoming requests can be routed to any of the Cluster machines, which internally maps to a NodePort, eventually to a ClusterIP and finally hitting the POD hosting the Service.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Assignment#2 – Day 2</title>
      <dc:creator>Vikas Kalra</dc:creator>
      <pubDate>Mon, 25 Sep 2023 05:55:14 +0000</pubDate>
      <link>https://www.debug.school/vikask/assignment2-day-2-k78</link>
      <guid>https://www.debug.school/vikask/assignment2-day-2-k78</guid>
      <description>&lt;h2&gt;
  
  
  What is Namespaces? Explain with Image
&lt;/h2&gt;

&lt;p&gt;Namespaces help with ensuring segregation of Pod/ Worker isolation, while working in multiple teams/ projects, but deploying on a common Cluster. When we work as teams/ projects, we look at a Cluster as a whole.. not like master/ worker nodes, for resource usage. When we deploy we would want to isolate these activities so that work of either teams/ projects is does not affect one another. Not only at Pod level, but also at resource usage level we can have isolation which would act as a resource governor for Cluster resource utilization. Various types of Namespaces include: Admin (node), Common (public), Default (where people land), System (for Pods)&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Pod? Explain with Image
&lt;/h2&gt;

&lt;p&gt;Smallest unit of Work that can be scheduled to run on a K8s Cluster. It can be Instantiated not Created.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ReplicaSets? Explain with Image
&lt;/h2&gt;

&lt;p&gt;ReplicaSets were introduced to replace / address the bugs in Replica Controller. It helps replicate the Pods/ have replicas of Pods to be made available.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Deployment? Explain with Image
&lt;/h2&gt;

&lt;p&gt;Deployment can be of Rollout, Versioning, Controller, Rollback or Replication Sets.&lt;/p&gt;

&lt;p&gt;We made use of Deployment to replace an older version of an Application with a newer version of the Application. We saw how Deployment Versions could be used to Rollback and also Ananthu taught us how to make use of "change cause"&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My K8s learning</title>
      <dc:creator>Vikas Kalra</dc:creator>
      <pubDate>Thu, 21 Sep 2023 09:14:03 +0000</pubDate>
      <link>https://www.debug.school/vikask/my-k8s-learning-15b5</link>
      <guid>https://www.debug.school/vikask/my-k8s-learning-15b5</guid>
      <description>&lt;h2&gt;
  
  
  What is Kubernetes?
&lt;/h2&gt;

&lt;p&gt;Like a musical, where we have different instruments being played by different people, we have a conductor who keeps all aligned to the music being played. It is the Conductor/ Orchestrator that maintains state along with facilitating availability of resources when needed to achieve a desired state.&lt;/p&gt;

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

&lt;p&gt;We need K8s to ensure a balance is maintained between our Desired state and Deployed state. We need K8s to ensure solutions we create are reliable and available. Also to ensure the pitfalls of Docker are addressed, like Load balancing/ Network problems (host/ IP/ port)&lt;/p&gt;

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

&lt;p&gt;It presents an API server that takes in requests and persists in the etcd Database that it keeps upto date with latest information. Keeping track of resources and scheduling work as needed.&lt;/p&gt;

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

&lt;p&gt;API Server&lt;br&gt;
etcd Database&lt;br&gt;
Controller Manager&lt;br&gt;
Scheduler&lt;/p&gt;

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

&lt;p&gt;kublet is the only component that hosts the virtual concept of pod, this is where we have the physical aspect of Docker container running.&lt;/p&gt;

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