<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kubeadm on Menra Romial</title><link>https://menraromial.com/tags/kubeadm/</link><description>Recent content in Kubeadm on Menra Romial</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 24 Aug 2025 17:30:00 +0000</lastBuildDate><atom:link href="https://menraromial.com/tags/kubeadm/index.xml" rel="self" type="application/rss+xml"/><item><title>Guide to Building a Custom Kubernetes Scheduler</title><link>https://menraromial.com/posts/guide-building-custom-kubernetes-scheduler/</link><pubDate>Sun, 24 Aug 2025 17:30:00 +0000</pubDate><guid>https://menraromial.com/posts/guide-building-custom-kubernetes-scheduler/</guid><description>&lt;p&gt;This guide will walk you through creating a custom scheduler plugin that influences where pods are placed based on custom logic. We will build a simple &amp;ldquo;Network-Aware&amp;rdquo; plugin that prefers to schedule pods on nodes with a specific network label.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What We Will Build:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A &lt;code&gt;Filter&lt;/code&gt; plugin:&lt;/strong&gt; It will only allow pods that request &lt;code&gt;high-speed&lt;/code&gt; networking to be scheduled on nodes that are labeled as &lt;code&gt;network-topology=high-speed&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A &lt;code&gt;Score&lt;/code&gt; plugin:&lt;/strong&gt; It will give a higher score to nodes with the &lt;code&gt;high-speed&lt;/code&gt; label, making them more desirable.&lt;/li&gt;
&lt;li&gt;We will then package this plugin into a new scheduler binary, containerize it, and deploy it to a local Kubernetes cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="part-1-understanding-the-foundations---the-scheduling-framework"&gt;&lt;strong&gt;Part 1: Understanding the Foundations - The Scheduling Framework&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Before writing any code, it&amp;rsquo;s crucial to understand the &amp;ldquo;why&amp;rdquo; and &amp;ldquo;how&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Setting Up a Kubernetes Cluster with Kubeadm and CRI-O</title><link>https://menraromial.com/posts/kubernetes-with-kubeadm-and-cri.io/</link><pubDate>Tue, 25 Mar 2025 16:40:16 +0000</pubDate><guid>https://menraromial.com/posts/kubernetes-with-kubeadm-and-cri.io/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before setting up a Kubernetes cluster using Kubeadm and CRI-O, ensure that you meet the following requirements:&lt;/p&gt;
&lt;h3 id="hardware-requirements"&gt;Hardware Requirements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;At least &lt;strong&gt;2 GB of RAM&lt;/strong&gt; per node (4 GB recommended for the master node)&lt;/li&gt;
&lt;li&gt;At least &lt;strong&gt;2 CPUs&lt;/strong&gt; per node&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;20 GB of free disk space&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A stable &lt;strong&gt;internet connection&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;All nodes should be able to communicate with each other&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="software-requirements"&gt;Software Requirements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A supported &lt;strong&gt;Linux distribution&lt;/strong&gt; (Ubuntu 20.04+ or Debian 10+ recommended)&lt;/li&gt;
&lt;li&gt;User access with &lt;strong&gt;sudo privileges&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Basic understanding of &lt;strong&gt;Linux command-line interface (CLI)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Knowledge of &lt;strong&gt;networking concepts&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="step-1-configure-kernel-parameters"&gt;Step 1: Configure Kernel Parameters&lt;/h2&gt;
&lt;p&gt;Kubernetes requires some kernel parameters to be set to allow IPtables to see bridged traffic.&lt;/p&gt;</description></item></channel></rss>