<?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: Jasdeep Singh Chawla</title>
    <description>The latest articles on Debug School by Jasdeep Singh Chawla (@jasdeep23).</description>
    <link>https://www.debug.school/jasdeep23</link>
    <image>
      <url>https://www.debug.school/images/83lXCGrGvCVCyLI-xfoTZUKPUMU05VRdWHbK20A4JqA/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvdXNl/ci9wcm9maWxlX2lt/YWdlLzcwMi8wMzdh/M2JjZS01OGZhLTQz/MDktOTA2NC01MGEw/YzI3ZWU1NDAucG5n</url>
      <title>Debug School: Jasdeep Singh Chawla</title>
      <link>https://www.debug.school/jasdeep23</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.debug.school/feed/jasdeep23"/>
    <language>en</language>
    <item>
      <title>Assignment-3 Day-3</title>
      <dc:creator>Jasdeep Singh Chawla</dc:creator>
      <pubDate>Mon, 25 Sep 2023 07:38:16 +0000</pubDate>
      <link>https://www.debug.school/jasdeep23/assignment-3-day-3-10m0</link>
      <guid>https://www.debug.school/jasdeep23/assignment-3-day-3-10m0</guid>
      <description>&lt;ol&gt;
&lt;li&gt;What is a K8s service ?&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;A service is a K8s object that is used to loadbalance or make the pod available from the service endpoint (ClusterIP service), Node endpoint (NodePort service) or Outside the cluster (LoadBalancer service). &lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Why do we need it ?&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;We need services as there can be different requirements for availabilities of pods. Some may want to access the pod, so ClusterIP is created to loadbalance the pods, hence application is available through the ClusterIP.
Through NodePort service, we can access the application by just hitting the nodeIP.
Through LoadBalancer, we don't have to worry about what node to choose for connection to application, we can just use the ip/dns name for LoadBalancer and it will internally select the node.
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;How it works/commands ?&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Service has a field called Selector, in that whatever labels we specify that should be the same labels present in the pod. If the labels are same, the endpoint in the service will be assigned with the IP of the pods.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To view the Selectors and Endpoint -&amp;gt; kubectl describe svc my-svc -n my-ns&lt;br&gt;
To edit the service file and changes the Selector -&amp;gt; kubectl edit svc my-svc -n my-ns&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Assignment-2 Day-2</title>
      <dc:creator>Jasdeep Singh Chawla</dc:creator>
      <pubDate>Fri, 22 Sep 2023 11:57:28 +0000</pubDate>
      <link>https://www.debug.school/jasdeep23/assignment-2-day-2-j9j</link>
      <guid>https://www.debug.school/jasdeep23/assignment-2-day-2-j9j</guid>
      <description>&lt;ol&gt;
&lt;li&gt;What is Namespaces? Explain with Image&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Namespace is a logical boundary which is used to separate the resources created. Different teams in an organisation can work on the same cluster and don't want to mess up the k8s objects(deployment, service, pod etc.) so it is needed. We can have similar resources with similar name in different namespaces.&lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;ul&gt;
&lt;li&gt;Pod is the smallest unit (atomic unit) in kubernetes. A pod is instantiated by the kubelet. It contains container in it. There can be one or more containers present in the pod. &lt;/li&gt;
&lt;/ul&gt;

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

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

&lt;ul&gt;
&lt;li&gt;ReplicaSet is a K8s object that is used to maintain replicas of Pod specified. It also controls the no of pod at a time, if pod is less than specified, it will create new pod. If pod is more than assigned, it will delete the pod. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.debug.school/images/vad-457_OBxzsoXAEyyLSPJoax7hDVOJfwKk7Hu46lo/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvMWdyb2xh/d2tkaXlmdjFiMXZ0/YW8ucG5n" class="article-body-image-wrapper"&gt;&lt;img src="https://www.debug.school/images/vad-457_OBxzsoXAEyyLSPJoax7hDVOJfwKk7Hu46lo/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvMWdyb2xh/d2tkaXlmdjFiMXZ0/YW8ucG5n" alt="Image description" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Deployment is a K8s object that gives 5 features to use. Replicate, Control, Versioning, Rollout, Rollback. It is used to deploy a pod and maintain the replicas of it. Deployment creates replicaSet which in turn creates pod .If some change is made in the deployment, then new version is auto-assigned. We can roll-back to any version we want. Deployment follows rolling update strategy for pod creation and removal. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.debug.school/images/8kaZlKbP75mw2N0ycPKjv6jUB5wDp4YN0NhltRgoh2k/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvbnE3bWJu/ZGIzZWxyZXY5MDIw/bTUucG5n" class="article-body-image-wrapper"&gt;&lt;img src="https://www.debug.school/images/8kaZlKbP75mw2N0ycPKjv6jUB5wDp4YN0NhltRgoh2k/rt:fit/w:800/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvYXJ0/aWNsZXMvbnE3bWJu/ZGIzZWxyZXY5MDIw/bTUucG5n" alt="Image description" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kubernetes Notes</title>
      <dc:creator>Jasdeep Singh Chawla</dc:creator>
      <pubDate>Thu, 21 Sep 2023 09:15:00 +0000</pubDate>
      <link>https://www.debug.school/jasdeep23/kubernetes-notes-hf7</link>
      <guid>https://www.debug.school/jasdeep23/kubernetes-notes-hf7</guid>
      <description>&lt;ol&gt;
&lt;li&gt;What is Kubernetes?&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;It is a container orchestrator technology.&lt;/li&gt;
&lt;li&gt;Manages CRUD operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Why do we need it?&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;We need to manager containers.&lt;/li&gt;
&lt;li&gt; Using docker we won't be able to manage huge number of containers.&lt;/li&gt;
&lt;li&gt;We don't want down time, when some container gets corrupted and we have to manually create new ones.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;How it works?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Master Process&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Apiserver is the main point of communication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;All the data is stored in ETCD (key-value pair). The apiserver updates the database. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The contorller-manager goes on in a loop cycle, and constantly pings the apiserver regarding the nodes (health status). &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The scheduler schedules the pods for nodes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Worker Process&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Proxy server sets up communication details for the node from apiserver.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The kubelet collects info regarding instanciation of pods from the apiserver. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It then creates a pod instance, which in turn contacts docker engine for container creation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Apiserver, controller-manager, data-store, scheduler. &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Kubelet, proxy-server, Docker-engine&lt;/li&gt;
&lt;/ul&gt;

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