<?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: rkumar0810@gmail.com</title>
    <description>The latest articles on Debug School by rkumar0810@gmail.com (@rkumar0810_426).</description>
    <link>https://www.debug.school/rkumar0810_426</link>
    <image>
      <url>https://www.debug.school/images/zGK68Xntyc7_QNcxUnDVfaWIm37GHkC8e_rE2gDdrIo/rs:fill:90:90/g:sm/mb:500000/ar:1/aHR0cHM6Ly93d3cu/ZGVidWcuc2Nob29s/L3VwbG9hZHMvdXNl/ci9wcm9maWxlX2lt/YWdlLzcyMy8yZmU1/MTVhMi1iODdmLTQ3/ZmMtOGMyNi02OTIx/N2U5ZTI5MDAucG5n</url>
      <title>Debug School: rkumar0810@gmail.com</title>
      <link>https://www.debug.school/rkumar0810_426</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.debug.school/feed/rkumar0810_426"/>
    <language>en</language>
    <item>
      <title>3rd day summary Rajesh Kumar</title>
      <dc:creator>rkumar0810@gmail.com</dc:creator>
      <pubDate>Wed, 18 Oct 2023 12:00:11 +0000</pubDate>
      <link>https://www.debug.school/rkumar0810_426/3rd-day-summary-rajesh-kumar-1154</link>
      <guid>https://www.debug.school/rkumar0810_426/3rd-day-summary-rajesh-kumar-1154</guid>
      <description>&lt;p&gt;How to deploy a POD &lt;/p&gt;

&lt;p&gt;API Resource POD&lt;br&gt;
ReplicationController&lt;br&gt;
ReplicaSets&lt;br&gt;
Deployment&lt;/p&gt;

&lt;p&gt;DaemonSets&lt;br&gt;
StatefulSets&lt;/p&gt;

&lt;h2&gt;
  
  
  DaemonSets 
&lt;/h2&gt;

&lt;p&gt;Min -Max ---1 POD per Node&lt;/p&gt;

&lt;p&gt;Make sure that only one POD on every worker&lt;/p&gt;




&lt;p&gt;ConfigMap is data that  is stored in cluster and that (key-value) can be attached to POD and mounted to container.&lt;/p&gt;

&lt;p&gt;kubectl exec  helloworld-nginx -n=raj -- ls /etc/nginx/conf.d&lt;br&gt;
kubectl exec  helloworld-nginx -n=raj -- more /etc/nginx/conf.d/myconfo.conf&lt;/p&gt;

&lt;p&gt;Service&lt;/p&gt;

&lt;p&gt;Network loadbalancer  -- Network layer&lt;br&gt;
Application loadbalancer -- Application layer&lt;/p&gt;

&lt;p&gt;Service is network loadbalancer when selector label of POD matches&lt;/p&gt;

&lt;p&gt;Matching PODS with service are loadbalanced by the service (conditions apply)&lt;/p&gt;

&lt;p&gt;healthy pods&lt;br&gt;
configured for session affinity -- one user session goes to one pod&lt;br&gt;
can point to things outside the cluster&lt;br&gt;
random load balancing&lt;br&gt;
uses TCP by default&lt;/p&gt;

&lt;p&gt;watch curl http:// to check loadbalancing&lt;/p&gt;

&lt;p&gt;Type NodePort creates a service that is exposed to node port and at the same time giving a port to outside&lt;/p&gt;

&lt;p&gt;kubectl expose deployment my-dep --port=80 --target-port=80 -n=raj --type=NodePort&lt;/p&gt;

&lt;p&gt;Loadbalancer is outside the cluster - it is connected to DNS through which the user can access.&lt;/p&gt;

&lt;p&gt;User--&amp;gt;DNS--&amp;gt;LoadBalancer--&amp;gt;NodePort--&amp;gt;Service--&amp;gt;PODs &lt;/p&gt;

&lt;p&gt;NAME based Rule based certificate based - INGRESS rules&lt;/p&gt;

&lt;p&gt;Ingress is application loadbalancer&lt;/p&gt;

&lt;p&gt;Loadbalancer (outside the cluster) --&amp;gt; Ingress Controller (inside the controller) --&amp;gt; Read the rules in the Ingress --&amp;gt; Redirects traffic based on rules&lt;/p&gt;

</description>
    </item>
    <item>
      <title>2nd day learning summary Rajesh</title>
      <dc:creator>rkumar0810@gmail.com</dc:creator>
      <pubDate>Tue, 17 Oct 2023 11:47:41 +0000</pubDate>
      <link>https://www.debug.school/rkumar0810_426/2nd-day-learning-summary-rajesh-2ilh</link>
      <guid>https://www.debug.school/rkumar0810_426/2nd-day-learning-summary-rajesh-2ilh</guid>
      <description>&lt;p&gt;1) Namespace &lt;/p&gt;

&lt;p&gt;Namespaces allow for a logical separation between different pods within the cluster. This is useful when you are running different products, often managed by different teams, within the same cluster. Using namespaces ensures that one product's pods does not accidentally hamper another product's pods&lt;/p&gt;

&lt;p&gt;2) Troubleshoot POD&lt;/p&gt;

&lt;p&gt;You access container but thru POD IP&lt;/p&gt;

&lt;p&gt;Type kubectl to get help on commands available&lt;/p&gt;

&lt;p&gt;kubectl logs podName&lt;/p&gt;

&lt;p&gt;curl &lt;a href="http://IP"&gt;http://IP&lt;/a&gt; for logs&lt;/p&gt;

&lt;p&gt;kubectl option-picked -h --&amp;gt; help command&lt;/p&gt;

&lt;p&gt;kubectl exec -it POD /bin/bash --&amp;gt; inside container&lt;/p&gt;

&lt;p&gt;kubectl port-forward --address 0.0.0.0 pod/rajesh 8888:80 ----&amp;gt; 8888 is POD port and can be any available port&lt;/p&gt;

&lt;p&gt;kubectl cp pod.yaml rajesh:/tmp ----&amp;gt; copy file&lt;/p&gt;

&lt;p&gt;kubectl exec rajesh ls /tmp&lt;/p&gt;

&lt;p&gt;kubectl auth can-i create pod ---&amp;gt; check access&lt;/p&gt;

&lt;p&gt;port is set up in image and the port number in pod.yaml is for information only&lt;/p&gt;

&lt;p&gt;3) Deployment&lt;/p&gt;

&lt;p&gt;Replication. ------ From ReplicaSets&lt;br&gt;
Controller ------ From ReplicaSets&lt;br&gt;
Versioning&lt;br&gt;
Rollout&lt;br&gt;
Rollback&lt;/p&gt;

&lt;p&gt;Strategy&lt;br&gt;
Recreate&lt;br&gt;
RollingUpdate&lt;/p&gt;

&lt;p&gt;Versioning is clubbed with Rollout&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is POD by Rajesh Kumar</title>
      <dc:creator>rkumar0810@gmail.com</dc:creator>
      <pubDate>Mon, 16 Oct 2023 11:46:59 +0000</pubDate>
      <link>https://www.debug.school/rkumar0810_426/what-is-pod-by-rajesh-kumar-1cdc</link>
      <guid>https://www.debug.school/rkumar0810_426/what-is-pod-by-rajesh-kumar-1cdc</guid>
      <description>&lt;p&gt;1) A pod can't be created&lt;br&gt;
2) A pod is instantiated&lt;br&gt;
3) A pod can have multiple containers&lt;br&gt;
4) A worker can have multiple pods&lt;br&gt;
5) Multiple containers is a bad design&lt;br&gt;
6) A pod has IP address&lt;br&gt;
7) A pod has three states - instantiating, running, passed/error&lt;br&gt;
8) A pod is a logical unit&lt;br&gt;
9) Containers within pod can share resources&lt;br&gt;
10) A pod is an atomic unit - it is either there or not&lt;br&gt;
11) Pods communicate on the pods network&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Kubernetes by Rajesh Kumar</title>
      <dc:creator>rkumar0810@gmail.com</dc:creator>
      <pubDate>Mon, 16 Oct 2023 07:06:09 +0000</pubDate>
      <link>https://www.debug.school/rkumar0810_426/what-is-kubernetes-by-rajesh-kumar-jeb</link>
      <guid>https://www.debug.school/rkumar0810_426/what-is-kubernetes-by-rajesh-kumar-jeb</guid>
      <description>&lt;p&gt;&lt;strong&gt;Assignment # 1 -&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Kubernetes is the orchestrator for containers. Based on the command received it maintains a the requested number of containers in a cluster and maintains the state of the cluster. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Do we need Kubernetes? Explain in 10 lines&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I will start with a contrast to virtual machines. &lt;br&gt;
For virtual machines we can manage the following very easily as there are a lot of software options available -&lt;/p&gt;

&lt;p&gt;Memory&lt;br&gt;
Disk&lt;br&gt;
Security&lt;br&gt;
Load Balancer&lt;br&gt;
Compute&lt;br&gt;
Database&lt;/p&gt;

&lt;p&gt;However, it is almost impossible to do so for containers. The only option that is available is Kubernetes. As mentioned earlier, Kubernetes is the orchestrator for containers.&lt;br&gt;
Kubernetes can bring containers up and down and maintain a certain number of them running  within a blink of an eye.&lt;/p&gt;

&lt;p&gt;It is an open source software that was initially developed by Google and then it was handed over to the open source community which has maintained and added features since then.&lt;/p&gt;

&lt;p&gt;It is written in Go/GOLANG.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Kubernetes Works?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Kubernetes Architecture. Explain each component with  1 one line.&lt;/p&gt;

&lt;p&gt;Kubernetes has the below 4 components that run on a VM -&lt;/p&gt;

&lt;p&gt;1) API Server&lt;/p&gt;

&lt;p&gt;This is a collection of APIs that receives requests and provides response.&lt;/p&gt;

&lt;p&gt;2) Controller Manager&lt;/p&gt;

&lt;p&gt;This runs in a loop and keeps checking the containers in the cluster &lt;/p&gt;

&lt;p&gt;3) Scheduler&lt;/p&gt;

&lt;p&gt;Scheduler schedules the tasks and keeps a state of requested number of containers running&lt;/p&gt;

&lt;p&gt;4) etdc&lt;/p&gt;

&lt;p&gt;This is the database and is the source of truth for the cluster&lt;/p&gt;

&lt;p&gt;5) Kubelet runs on each worker node&lt;/p&gt;

&lt;p&gt;6) For the cluster there is a networking component that doesn't use NAT&lt;/p&gt;

&lt;p&gt;6) Kubectl is the application that is used on the laptop to provide commands&lt;/p&gt;

&lt;p&gt;7) There can be multiple controller planes (first 4 components together) and it is recommended to run at least 3 instance of them  &lt;/p&gt;

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