<?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>DEV Community: jmbharathram</title>
    <description>The latest articles on DEV Community by jmbharathram (@jmbharathram).</description>
    <link>https://dev.to/jmbharathram</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%2F541259%2F30d53ae5-ce57-46ca-9586-e29322b7db27.jpeg</url>
      <title>DEV Community: jmbharathram</title>
      <link>https://dev.to/jmbharathram</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jmbharathram"/>
    <language>en</language>
    <item>
      <title>A Quick Glance at Software Engineering and CI/CD</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Tue, 19 Nov 2024 10:45:56 +0000</pubDate>
      <link>https://dev.to/jmbharathram/a-quick-glance-at-software-engineering-and-cicd-58n6</link>
      <guid>https://dev.to/jmbharathram/a-quick-glance-at-software-engineering-and-cicd-58n6</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1HZW1ZrmT7o"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>database</category>
      <category>devops</category>
    </item>
    <item>
      <title>How I Went From Being a DBA to DevOps Engineer...</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Tue, 19 Nov 2024 10:43:54 +0000</pubDate>
      <link>https://dev.to/jmbharathram/how-i-went-from-being-a-dba-to-devops-engineer-1l4c</link>
      <guid>https://dev.to/jmbharathram/how-i-went-from-being-a-dba-to-devops-engineer-1l4c</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0RZDCIHlDFA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>database</category>
      <category>dba</category>
      <category>devops</category>
    </item>
    <item>
      <title>How I Went From Being a DBA to DevOps Engineer</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Fri, 08 Nov 2024 06:39:54 +0000</pubDate>
      <link>https://dev.to/jmbharathram/how-i-went-from-being-a-dba-to-devops-engineer-4c5</link>
      <guid>https://dev.to/jmbharathram/how-i-went-from-being-a-dba-to-devops-engineer-4c5</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/0RZDCIHlDFA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>devops</category>
      <category>database</category>
      <category>dba</category>
    </item>
    <item>
      <title>Switching from DBA to DevOps career? 3 Mental Jujitsu moves to calm your survival brain</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Wed, 09 Oct 2024 06:41:59 +0000</pubDate>
      <link>https://dev.to/jmbharathram/switching-from-dba-to-devops-career-3-mental-jujitsu-moves-to-calm-your-survival-brain-539k</link>
      <guid>https://dev.to/jmbharathram/switching-from-dba-to-devops-career-3-mental-jujitsu-moves-to-calm-your-survival-brain-539k</guid>
      <description>&lt;p&gt;If you’re at the crossroads of switching from being a DBA to a DevOps engineer, being aware of these challenges will help you reduce your therapist bills and ease your anxiety.&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%2F3p0xtt7h6s7uff25lyv2.jpg" 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%2F3p0xtt7h6s7uff25lyv2.jpg" alt="Workplace anxiety" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay. The therapist bill part may not apply for you. But it’ll definitely help you to tame the survival brain of yours.&lt;/p&gt;

&lt;p&gt;This is not about the skills I had to learn to work as a DevOps engineer. That’s a topic for another time. By the way, I recently connected with a DevOps guru, who’s about to launch a live 8-week Kubernetes cohort.&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%2Fwi5h0opc6lvaxjh97joa.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%2Fwi5h0opc6lvaxjh97joa.png" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Five years ago, I was you. When my manager told me about an opportunity to work on Cloud and DevOps engineering stuff, I jumped into it without thinking twice. &lt;/p&gt;

&lt;p&gt;I had been a seasoned Oracle DBA for 12 years when I took that decision. I was ready to take on some new challenges. I knew I had to learn a ton. But little was I aware of the psychological warfare I went through (and still have) in that journey.&lt;/p&gt;

&lt;p&gt;Here, my intention is to share about the insecurities I had to deal with. So that, when it comes up for you, you will know you’re not alone and that’s okay. So, I’m going to get a little bit vulnerable today. &lt;/p&gt;

&lt;p&gt;To avoid this whole essay from being just a rant, I’m also going to give you a different, empowering perspective or reframe of each problem, which have helped me.&lt;/p&gt;

&lt;p&gt;Let me get my cup of tea and settle down. &lt;/p&gt;

&lt;p&gt;Here we go. My challenges:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Who am I?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&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%2Fdzgjkxkehuo91b5jc0n1.jpg" 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%2Fdzgjkxkehuo91b5jc0n1.jpg" alt="Identity crisis" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don’t worry. I am not going to explore any spiritual stuff here.&lt;/p&gt;

&lt;p&gt;Once I got used to doing DevOps for a few years, I started having an identity crisis. Because my original job title did not change at all. My title is still “Database Engineering Staff”. &lt;/p&gt;

&lt;p&gt;So, am I a DevOps engineer or a Database engineer?&lt;/p&gt;

&lt;p&gt;There’s another thing I have realized. Your role can be whatever, especially for individual contributors. We all have to do whatever it takes to finish the projects. That is what tech companies expect these days.&lt;/p&gt;

&lt;p&gt;Sometimes, I build pipelines, create the automation that’s required to provision the infrastructure resources, deploying the services etc. Basically, doing typical DevOps tasks. At other times, I code in Python or Java (in Spring Boot) to build new features, fix bugs and what not. That’s what software engineers do. Isn’t it?&lt;/p&gt;

&lt;p&gt;Now, am I a DevOps engineer, a Software engineer, or a Database engineer?&lt;/p&gt;

&lt;p&gt;What am I going to introduce myself as, in the future interviews?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reframe&lt;/strong&gt;: &lt;/p&gt;

&lt;p&gt;I could just pick any one of them and move forward. I’ll be okay. I’ll figure it out. At the end of the day, you need to do whatever your customer or your company needs. I need to focus more on how to serve them than self. And I can worry about the interviews if and when I’m crossing that bridge. No point thinking about them now.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;It kind of sucks most of the time (imposter syndrome)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&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%2Fqybyd09crs1iwzvzh5tq.jpg" 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%2Fqybyd09crs1iwzvzh5tq.jpg" alt="Imposter syndrome" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was an Oracle DBA for a long time. I was very comfortable doing the job. I calmly handled very challenging situations such as a slow running query or an Oracle bug driven unexpected behavior or whatever it was.&lt;/p&gt;

&lt;p&gt;But since I stepped into this new DevOps role, I have always felt like I have no idea about what I’m doing. When I work on any task these days, I go through the following steps in no particular order (sometimes, multiple iterations):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spend significant amount of time going through (imperfect) documentation and try a few things first.&lt;/li&gt;
&lt;li&gt;Review other people’s code.&lt;/li&gt;
&lt;li&gt;Reach out to a bunch of people and seek their help to figure things out.&lt;/li&gt;
&lt;li&gt;Post on Slack support channels and wait for their response.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s how I am able to figure it out and keep my job. I know. Exhausting. Right? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reframe:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;When I shine the spotlight on the following things, I feel much better.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Most engineers, regardless of their experience or level, go through a similar process like the one I mentioned above. It’s not just me. One doesn’t just know how to do something immediately.&lt;/li&gt;
&lt;li&gt;All of this pressure I feel is self-generated. This awareness empowers me because I have the power to change it. I can create a feeling of ease whenever I want. I’m capable of that.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Promotions or the lack thereof&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&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%2Fhhdarv1f7m542k91n4rg.jpg" 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%2Fhhdarv1f7m542k91n4rg.jpg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every now and then I get stuck in this stupid narrative. That I am behind in my career. That I should have been promoted by now. Someone I know is now two levels above me, and we used to be in the same level etc. &lt;/p&gt;

&lt;p&gt;It’s like I enjoy torturing myself with such thinking, for no good reason. I don’t know how it is conceived as threats in my mind. &lt;/p&gt;

&lt;p&gt;Why do I give so much weightage to someone passing thoughts, if at all they are judging? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reframe&lt;/strong&gt;: &lt;/p&gt;

&lt;p&gt;Mark Zuckerberg is only 40 years old at the time this post was written, and he’s already one of the richest guys in the world. I don’t compare myself with him and get depressed about it. &lt;/p&gt;

&lt;p&gt;I am relatively new in this DevOps career. I am not going to be good immediately. It’s going to take some time to learn the tricks of the trade. I am not going to be able to deliver a highly impactful project right off the bat. &lt;/p&gt;

&lt;p&gt;As long as I’m learning, working hard, stepping into uncomfortable zones, and contributing consistently, eventually, everyone will see me for who I have become and can’t help but promote me. Even other opportunities might become available to me, as I gain more skills. Comparison only makes you feel awful.&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;p&gt;Don’t get me wrong. I faced these challenges and many more. But my career is way more interesting as a DevOps engineer than it would have been if I continued to be a DBA.&lt;/p&gt;

&lt;p&gt;I learnt so much more in the last 5 years than in the 12 years prior to becoming a DevOps engineer. It has not been comfortable for sure. But I’m proud of the growth I have achieved in these 5 years.&lt;/p&gt;

&lt;p&gt;If you don’t want to experiment too much and continue to be a DBA, as long as a DBA career allows you to be, that’s okay too. Nothing wrong with it.&lt;/p&gt;

&lt;p&gt;It’s my opinion that Oracle footprint will reduce drastically in the next 5 years. Hence, I hopped into a different career that I thought was interesting and lucrative.&lt;/p&gt;

&lt;p&gt;If you’re with still with me and ready to take on a similar challenging path to the one I mentioned above, please DM me. I’ll be able to provide some good resources for learning.&lt;/p&gt;

&lt;p&gt;Thanks for your time. Peace out.&lt;/p&gt;

</description>
      <category>dba</category>
      <category>devops</category>
      <category>careerdevelopment</category>
    </item>
    <item>
      <title>Kubernetes - How to use JSONPATH with kubectl?</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Mon, 19 Jun 2023 12:32:02 +0000</pubDate>
      <link>https://dev.to/jmbharathram/kubernetes-how-to-use-jsonpath-with-kubectl-39jp</link>
      <guid>https://dev.to/jmbharathram/kubernetes-how-to-use-jsonpath-with-kubectl-39jp</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NuwSNYfinGQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>docker</category>
      <category>devops</category>
    </item>
    <item>
      <title>Kubernetes IAM Role For Service Accounts | Demo | Simply Explained</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Mon, 05 Jun 2023 10:11:13 +0000</pubDate>
      <link>https://dev.to/jmbharathram/kubernetes-iam-role-for-service-accounts-demo-simply-explained-4cf0</link>
      <guid>https://dev.to/jmbharathram/kubernetes-iam-role-for-service-accounts-demo-simply-explained-4cf0</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/fSOwXvZOzRI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>devops</category>
      <category>kubernetes</category>
      <category>docker</category>
    </item>
    <item>
      <title>AWS EKS | ROUTE 53 | How to Route Web Traffic to Different Micro services Using Ingress Controller</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Mon, 22 May 2023 07:10:40 +0000</pubDate>
      <link>https://dev.to/jmbharathram/aws-eks-route-53-how-to-route-web-traffic-to-different-micro-services-using-ingress-controller-2ebh</link>
      <guid>https://dev.to/jmbharathram/aws-eks-route-53-how-to-route-web-traffic-to-different-micro-services-using-ingress-controller-2ebh</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/H9RCxniXT_k"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>kubernetes</category>
    </item>
    <item>
      <title>Kubernetes - Ingress - LoadBalancer Service - AWS EKS</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Wed, 17 May 2023 05:48:07 +0000</pubDate>
      <link>https://dev.to/jmbharathram/kubernetes-ingress-loadbalancer-service-aws-eks-1g5m</link>
      <guid>https://dev.to/jmbharathram/kubernetes-ingress-loadbalancer-service-aws-eks-1g5m</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8AiIBNnDVkg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Different Ways of Accessing a Kubernetes Service...</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Mon, 01 May 2023 07:57:54 +0000</pubDate>
      <link>https://dev.to/jmbharathram/different-ways-of-accessing-a-kubernetes-service-24if</link>
      <guid>https://dev.to/jmbharathram/different-ways-of-accessing-a-kubernetes-service-24if</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zGNBCGhL26g"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kubernetes Network - Container Network Interface - What is CNI?</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Sun, 23 Apr 2023 14:08:33 +0000</pubDate>
      <link>https://dev.to/jmbharathram/kubernetes-network-container-network-interface-what-is-cni-3nbe</link>
      <guid>https://dev.to/jmbharathram/kubernetes-network-container-network-interface-what-is-cni-3nbe</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/-Si8Ei-JkOA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How does Container Network Interface (CNI) help Kubernetes?</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Mon, 17 Apr 2023 06:31:40 +0000</pubDate>
      <link>https://dev.to/jmbharathram/how-does-container-network-interface-cni-help-kubernetes-4g4o</link>
      <guid>https://dev.to/jmbharathram/how-does-container-network-interface-cni-help-kubernetes-4g4o</guid>
      <description>&lt;p&gt;If you've ever worked on Kubernetes and created resources like Pods, Services etc. for whatever purpose, you might have noticed something about the networking aspects of these resources such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IPs are assigned to PODs&lt;/strong&gt; and Services. i.e. IP Address Management (IPAM) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pods/containers get added to certain network namespaces&lt;/strong&gt; when they are created and get removed from those network namespaces when those resources are deleted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Your pods are able to communicate with other Pods.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;External traffic is somehow routed through to the right POD&lt;/strong&gt; while port forwarding is taken care of.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And so on. &lt;/p&gt;

&lt;p&gt;These are a few of the requirements of the &lt;a href="https://kubernetes.io/docs/concepts/services-networking/"&gt;Kubernetes Networking Model&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;CNI is a common interface between container runtimes and network - Bryan Boreham, Kubecon, North America 2019&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is Container Runtime?
&lt;/h2&gt;

&lt;p&gt;Container runtimes rely on what's called as Container Network Interface (CNI) plugins to perform these network actions like adding or deleting a container to or from a network.&lt;/p&gt;

&lt;p&gt;There are many CNI plugins available for the companies to use. A few popular ones are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calico&lt;/li&gt;
&lt;li&gt;Flannel&lt;/li&gt;
&lt;li&gt;Weave&lt;/li&gt;
&lt;li&gt;Cilium&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Container runtimes are not exclusive to Kubernetes. They are used independently and also by other companies like rkt container engine, Apache Mesos, Openshift, CloudFoundry and more.&lt;/p&gt;

&lt;p&gt;Container Network Interface (CNI) basically resides in this git repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/containernetworking/cni"&gt;https://github.com/containernetworking/cni&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This CNI repo has two main things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CNI specifications&lt;/strong&gt;: If CNI is a common interface which could be implemented as a plugin by any company that offers network management software, then some standards must be defined to ensure any container runtime can use any interface implementation (ie plugin) in much the same way. These standards / specifications can be found in the above repo. The latest version of CNI spec at the time this article was written is &lt;a href="https://github.com/containernetworking/cni/blob/main/SPEC.md"&gt;v1.0.0&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Library and Examples&lt;/strong&gt;: Basically the above git repo also contains libraries that can be used for writing plugins, some simple plugins and some good examples of how plugins should be written.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How would Kubernetes know which CNI plugin to use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You may know about the &lt;strong&gt;Kubelet&lt;/strong&gt; process that runs on both master and worker nodes in a Kubernetes cluster.&lt;/p&gt;

&lt;p&gt;If you look at Kubelet configuration, you will see one or more CNI-related parameters. Here's what I have in my Kubernetes cluster.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
root@ip-172-31-30-83:/home/ubuntu# cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf|grep -v ^#
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
EnvironmentFile=-/etc/default/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
root@ip-172-31-30-83:/home/ubuntu#
root@ip-172-31-30-83:/home/ubuntu# cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS="--hostname-override=master **--network-plugin=cni** --pod-infra-container-image=k8s.gcr.io/pause:3.2"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;network-plugin&lt;/strong&gt; parameter is set to "cni" here. Apart from that, two other parameters &lt;strong&gt;cni-bin-dir and cni-conf-dir&lt;/strong&gt; can be specified here, which are the directories that will contain various cni plugin binaries and cni configuration file respectively.&lt;/p&gt;

&lt;p&gt;Since they were not set explicitly, the following default values for these parameters will be applied.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cni-bin-dir=/opt/cni/bin&lt;br&gt;
cni-conf-dir=/etc/cni/net.d&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Here's a quick look at what these directories have.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ALG208tA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bgyyg9wzojdoa68jx0on.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ALG208tA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bgyyg9wzojdoa68jx0on.png" alt="CNI Default Directories" width="800" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since I installed Calico CNI plugin in my cluster, the configuration file for the same is shown in the above picture. It will vary on other Kubernetes clusters based on the plugin choice.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
root:/home/ubuntu# cat /etc/cni/net.d/10-calico.conflist
{
  "name": "k8s-pod-network",
  "cniVersion": "0.3.1",
  "plugins": [
    {
      "type": "calico",
      "log_level": "info",
      "datastore_type": "kubernetes",
      "nodename": "master",
      "mtu": 1440,
      "ipam": {
          "type": "calico-ipam"
      },
      "policy": {
          "type": "k8s"
      },
      "kubernetes": {
          "kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
      }
    },
    {
      "type": "portmap",
      "snat": true,
      "capabilities": {"portMappings": true}
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The above JSON complies with the CNI specification that we talked about earlier. It has CNI plugin details such as the cniVersion is 0.3.1 which is an older CNI spec version, which executable is used for IP address management etc.&lt;/p&gt;

&lt;p&gt;Kubelet is responsible for invoking a container runtime (containerd) to manage pod operations. In the same way, it invokes a CNI plugin based on the CNI configuration file to manage the network operations required for pods/containers.&lt;/p&gt;

&lt;p&gt;Okay! This is where I stop exploring CNI further. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To summarize&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we learnt that Container Network Interface is an independent, vendor agnostic standard that consists of CNI specification and the libraries and examples that anyone can use to develop CNI plugins. &lt;/li&gt;
&lt;li&gt;We also learnt that Kubernetes and other container runtimes do not manage the container network they operate on by themselves. Rather, they just call CNI plugins to achieve the same. &lt;/li&gt;
&lt;li&gt;We also showed you a few things about how a CNI plugin called Calico is configured in a Kubernetes cluster and where a variety of CNI plugin executables are located in the system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope that was interesting. Cheers.&lt;/p&gt;

</description>
      <category>kubernetes</category>
    </item>
    <item>
      <title>HOW to CREATE a SIMPLE CAREER PLAN</title>
      <dc:creator>jmbharathram</dc:creator>
      <pubDate>Wed, 05 Apr 2023 14:35:37 +0000</pubDate>
      <link>https://dev.to/jmbharathram/how-to-create-a-simple-career-plan-4lg2</link>
      <guid>https://dev.to/jmbharathram/how-to-create-a-simple-career-plan-4lg2</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/_uJE1XLYHZM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>career</category>
    </item>
  </channel>
</rss>
