<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title>SysAdmin Journal · Cloud Native</title>
        <link>https://sysadmin-journal.com/tag/cloud-native</link>
        <description>Posts tagged with Cloud Native</description>
        <language>en</language>
        <lastBuildDate>Mon, 23 Jun 2025 10:34:48 +0000</lastBuildDate>
        <atom:link href="https://sysadmin-journal.com/tag/cloud-native/rss" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        <item>
            <title>Cloud Native Mauritius, June Meetup — Rust special 🦀</title>
            <link>https://sysadmin-journal.com/cloud-native-mauritius-june-meetup-rust-speccial</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/cloud-native-mauritius-june-meetup-rust-speccial</guid>
            <pubDate>Mon, 23 Jun 2025 10:34:48 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Cloud Native</category>
            <description>On Saturday 21 June, we held this month&#039;s Cloud Native Community Group (CNCG) Mauritius meetup at Kuumba Coffee in Telfair, Moka. We had a special guest from Ankara, Türkiye.</description>
            <content:encoded><![CDATA[<p>This was one of our casual roundtable-style meetups — no sponsors, just a bunch of cloud-native enthusiasts sharing insights, laughs, and discuss containers over coffee. This meetup was special because Jain (<a href="https://x.com/EdogawaZain" rel="noreferrer">@EdogawaZain</a>) brought along a guest, <strong>Orhun Parmaksız</strong> (<a href="https://github.com/orhun">@orhun</a> | <a href="https://blog.orhun.dev/">blog.orhun.dev</a>), who did a talk about <strong>Cloud Native Tooling with Rust</strong>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2025/06/cncg-june-meetup-2-orhun-parmaksiz.jpeg" class="kg-image" alt="Jain &amp; Orhun" loading="lazy" width="1024" height="682" srcset="/content/images/size/w600/2025/06/cncg-june-meetup-2-orhun-parmaksiz.jpeg 600w, /content/images/size/w1000/2025/06/cncg-june-meetup-2-orhun-parmaksiz.jpeg 1000w, /content/images/2025/06/cncg-june-meetup-2-orhun-parmaksiz.jpeg 1024w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Jain &amp; Orhun</span></figcaption></figure><p>Orhun is a contributor to <strong>Arch Linux</strong>, currently working on rewriting several Arch tools in Rust. He’s also a maintainer of <a href="https://github.com/ratatui/ratatui"><strong>Ratatui</strong></a>, a versatile Rust crate for building terminal user interfaces (TUIs).</p><p>During the talk, Orhun shared his screen via the MIXP Jitsi instance, where he gave us a live walkthrough of his favorite Rust-based CLI tools — many built with Ratatui. Even his slides were a TUI presentation powered by Ratatui! </p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/06/cncg-june-meetup-jitsi-orhun-parmaksiz.jpeg" class="kg-image" alt="" loading="lazy" width="1024" height="682" srcset="/content/images/size/w600/2025/06/cncg-june-meetup-jitsi-orhun-parmaksiz.jpeg 600w, /content/images/size/w1000/2025/06/cncg-june-meetup-jitsi-orhun-parmaksiz.jpeg 1000w, /content/images/2025/06/cncg-june-meetup-jitsi-orhun-parmaksiz.jpeg 1024w" sizes="(min-width: 720px) 720px"></figure><p>It was a great hands-on discussion that bridged low-level systems knowledge with practical tooling in the cloud-native world.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/06/cncg-june-meetup-4-orhun-parmaksiz.jpeg" class="kg-image" alt="" loading="lazy" width="1024" height="682" srcset="/content/images/size/w600/2025/06/cncg-june-meetup-4-orhun-parmaksiz.jpeg 600w, /content/images/size/w1000/2025/06/cncg-june-meetup-4-orhun-parmaksiz.jpeg 1000w, /content/images/2025/06/cncg-june-meetup-4-orhun-parmaksiz.jpeg 1024w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2025/06/cncg-june-meetup-5-orhun-parmaksiz.jpeg" class="kg-image" alt="" loading="lazy" width="1280" height="580" srcset="/content/images/size/w600/2025/06/cncg-june-meetup-5-orhun-parmaksiz.jpeg 600w, /content/images/size/w1000/2025/06/cncg-june-meetup-5-orhun-parmaksiz.jpeg 1000w, /content/images/2025/06/cncg-june-meetup-5-orhun-parmaksiz.jpeg 1280w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Photo credit, Alex Bissessur — this is the only photo where I show up in the far right (except also on some poor quality selfies that I took)</span></figcaption></figure><p>Thanks to everyone who showed up, and to Orhun for the Rust-powered inspiration! 🦀</p>]]></content:encoded>
        </item>
        <item>
            <title>Cloud Native Mauritius — March 2025 Meetup</title>
            <link>https://sysadmin-journal.com/cloud-native-mauritius-march-2025-meetup</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/cloud-native-mauritius-march-2025-meetup</guid>
            <pubDate>Sun, 23 Mar 2025 16:44:07 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Cloud Native</category>
            <description>On Saturday 22 March 2025, the Cloud Native Chapter of Mauritius held a meetup in Moka. Eleven people attended this meetup.</description>
            <content:encoded><![CDATA[<p>The meetup was scheduled at 10 a.m. in Helvetia. We reached there on time, despite the battling rain. However, due to some logistics issues, we quickly had to decide whether to postpone the meetup or to move to another location. We pondered over the ideas and then finally decided to go to Kuumba Coffee at Telfair, Moka. Delphine, suggested the idea and we all agreed to it.</p><p>I didn't know about Kuumba Coffee, haven't been there before, but Neil vouched for the place. After all, everybody could fit in the three cars that we had. S. Moonesamy, on the other hand, got delayed and when he called, we suggested him to go directly to Kuumba Coffee and we would meet there.</p><p>We had three talks scheduled and a short demo of Vroume to be done by Mervin, in between one of the presentations. We did not have a screen/monitor to cast the presentation, so we decided that we'll share the slides and everyone can open the slides in their own laptop, and follow from there. </p><p>The talks were as follows:</p><p><strong>More YAML with Talos Linux</strong><br>by Alex Bissessur, the Kubernetes Face of <a href="https://www.lasentinelle.mu/technologies/" rel="noreferrer">La Sentinelle</a></p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-march-2025-1.jpeg" class="kg-image" alt="" loading="lazy" width="1059" height="706" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-march-2025-1.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-march-2025-1.jpeg 1000w, /content/images/2025/03/cloud-native-mauritius-march-2025-1.jpeg 1059w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-march-2025-3.jpeg" class="kg-image" alt="" loading="lazy" width="1298" height="865" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-march-2025-3.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-march-2025-3.jpeg 1000w, /content/images/2025/03/cloud-native-mauritius-march-2025-3.jpeg 1298w" sizes="(min-width: 720px) 720px"></figure><p>Alex talked about Talos Linux, an immutable, API-driven, minimalist operating system that has been designed from ground up for Kubernetes nodes. It is extremely lightweight, with no ssh, no systemd, no package managers — everything is controlled through a secure API. Talos is managed using the <code>talosctl</code> CLI tool, which interacts with the Talos API — similar to how you would manage your Kubernetes cluster using the <code>kubectl</code> CLI tool. The entire Talos node config is one big YAML file that describes everything from provisioning, networking, cluster config, etc.</p><p><strong>ClusterAPI in Action<br>Simplifying Multi-Cloud Kubernetes deployment</strong><br>by Prashant Ramhit (a.k.a CookieMonster), Senior DevOps Advocate at <a href="https://www.mirantis.com/" rel="noreferrer">Mirantis</a></p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-march-2025-2-cookiemonster.jpeg" class="kg-image" alt="" loading="lazy" width="941" height="706" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-march-2025-2-cookiemonster.jpeg 600w, /content/images/2025/03/cloud-native-mauritius-march-2025-2-cookiemonster.jpeg 941w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-march-2025-4.jpeg" class="kg-image" alt="" loading="lazy" width="941" height="706" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-march-2025-4.jpeg 600w, /content/images/2025/03/cloud-native-mauritius-march-2025-4.jpeg 941w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-march-2025-k0s-k0smotron-k0rdent.jpeg" class="kg-image" alt="" loading="lazy" width="1233" height="924" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-march-2025-k0s-k0smotron-k0rdent.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-march-2025-k0s-k0smotron-k0rdent.jpeg 1000w, /content/images/2025/03/cloud-native-mauritius-march-2025-k0s-k0smotron-k0rdent.jpeg 1233w" sizes="(min-width: 720px) 720px"></figure><p>Prashant spoke about ClusterAPI — a Kubernetes project that provides declarative APIs for the provisioning and management of multi-cloud k8s clusters. He did a demo, explaining through his YAML config — showing a <code>MachineDeployment</code> on the AWS infrastructure. He explained that ClusterAPI supports various types of cloud infra — from baremetal to major private/public cloud providers, like VMware, Azure, AWS, GCP, etc.</p><p>Prashant briefly mentioned <a href="https://www.mirantis.com/software/k0s/" rel="noreferrer">k0S</a> (a certified Kubernetes distribution), k0SMOTRON and k0RDENT — three open source projects by Mirantis. I was immediately impressed. I didn't know about Mirantis before but right there when checking these projects, I was glad to learn about those. I made some mental comparison of k3s vs k0s in head  — but I'll run some lab experiments for a more proper education on the tools.</p><p><strong>Cloud Native, Chance of Rain</strong><br>by S. Moonesamy, <a href="https://www.iana.org/dnssec/tcrs" rel="noreferrer">IANA</a> Trusted Community Representative (TCR)</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-s-moonesamy-1.jpeg" class="kg-image" alt="" loading="lazy" width="911" height="683" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-s-moonesamy-1.jpeg 600w, /content/images/2025/03/cloud-native-mauritius-s-moonesamy-1.jpeg 911w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-chance-of-rain.jpeg" class="kg-image" alt="" loading="lazy" width="1378" height="775" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-chance-of-rain.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-chance-of-rain.jpeg 1000w, /content/images/2025/03/cloud-native-mauritius-chance-of-rain.jpeg 1378w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-s-moonesamy-2.jpeg" class="kg-image" alt="" loading="lazy" width="1033" height="774" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-s-moonesamy-2.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-s-moonesamy-2.jpeg 1000w, /content/images/2025/03/cloud-native-mauritius-s-moonesamy-2.jpeg 1033w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-s-moonesamy-3.jpeg" class="kg-image" alt="" loading="lazy" width="1067" height="800" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-s-moonesamy-3.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-s-moonesamy-3.jpeg 1000w, /content/images/2025/03/cloud-native-mauritius-s-moonesamy-3.jpeg 1067w" sizes="(min-width: 720px) 720px"></figure><p>S. Moonesamy (SM), as cryptic, as his presentations can be, he engaged everyone to discuss what does the term "cloud" denote in Mauritius. Does a multi-tenant WordPress in Dubai constitute of <em>cloud</em> for Mauritian businesses?</p><p>SM mentioned the paper on <a href="https://historyofcomputercommunications.info/section/4.1/The-Intergalactic-Network-1962-1964/" rel="noreferrer"><em>The Intergalactic Computer Network</em></a> by J.C.R. Licklider, 1963. This was even before ARPANET — the birth of the Internet. </p><p>He mentioned other attempts by service providers to cajole local businesses into believing what is cloud. Yet, in 2025, we could be saying this is cloud or that is cloud but... in the end we only are sending our data in foreign jurisdictions. As example, he asked me whether I use Apple Cloud, (I replied affirmative), and then asked where is the data stored. See, questions like these make you think.</p><p>He mentioned a letter from Anatoly Kitov in 1959. We talked about Broadcom's purchase of VMware. The discussion ended with the <em>Chance of Rain,</em> another cryptic question from SM, saying that his weather app showed that it would be partly cloudy on Saturday — however, heavy rain was battling against the asphalt as he was presenting. He talked about outdated software still being in use, as some might be forced to continue using it, if moving away deems unpractical. </p><p>He shared his views on k8s — saying it's an open source system for automating deployment, and management of containerised applications, where the <em>containerised applications</em> could be regarded as <em>« gato pima »</em>.</p><figure class="kg-card kg-image-card"><img src="https://sysadmin-journal.com/content/images/2025/03/cloud-native-mauritius-march-2025-gato-pima.jpeg" class="kg-image" alt="" loading="lazy" width="1791" height="1094" srcset="/content/images/size/w600/2025/03/cloud-native-mauritius-march-2025-gato-pima.jpeg 600w, /content/images/size/w1000/2025/03/cloud-native-mauritius-march-2025-gato-pima.jpeg 1000w, /content/images/size/w1600/2025/03/cloud-native-mauritius-march-2025-gato-pima.jpeg 1600w, /content/images/2025/03/cloud-native-mauritius-march-2025-gato-pima.jpeg 1791w" sizes="(min-width: 720px) 720px"></figure><p>Meetup ended by 14h30. Some among us left for home and a small band headed to Flying Dodo where the geek talk continued. </p><blockquote>Visit <a href="https://cloudnativemauritius.com/" rel="noreferrer">cloudnativemauritius.com</a> to learn about future meetups of the Cloud Native Chapter of Mauritius.</blockquote>]]></content:encoded>
        </item>
        <item>
            <title>First Cloud Native Chapter Meetup at SWAN</title>
            <link>https://sysadmin-journal.com/first-cloud-native-chapter-meetup-at-swan-mauritius</link>
            <guid isPermaLink="true">https://sysadmin-journal.com/first-cloud-native-chapter-meetup-at-swan-mauritius</guid>
            <pubDate>Sun, 06 Oct 2024 07:35:30 +0000</pubDate>
            <dc:creator>Ish Sookun</dc:creator>
            <category>Cloud Native</category>
            <description>Saturday 31 August, the first Cloud Native Meetup was held at the SWAN Head Office in Port-Louis. We are very grateful for this sponsorship and collaboration between SWAN and the Cloud Native Chapter of Mauritius.</description>
            <media:content url="https://sysadmin-journal.com/content/images/2024/10/rancher-desktop-macos-m1.jpeg" medium="image" />
            <content:encoded><![CDATA[<p>Since this is the first post about the Cloud Native (chapter) on my blog, let me add a little bit of background information.</p><p>Cloud Native refers to an approach to building and running applications that fully leverage the advantages of technologies like containers, microservices, and orchestration tools such as Kubernetes.&nbsp;The <a href="https://www.cncf.io/" rel="noreferrer"><strong>Cloud Native Computing Foundation (CNCF)</strong></a> is an open-source software foundation that promotes the development and adoption of cloud native technologies. CNCF supports projects that enable cloud native development, such as <a href="https://kubernetes.io/" rel="noreferrer">Kubernetes</a>, <a href="https://prometheus.io/" rel="noreferrer">Prometheus</a>, <a href="https://helm.sh/" rel="noreferrer">Helm</a>, <a href="https://argoproj.github.io/" rel="noreferrer">Argo</a> and many more (See the <a href="https://landscape.cncf.io/" rel="noreferrer">CNCF landscape</a>). By fostering collaboration and innovation within the cloud native ecosystem, CNCF helps developers and companies build modern, scalable applications.</p><p>CNCF fosters a global community through its <a href="https://community.cncf.io/chapters/" rel="noreferrer">community groups or chapters</a>, which are local groups that bring together developers, practitioners, and enthusiasts to share knowledge and collaborate on cloud native technologies. These chapters host meetups, workshops, and events, providing a space for individuals to learn, network, and contribute to the cloud native ecosystem at a local level.</p><p>We announced the creation of the <em>Cloud Native Mauritius Chapter</em> in July at the <a href="https://sysadmin-journal.com/developers-conference-2024/" rel="noreferrer">Developers Conference</a>. Great enough, we were able to host our first meetup right a month after that thanks to the sponsorship by SWAN — providing a venue and snacks/beverages for the attendees.</p><p>Alex published a nice <a href="https://alexbissessur.dev/cloud-native-august-meetup/" rel="noreferrer">sum-up of the event</a> on his blog. I invite you to read it to see how the day unfolded.</p><p>In this post, however, I would to shed more light over a tool that I used for the demo during my presentation — Rancher Desktop.</p><p>The theme of my presentation was "Cloud Native for the Monolith User". It was themed so, because I wanted to demo a use case, referring to lexpress.mu, on how it's built as a monolith application using Laravel, and yet we can deploy the same on Kubernetes without changing a single line of code.</p><p>The basic idea is to be able to identify services that make the application <strong>stateful —</strong> such as MySQL and Redis.</p><p>For the actual demo on that day I used a simple Laravel application that I wrote quickly only for the demo. I called it "Random Persons". It portrays the basic use of MySQL and Redis to fetch and cache records from a database. I use Laravel's Eloquent Factory to generate random names and countries for testing the application. You can have a look at the demo app, <a href="https://github.com/ishwon/random-persons/" rel="noreferrer">"Random Persons" on GitHub</a>.</p><p>I create a simple Laravel application that uses the Eloquent Factory class to generate random names and countries for testing the application.</p><pre><code># database/factories/PersonFactory.php

class PersonFactory extends Factory
{
    public function definition(): array
    {
        return [
            'firstname' =&gt; $this-&gt;faker-&gt;firstName,
            'lastname' =&gt; $this-&gt;faker-&gt;lastName,
            'country' =&gt; $this-&gt;faker-&gt;country,
        ];
    }
}</code></pre><pre><code># database/seeders/PersonSeeder.php

class PersonSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        Person::factory()-&gt;count(50)-&gt;create();
    }
}</code></pre><p>The application uses the above Factory class and <code>faker()</code> helper to generate 50 random names and countries.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://sysadmin-journal.com/content/images/2024/09/random-persons-laravel-application.png" class="kg-image" alt="Screenshot of the 'Random Persons' Laravel application" loading="lazy" width="2000" height="1291" srcset="/content/images/size/w600/2024/09/random-persons-laravel-application.png 600w, /content/images/size/w1000/2024/09/random-persons-laravel-application.png 1000w, /content/images/size/w1600/2024/09/random-persons-laravel-application.png 1600w, /content/images/size/w2400/2024/09/random-persons-laravel-application.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Screenshot of the 'Random Persons' Laravel application</span></figcaption></figure><p>When the application runs it produces a nice data table that pulls the names and countries from a MySQL database, thus letting us test the APP -&gt; DB connection. In order to test Redis part, I cache the database results to Redis, when fetching the records.</p><pre><code>public function index()
{
    $persons = Cache::remember('persons_page_' . request('page', 1), 60, function () {
        return Person::paginate(5);
    });
    return view('index', compact('persons'));
}</code></pre><p>Now, that we have a functional Laravel application fetching records from MySQL and caching them using Redis, the next step is to deploy it using a container.</p><p>I used the <a href="https://frankenphp.dev/docs/docker/" rel="noreferrer">FrankenPHP</a> container to build the application.</p><pre><code>FROM dunglas/frankenphp

RUN install-php-extensions \
    pcntl \
    pdo_mysql \
    redis \
    opcache \
    xdebug \
    zip \
    bcmath \
    sockets \
    intl \
    gd \
    imagick \
    exif \
    gmp \
    soap \
    xml \
    zip \
    bz2 \
    calendar \
    tokenizer

COPY . /app

ENTRYPOINT ["php", "artisan", "octane:frankenphp"]</code></pre><p>Next comes <a href="https://rancherdesktop.io/" rel="noreferrer">Rancher Desktop</a>.</p><p>Rancher Desktop is an open-source application that provides a seamless way to run Kubernetes on a laptop or desktop for development and testing. With features like easy cluster management, port forwarding, and support for multiple Kubernetes versions, it allows developers to iterate rapidly and ensures that applications behave consistently across development and production environments.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2024/09/rancher-desktop-macos.jpeg" class="kg-image" alt="" loading="lazy" width="2000" height="1238" srcset="/content/images/size/w600/2024/09/rancher-desktop-macos.jpeg 600w, /content/images/size/w1000/2024/09/rancher-desktop-macos.jpeg 1000w, /content/images/size/w1600/2024/09/rancher-desktop-macos.jpeg 1600w, /content/images/size/w2400/2024/09/rancher-desktop-macos.jpeg 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>Rancher Desktop comes with a tool called <code>nerdctl</code> that can be used to build containers. I ran the below command from the directory that contains the <code>Dockerfile</code> to build the container image.</p><pre><code>nerdctl -n k8s.io build -t random-persons:1.0 .</code></pre><p>It builds the container image within the <code>k8s.io</code> namespace which is a <code>containerd</code> namespace that contains all the containers started from the CRI plugin by kubelet.</p><p>I used the Rancher Desktop to create a <code>ConfigMap</code> that will provide all the <code>.env</code> variables for "Random Persons". </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://sysadmin-journal.com/content/images/2024/10/rancher-desktop-configmap.png" class="kg-image" alt="" loading="lazy" width="2000" height="1290" srcset="/content/images/size/w600/2024/10/rancher-desktop-configmap.png 600w, /content/images/size/w1000/2024/10/rancher-desktop-configmap.png 1000w, /content/images/size/w1600/2024/10/rancher-desktop-configmap.png 1600w, /content/images/size/w2400/2024/10/rancher-desktop-configmap.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>I was already running Redis and MySQL as separate deployments. However, in the presentation the assumption was that these services would be running on Virtual Machines which the "kubernetes cluster" could access.</p><pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: random-persons
  labels:
    app: random-persons
spec:
  replicas: 3
  selector:
    matchLabels:
      app: random-persons
  template:
    metadata:
      labels:
        app: random-persons
    spec:
      containers:
      - name: random-persons
        image: random-persons:1.0
        ports:
        - containerPort: 8000
        envFrom:
        - configMapRef:
            name: random-persons</code></pre><p>I used the above deployment manifest file to deploy three replicas of the "Random Persons" application. Then, I used the below service manifest to create a service that will make application available on port 8000 on the cluster.</p><pre><code>apiVersion: v1
kind: Service
metadata:
  name: random-persons
spec:
  selector:
    app: random-persons
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000</code></pre><p>It's faster to apply both manifests using <code>kubectl</code> that doing it through the interface.</p><pre><code>kubectl apply -f .</code></pre><p>Finally, create a port forward on the laptop to allow requests on port 8000 be forwarded to the cluster.</p><pre><code>kubectl port-forward service/random-persons 8000:8000</code></pre><p>Like that, using Rancher Desktop, we can do cloud native application development on any notebook or desktop computer. </p>]]></content:encoded>
        </item>
    </channel>
</rss>
