<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on Samarthya</title><link>https://samarthya.me/categories/docker/</link><description>Recent content in Docker on Samarthya</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© Samarthya 2018-2026. All rights reserved.</copyright><lastBuildDate>Tue, 07 Mar 2023 12:00:00 +0000</lastBuildDate><atom:link href="https://samarthya.me/categories/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>Buildah: https://buildah.io/</title><link>https://samarthya.me/posts/buildah-https-buildah-io/</link><pubDate>Tue, 07 Mar 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/buildah-https-buildah-io/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt=""&#10; src="https://buildah.io/images/buildah.png"&#10; &gt;&lt;/figure&gt;&#10;&lt;p&gt;Buildah is a command-line tool used for building and managing OCI-compliant images. It is an alternative to Docker Build that provides greater flexibility and control over the image building process.&lt;/p&gt;</description></item><item><title>Podman Machine: How &amp; Why?</title><link>https://samarthya.me/posts/podman-machine-how-why/</link><pubDate>Tue, 07 Mar 2023 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/podman-machine-how-why/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="Podman Machine: containers run by Podman inside a VM on your local system or a remote server, with the commands to create, start and run"&#10; width="1200"&#10; height="630"&#10; src="https://samarthya.me/posts/podman-machine-how-why/podman_hu_d5df1b0dd90194af.png"&#10; srcset="https://samarthya.me/posts/podman-machine-how-why/podman_hu_d5df1b0dd90194af.png 800w, https://samarthya.me/posts/podman-machine-how-why/podman.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/podman-machine-how-why/podman.png"&gt;&lt;figcaption&gt;Recreated in October 2026 from the post; the original image was lost&lt;/figcaption&gt;&lt;/figure&gt;&#10;&lt;p&gt;Podman&lt;/p&gt;</description></item><item><title>Kaniko: Jenkins Pipeline</title><link>https://samarthya.me/posts/kaniko-jenkins-pipeline/</link><pubDate>Fri, 11 Feb 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/kaniko-jenkins-pipeline/</guid><description>&lt;p&gt;So there are many things I have been simultaneously trying to learn &amp;amp; one of those is to learn how you can configure a pipeline&lt;/p&gt;&#10;&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; Read more about Pipeline as Code (PaC)&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Objectives&#10; &lt;div id="objectives" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#objectives" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Learn Jenkins deployment on Kubernetes&lt;/li&gt;&#10;&lt;li&gt;Learn Jenkins Kubernetes Plugin&lt;/li&gt;&#10;&lt;li&gt;Learn Jenkins Pipeline (&lt;code&gt;Declarative&lt;/code&gt;)&lt;/li&gt;&#10;&lt;li&gt;How to build and deploy images in Kubernetes cluster&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;All right, with so many monkeys on my back I had to do things the way I know it works for me.&lt;/p&gt;</description></item><item><title>Cert-Manager: TLS for ingress</title><link>https://samarthya.me/posts/cert-manager-tls-for-ingress/</link><pubDate>Wed, 09 Feb 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/cert-manager-tls-for-ingress/</guid><description>&lt;p&gt;A common use-case for cert-manager is requesting TLS signed certificates to secure your ingress resources.&lt;/p&gt;&#10;&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; &lt;code&gt;cert-manager&lt;/code&gt; adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates.&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;h2 class="relative group"&gt;Installation&#10; &lt;div id="installation" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#installation" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;The easiest way is to use helm charts.&lt;/p&gt;</description></item><item><title>Spinnaker: docker-registry</title><link>https://samarthya.me/posts/spinnaker-docker-registry/</link><pubDate>Fri, 04 Feb 2022 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/spinnaker-docker-registry/</guid><description>&lt;p&gt;You will need a valid docker registry before you add any trigger in the pipeline in &lt;code&gt;Spinnaker&lt;/code&gt;&lt;/p&gt;&#10;&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; &lt;a href="https://spinnaker.io/docs/setup/install/providers/docker-registry/" target="_blank" rel="noreferrer"&gt;Official documentation&lt;/a&gt; is a good resource to seek more clarifications&#10;— Spinnaker&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;In my case I have already added an account my-docker-registry as under (The final result after you successfully configure Docker.&lt;/p&gt;</description></item><item><title>Docker: Clean in Bulk</title><link>https://samarthya.me/posts/docker-clean-in-bulk/</link><pubDate>Mon, 27 Dec 2021 12:00:00 +0000</pubDate><guid>https://samarthya.me/posts/docker-clean-in-bulk/</guid><description>&lt;p&gt;I will define the problem I was facing&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;Too many snapshots versions for the same image were there on my system&lt;/p&gt;&#10;&lt;p&gt;Freaky developer&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;So to delete there was one hard hack way of cleaning it all&lt;/p&gt;</description></item><item><title>CALICO CNI failures</title><link>https://samarthya.me/posts/calico-cni-failures/</link><pubDate>Thu, 28 Oct 2021 07:46:58 +0000</pubDate><guid>https://samarthya.me/posts/calico-cni-failures/</guid><description>&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt="kubectl output listing ingress, Dynatrace simulator and calico-kube-controllers pods; the Calico controller shows several restarts"&#10; width="768"&#10; height="93"&#10; src="https://samarthya.me/posts/calico-cni-failures/screenshot-2021-10-28-at-1.15.23-pm-1.png"&#10; srcset="https://samarthya.me/posts/calico-cni-failures/screenshot-2021-10-28-at-1.15.23-pm-1.png 800w, https://samarthya.me/posts/calico-cni-failures/screenshot-2021-10-28-at-1.15.23-pm-1.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://samarthya.me/posts/calico-cni-failures/screenshot-2021-10-28-at-1.15.23-pm-1.png"&gt;&lt;/figure&gt;&#10;&lt;p&gt;In my cluster things went haywire all of a sudden without a proper showcase, I tried multiple things but it was just not working. Specifically my &lt;code&gt;core-dns&lt;/code&gt; and &lt;code&gt;calico-kube-controllers&lt;/code&gt; were not coming up and were constantly showing &lt;code&gt;not ready&lt;/code&gt; and &lt;code&gt;CrashLoop&lt;/code&gt; respectively&lt;/p&gt;</description></item><item><title>ClusterRole: Refresher</title><link>https://samarthya.me/posts/clusterrole-refresher/</link><pubDate>Tue, 06 Apr 2021 11:26:35 +0000</pubDate><guid>https://samarthya.me/posts/clusterrole-refresher/</guid><description>&lt;p&gt;In this blog I will use &lt;code&gt;kubectl&lt;/code&gt; to create a &lt;code&gt;ClusterRole&lt;/code&gt; and a &lt;code&gt;ClusterRoleBinding&lt;/code&gt; (refer to &lt;a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/" target="_blank" rel="noreferrer"&gt;link&lt;/a&gt;)&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;kind&amp;#34;: &amp;#34;ClusterRole&amp;#34;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;apiVersion&amp;#34;: &amp;#34;rbac.authorization.k8s.io/v1&amp;#34;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;metadata&amp;#34;: {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;name&amp;#34;: &amp;#34;myclusterrole&amp;#34;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;creationTimestamp&amp;#34;: null&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; },&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;rules&amp;#34;: [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;verbs&amp;#34;: [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;get&amp;#34;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;list&amp;#34;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;watch&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;apiGroups&amp;#34;: [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;resources&amp;#34;: [&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;persistentvolumes&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;k create clusterrole myclusterrole --verb=get,list,watch --resource=persistentvolumes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;k describe clusterrole myclusterrole&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl"&gt;&#10; &lt;p&gt;You can use a &lt;code&gt;ClusterRole&lt;/code&gt; to&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;define permissions on &lt;code&gt;namespaced&lt;/code&gt; resources and be granted within individual namespace(s)&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;define permissions on namespaced resources and be granted across all &lt;code&gt;namespaces&lt;/code&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;define permissions on cluster-scoped resources&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10;&lt;/div&gt;</description></item><item><title>Pod &amp; Volume: K8S</title><link>https://samarthya.me/posts/pod-volume-k8s/</link><pubDate>Fri, 22 Jan 2021 10:19:46 +0000</pubDate><guid>https://samarthya.me/posts/pod-volume-k8s/</guid><description>&lt;p&gt;Everything in the same file&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apiVersion: v1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kind: Pod&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;metadata:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: redispod&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;spec:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; containers:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - image: redis&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: redisdb&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; volumeMounts:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: redis-data&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; mountPath: /data&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ports:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - containerPort: 6379&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; protocol: TCP&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; volumes:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - name: redis-data&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; persistentVolumeClaim:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; claimName: redisdb-pvc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apiVersion: v1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kind: PersistentVolume&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;metadata:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: redis-pv&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;spec:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; storageClassName: &amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; capacity:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; storage: 1Gi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; accessModes:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - ReadWriteOnce&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; hostPath:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; path: &amp;#34;/mnt/data&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apiVersion: v1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kind: PersistentVolumeClaim&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;metadata:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; name: redisdb-pvc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;spec:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; storageClassName: &amp;#34;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; accessModes:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; - ReadWriteOnce&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; resources:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; requests:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; storage: 1Gi&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;If you deploy you will get something like&lt;/p&gt;</description></item><item><title>Taint Nodes</title><link>https://samarthya.me/posts/taint-nodes/</link><pubDate>Tue, 12 Jan 2021 08:57:23 +0000</pubDate><guid>https://samarthya.me/posts/taint-nodes/</guid><description>&lt;h2 class="relative group"&gt;Reference&#10; &lt;div id="reference" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#reference" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/" target="_blank" rel="noreferrer"&gt;https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#example-use-cases" target="_blank" rel="noreferrer"&gt;https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#example-use-cases&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Before we understand the tainting we should know about the Node Affinity. It the by the virtue of Affinity that pods attracts nodes as a preference or as a basic requirement.&lt;/p&gt;</description></item><item><title>Quick: Cheat Sheet</title><link>https://samarthya.me/posts/quick-cheat-sheet/</link><pubDate>Fri, 08 Jan 2021 11:04:34 +0000</pubDate><guid>https://samarthya.me/posts/quick-cheat-sheet/</guid><description>&lt;p&gt;A cheat sheet for Installing K8S cluster.&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;Step1:&#10; &lt;div id="step1" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step1" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Check your OS?&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;cat /etc/issue&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;lsb_release -a&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&lt;h2 class="relative group"&gt;Step 2:&#10; &lt;div id="step-2" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#step-2" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;Add the GPG key as described &lt;a href="https://docs.docker.com/engine/install/ubuntu/" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Installing K8S on Ubuntu</title><link>https://samarthya.me/posts/installing-k8s-on-ubuntu/</link><pubDate>Mon, 14 Dec 2020 00:00:00 +0000</pubDate><guid>https://samarthya.me/posts/installing-k8s-on-ubuntu/</guid><description>&lt;p&gt;Install docker&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /etc/issue&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Ubuntu 18.04.4 LTS \n \l&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo add-apt-repository &amp;#34;deb [arch=amd64] https://download.docker.com/linux/ubuntu \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$(lsb_release -cs) \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stable&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-mark hold docker-ce&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-mark --help&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt 1.6.12ubuntu0.2 (amd64)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Usage: apt-mark [options] {auto|manual} pkg1 [pkg2 ...]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-mark is a simple command line interface for marking packages&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;as manually or automatically installed. It can also be used to&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;manipulate the dpkg(1) selection states of packages, and to list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;all packages with or without a certain marking.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lsb_release -c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Codename: bionic&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lsb_release -cs&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bionic&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl status docker&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;● docker.service - Docker Application Container Engine&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Active: active (running) since Mon 2020-12-14 09:05:39 UTC; 45s ago&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Docs: https://docs.docker.com&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Main PID: 662 (dockerd)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Tasks: 21&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; CGroup: /system.slice/docker.service&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├─662 /usr/bin/dockerd -H fd://&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─685 docker-containerd --config /var/run/docker/containerd/containerd.toml&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.297237656Z&amp;#34; level=info msg=&amp;#34;ClientConn switching balancer to \&amp;#34;pick_first\&amp;#34;&amp;#34; module=grpc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.297281586Z&amp;#34; level=info msg=&amp;#34;pickfirstBalancer: HandleSubConnStateChange: 0xc4201b7df0, CONNECTING&amp;#34; module=grpc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.297797167Z&amp;#34; level=info msg=&amp;#34;pickfirstBalancer: HandleSubConnStateChange: 0xc4201b7df0, READY&amp;#34; module=grpc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.297852837Z&amp;#34; level=info msg=&amp;#34;Loading containers: start.&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.596242360Z&amp;#34; level=info msg=&amp;#34;Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP addres&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.753685539Z&amp;#34; level=info msg=&amp;#34;Loading containers: done.&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.822291121Z&amp;#34; level=info msg=&amp;#34;Docker daemon&amp;#34; commit=e68fc7a graphdriver(s)=overlay2 version=18.06.1-ce&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.822430053Z&amp;#34; level=info msg=&amp;#34;Daemon has completed initialization&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 dockerd[662]: time=&amp;#34;2020-12-14T09:05:39.853660664Z&amp;#34; level=info msg=&amp;#34;API listen on /var/run/docker.sock&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Dec 14 09:05:39 ip-10-0-1-101 systemd[1]: Started Docker Application Container Engine.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat &amp;lt;&amp;lt; EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;deb https://apt.kubernetes.io/ kubernetes-xenial main&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;EOF&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install -y kubelet=1.14.5-00 kubeadm=1.14.5-00 kubectl=1.14.5-00&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-mark hold kubelet kubeadm kubectl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo kubeadm init --pod-network-cidr=10.244.0.0/16&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I1214 09:10:37.236647 3055 version.go:240] remote version is much newer: v1.20.0; falling back to: stable-1.14&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[init] Using Kubernetes version: v1.14.10&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[preflight] Running pre-flight checks&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [WARNING IsDockerSystemdCheck]: detected &amp;#34;cgroupfs&amp;#34; as the Docker cgroup driver. The recommended driver is &amp;#34;systemd&amp;#34;. Please follow the guide at https://kubernetes.io/docs/setup/cri/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[preflight] Pulling images required for setting up a Kubernetes cluster&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[preflight] This might take a minute or two, depending on the speed of your internet connection&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[preflight] You can also perform this action in beforehand using &amp;#39;kubeadm config images pull&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubelet-start] Writing kubelet environment file with flags to file &amp;#34;/var/lib/kubelet/kubeadm-flags.env&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubelet-start] Writing kubelet configuration to file &amp;#34;/var/lib/kubelet/config.yaml&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubelet-start] Activating the kubelet service&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Using certificateDir folder &amp;#34;/etc/kubernetes/pki&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;etcd/ca&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;etcd/server&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] etcd/server serving cert is signed for DNS names [ip-10-0-1-101 localhost] and IPs [10.0.1.101 127.0.0.1 ::1]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;etcd/peer&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] etcd/peer serving cert is signed for DNS names [ip-10-0-1-101 localhost] and IPs [10.0.1.101 127.0.0.1 ::1]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;apiserver-etcd-client&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;etcd/healthcheck-client&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;ca&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;apiserver-kubelet-client&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;apiserver&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] apiserver serving cert is signed for DNS names [ip-10-0-1-101 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 10.0.1.101]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;front-proxy-ca&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;front-proxy-client&amp;#34; certificate and key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[certs] Generating &amp;#34;sa&amp;#34; key and public key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubeconfig] Using kubeconfig folder &amp;#34;/etc/kubernetes&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubeconfig] Writing &amp;#34;admin.conf&amp;#34; kubeconfig file&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubeconfig] Writing &amp;#34;kubelet.conf&amp;#34; kubeconfig file&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubeconfig] Writing &amp;#34;controller-manager.conf&amp;#34; kubeconfig file&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubeconfig] Writing &amp;#34;scheduler.conf&amp;#34; kubeconfig file&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[control-plane] Using manifest folder &amp;#34;/etc/kubernetes/manifests&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[control-plane] Creating static Pod manifest for &amp;#34;kube-apiserver&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[control-plane] Creating static Pod manifest for &amp;#34;kube-controller-manager&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[control-plane] Creating static Pod manifest for &amp;#34;kube-scheduler&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[etcd] Creating static Pod manifest for local etcd in &amp;#34;/etc/kubernetes/manifests&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory &amp;#34;/etc/kubernetes/manifests&amp;#34;. This can take up to 4m0s&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[apiclient] All control plane components are healthy after 16.001809 seconds&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[upload-config] storing the configuration used in ConfigMap &amp;#34;kubeadm-config&amp;#34; in the &amp;#34;kube-system&amp;#34; Namespace&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[kubelet] Creating a ConfigMap &amp;#34;kubelet-config-1.14&amp;#34; in namespace kube-system with the configuration for the kubelets in the cluster&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[upload-certs] Skipping phase. Please see --experimental-upload-certs&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[mark-control-plane] Marking the node ip-10-0-1-101 as control-plane by adding the label &amp;#34;node-role.kubernetes.io/master=&amp;#39;&amp;#39;&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[mark-control-plane] Marking the node ip-10-0-1-101 as control-plane by adding the taints [node-role.kubernetes.io/master:NoSchedule]&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[bootstrap-token] Using token: xtpkvj.e81gaeg0v18shctg&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[bootstrap-token] Configuring bootstrap tokens, cluster-info ConfigMap, RBAC Roles&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[bootstrap-token] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[bootstrap-token] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[bootstrap-token] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[bootstrap-token] creating the &amp;#34;cluster-info&amp;#34; ConfigMap in the &amp;#34;kube-public&amp;#34; namespace&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[addons] Applied essential addon: CoreDNS&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[addons] Applied essential addon: kube-proxy&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Your Kubernetes control-plane has initialized successfully!&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;To start using your cluster, you need to run the following as a regular user:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; mkdir -p $HOME/.kube&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sudo chown $(id -u):$(id -g) $HOME/.kube/config&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;You should now deploy a pod network to the cluster.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Run &amp;#34;kubectl apply -f [podnetwork].yaml&amp;#34; with one of the options listed at:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; https://kubernetes.io/docs/concepts/cluster-administration/addons/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Then you can join any number of worker nodes by running the following on each as root:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubeadm join 10.0.1.101:6443 --token xtpkvj.e81gaeg0v18shctg \&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --discovery-token-ca-cert-hash sha256:6c79fda4db86da060f083b35def6c39790c47f6533ab8f7ebb6ea30c2c2af6a3&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Metric Server</title><link>https://samarthya.me/posts/metric-server/</link><pubDate>Wed, 09 Dec 2020 08:01:49 +0000</pubDate><guid>https://samarthya.me/posts/metric-server/</guid><description>&lt;p&gt;For my local K8S cluster of 4 nodes I wanted to get the resource usage metrics. From the official documentation of kubernetes.io&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;These metrics can be accessed either directly by the user with the &lt;code&gt;kubectl top&lt;/code&gt; command, or by a controller in the cluster, for example Horizontal Pod Autoscaler, to make decisions.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://kubernetes.io" target="_blank" rel="noreferrer"&gt;https://kubernetes.io&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>Dockeriz'd service</title><link>https://samarthya.me/posts/dockerizd-service/</link><pubDate>Thu, 13 Aug 2020 05:51:34 +0000</pubDate><guid>https://samarthya.me/posts/dockerizd-service/</guid><description>&lt;p&gt;Someone asked me to define a simple docker pod for the service I wrote in GOLang &lt;a href="https://samarthya.me/posts/go-webservice-postget/" &gt;here.&lt;/a&gt; I completely forgot about it, till today.&lt;/p&gt;&#10;&lt;p&gt;So here is my first attempt at getting a docker image for the service.&lt;/p&gt;</description></item><item><title>Shared Volume</title><link>https://samarthya.me/posts/shared-volume/</link><pubDate>Fri, 31 Jul 2020 07:10:03 +0000</pubDate><guid>https://samarthya.me/posts/shared-volume/</guid><description>&lt;p&gt;&lt;a href="https://docs.docker.com/storage/images/types-of-mounts-volume.png" target="_blank" rel="noreferrer"&gt;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="low"&#10; alt="Docker volume mount: the volume lives in Docker&amp;rsquo;s area of the host filesystem and is mounted into the container"&#10; src="https://docs.docker.com/storage/images/types-of-mounts-volume.png"&#10; &gt;&lt;/figure&gt;&#10;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Volumes are managed by Docker and is the preferred way of persisting, sharing data.&lt;/p&gt;</description></item><item><title>Storage Drivers</title><link>https://samarthya.me/posts/storage-drivers/</link><pubDate>Thu, 30 Jul 2020 09:28:40 +0000</pubDate><guid>https://samarthya.me/posts/storage-drivers/</guid><description>&lt;p&gt;The storage driver allows your to create data in the writable layers of the container and it also controls how images and containers are stored and managed on the Docker host.&lt;/p&gt;</description></item><item><title>Docker Registry</title><link>https://samarthya.me/posts/docker-registry/</link><pubDate>Wed, 29 Jul 2020 10:23:38 +0000</pubDate><guid>https://samarthya.me/posts/docker-registry/</guid><description>&lt;blockquote&gt;&lt;p&gt;A Docker registry is a stateless, highly scalable server side application that stores and lets you distribute Docker images.&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;Docker registry is a central location that stores and distributes docker images. E.g. hub.docker.com is the default registry used when you are using &lt;code&gt;docker pull&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>