<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>System Admin Share</title><description>Windows,Unix,Vmware,AIX,Veritas,Networking,Cluster,Troubleshooting,Daily Hacks,Openshift,Kubernetes.
System administration is a great choice for anyone who has the brain and passion.
This blog provides useful Information for System Administrators on various topics such as 


Let’s Stay in touch. Please subscribe to our blog for the latest posts.</description><managingEditor>noreply@blogger.com (LiveStream)</managingEditor><pubDate>Tue, 17 Mar 2026 04:45:03 +0530</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">281</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">3</openSearch:itemsPerPage><link>https://ny55.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:summary>Windows,Unix,Vmware,AIX,Veritas,Networking,Cluster,Troubleshooting,Daily Hacks,Openshift,Kubernetes. System administration is a great choice for anyone who has the brain and passion. This blog provides useful Information for System Administrators on various topics such as Let’s Stay in touch. Please subscribe to our blog for the latest posts.</itunes:summary><itunes:subtitle>Windows,Unix,Vmware,AIX,Veritas,Networking,Cluster,Troubleshooting,Daily Hacks,Openshift,Kubernetes. System administration is a great choice for anyone who has the brain and passion. This blog provides useful Information for System Administrators on vario</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>How to Fix a Bricked Xiaomi Mi 360 Camera (Stuck on Solid Yellow Light)</title><link>https://ny55.blogspot.com/2026/03/how-to-fix-bricked-xiaomi-mi-360-camera.html</link><author>noreply@blogger.com (System Engineer)</author><pubDate>Sat, 7 Mar 2026 17:15:24 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-90357180440824696.post-2705558355556350259</guid><description>&lt;p&gt;&amp;nbsp;When you spend your day orchestrating complex infrastructure and recovering cloud systems, dealing with a bricked smart home gadget feels like it should be an easy afternoon fix. Yet, seeing that dreaded solid yellow light on your Xiaomi Mi 360 Security Camera is enough to test anyone’s patience.&lt;/p&gt;&lt;p data-path-to-node="4"&gt;Usually, this happens after an interrupted Over-The-Air (OTA) firmware update or a sudden power failure. The camera becomes completely unresponsive, refuses to connect to the Mi Home app, and just stares at you with a solid orange/yellow LED.&lt;/p&gt;&lt;p data-path-to-node="5"&gt;Before you toss it in the e-waste bin, don't worry—it’s entirely recoverable. You just need to manually flash the factory firmware using a MicroSD card.&lt;/p&gt;&lt;p data-path-to-node="6"&gt;I recently put together a complete repository for this fix over on GitHub: &lt;b data-index-in-node="75" data-path-to-node="6"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQtAI" decode-data-ved="1" externallink="" href="https://www.google.com/search?q=https://github.com/nandlalyadav57/MJSXJ02CM-360-Degree-Security-Recovery&amp;amp;authuser=1" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;nandlalyadav57/MJSXJ02CM-360-Degree-Security-Recovery&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/b&gt;.&lt;/p&gt;&lt;p data-path-to-node="7"&gt;Here is the step-by-step guide on how to bring your camera back to life.&lt;/p&gt;&lt;p data-path-to-node="7"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1_haqEJh9gB5y6WRGz_j5scHN4TQJkPRetzLwjFdnWuzg3ptfa3MwrNzbMuYWvKb-U_KlXUrf4HNSYYLd7neXRo_4FZrqZ4N9JX4f_ycuTEx3uOsJXHgN4M6uQUiGNEw24iv674r0apT5b240XwiFThRr-sZvp_A55UaOkCa1J4ZmLISgPKxuy2_VjlQ/s1408/Gemini_Generated_Image_pbfnpwpbfnpwpbfn.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="768" data-original-width="1408" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1_haqEJh9gB5y6WRGz_j5scHN4TQJkPRetzLwjFdnWuzg3ptfa3MwrNzbMuYWvKb-U_KlXUrf4HNSYYLd7neXRo_4FZrqZ4N9JX4f_ycuTEx3uOsJXHgN4M6uQUiGNEw24iv674r0apT5b240XwiFThRr-sZvp_A55UaOkCa1J4ZmLISgPKxuy2_VjlQ/s16000/Gemini_Generated_Image_pbfnpwpbfnpwpbfn.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p data-path-to-node="7"&gt;&lt;/p&gt;&lt;h2 data-path-to-node="9"&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2 data-path-to-node="9"&gt;⚠️ The Golden Rule: Check Your Model Number&lt;/h2&gt;&lt;p data-path-to-node="10"&gt;Xiaomi manufactures dozens of identical-looking cameras with completely different internal hardware. &lt;b data-index-in-node="101" data-path-to-node="10"&gt;Flashing the wrong firmware will permanently destroy your camera.&lt;/b&gt;&lt;/p&gt;&lt;p data-path-to-node="11"&gt;Turn your camera upside down and check the sticker on the base. You are looking for a model number like &lt;code data-index-in-node="104" data-path-to-node="11"&gt;MJSXJ02CM&lt;/code&gt;, &lt;code data-index-in-node="115" data-path-to-node="11"&gt;MJSXJ05CM&lt;/code&gt;, or &lt;code data-index-in-node="129" data-path-to-node="11"&gt;MJSXJ09CM&lt;/code&gt;. Write this down.&lt;/p&gt;&lt;h2 data-path-to-node="12"&gt;What You Need&lt;/h2&gt;&lt;ul data-path-to-node="13"&gt;&lt;li&gt;&lt;p data-path-to-node="13,0,0"&gt;A &lt;b data-index-in-node="2" data-path-to-node="13,0,0"&gt;MicroSD card&lt;/b&gt; (16GB or 32GB is ideal; Class 10 recommended).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="13,1,0"&gt;A PC or Mac with an SD card reader.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="13,2,0"&gt;The exact firmware file for your specific camera model.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr data-path-to-node="14" /&gt;&lt;h2 data-path-to-node="15"&gt;Step 1: Format Your MicroSD Card&lt;/h2&gt;&lt;p data-path-to-node="16"&gt;Smart camera bootloaders are incredibly picky. Your SD card must be formatted to &lt;b data-index-in-node="81" data-path-to-node="16"&gt;FAT32&lt;/b&gt;.
If you format it to exFAT or NTFS, the camera simply won't be able to read the recovery file, and the flash will fail silently.&lt;/p&gt;&lt;h2 data-path-to-node="17"&gt;Step 2: Download the Factory Firmware&lt;/h2&gt;&lt;p data-path-to-node="18"&gt;Instead of hunting through sketchy forums, I’ve compiled the direct download links straight from Xiaomi’s official CDN servers. Find your exact model below:&lt;/p&gt;&lt;p data-path-to-node="19"&gt;&lt;b data-index-in-node="0" data-path-to-node="19"&gt;Mi 360° Camera (1080p)&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node="20"&gt;&lt;li&gt;&lt;p data-path-to-node="20,0,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="20,0,0"&gt;MJSXJ02CM:&lt;/b&gt; &lt;response-element ng-version="0.0.0-PLACEHOLDER"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQtQI" decode-data-ved="1" externallink="" href="https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/ipc009/firmware/IPC009_4.0.9_0409.zip" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;Download IPC009_4.0.9_0409.zip&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt; &lt;i data-index-in-node="42" data-path-to-node="20,0,0"&gt;(My featured model on GitHub)&lt;/i&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="20,1,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="20,1,0"&gt;MJSXJ05CM:&lt;/b&gt; &lt;response-element ng-version="0.0.0-PLACEHOLDER"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQtgI" decode-data-ved="1" externallink="" href="https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/ipc019/firmware/IPC019_4.0.9_0426.zip" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;Download IPC019_4.0.9_0426.zip&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="20,2,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="20,2,0"&gt;MJSXJ08CM (Essential):&lt;/b&gt; &lt;response-element ng-version="0.0.0-PLACEHOLDER"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQtwI" decode-data-ved="1" externallink="" href="https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/ipc026c/IPC026C_4.0.9_0268.rar" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;Download IPC026C_4.0.9_0268.rar&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="20,3,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="20,3,0"&gt;MJSXJ10CM (C200 / SE+):&lt;/b&gt; &lt;response-element ng-version="0.0.0-PLACEHOLDER"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQuAI" decode-data-ved="1" externallink="" href="https://www.google.com/search?q=https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/IPC026C02/IPC026C02_4.1.4_0084.rar&amp;amp;authuser=1" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;Download IPC026C02_4.1.4_0084.rar&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node="21"&gt;&lt;b data-index-in-node="0" data-path-to-node="21"&gt;Mi 360° Camera (2K &amp;amp; 2K Pro)&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node="22"&gt;&lt;li&gt;&lt;p data-path-to-node="22,0,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="22,0,0"&gt;MJSXJ09CM (2K):&lt;/b&gt; &lt;response-element ng-version="0.0.0-PLACEHOLDER"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQuQI" decode-data-ved="1" externallink="" href="https://www.google.com/search?q=https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/ipc029a/IPC029A_4.0.9_0267.rar&amp;amp;authuser=1" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;Download IPC029A_4.0.9_0267.rar&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="22,1,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="22,1,0"&gt;MJSXJ06CM (2K Pro):&lt;/b&gt; &lt;response-element ng-version="0.0.0-PLACEHOLDER"&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;link-block _nghost-ng-c2982068532="" class="ng-star-inserted"&gt;&lt;!----&gt;&lt;!----&gt;&lt;a _ngcontent-ng-c2982068532="" _nghost-ng-c3155569424="" class="ng-star-inserted" data-hveid="0" data-ved="0CAAQ_4QMahgKEwibpt__yI2TAxUAAAAAHQAAAAAQugI" decode-data-ved="1" externallink="" href="https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/ipc021/IPC021_4.1.6_0206.zip" jslog="197247;track:generic_click,impression,attention;BardVeMetadataKey:[[&amp;quot;r_65b26e6ad24a095a&amp;quot;,&amp;quot;c_3a51831451e2f46d&amp;quot;,null,&amp;quot;rc_32044b7212ded931&amp;quot;,null,null,&amp;quot;en&amp;quot;,null,1,null,null,1,0]]" rel="noopener" target="_blank"&gt;Download IPC021_4.1.6_0206.zip&lt;/a&gt;&lt;!----&gt;&lt;/link-block&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/response-element&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node="23"&gt;Once downloaded, extract the &lt;code data-index-in-node="29" data-path-to-node="23"&gt;.zip&lt;/code&gt; or &lt;code data-index-in-node="37" data-path-to-node="23"&gt;.rar&lt;/code&gt; file. Inside, you will find a file usually named &lt;code data-index-in-node="91" data-path-to-node="23"&gt;tf_recovery.img&lt;/code&gt; (on some models, it might be &lt;code data-index-in-node="136" data-path-to-node="23"&gt;demo.bin&lt;/code&gt;).&lt;/p&gt;&lt;p data-path-to-node="24"&gt;Copy this recovery file directly to the &lt;b data-index-in-node="40" data-path-to-node="24"&gt;root directory&lt;/b&gt; of your formatted SD card. Do not hide it inside a folder. Eject the card safely.&lt;/p&gt;&lt;hr data-path-to-node="25" /&gt;&lt;h2 data-path-to-node="26"&gt;Step 3: Flash the Recovery Firmware&lt;/h2&gt;&lt;p data-path-to-node="27"&gt;This is the moment of truth. Follow these steps precisely:&lt;/p&gt;&lt;ol data-path-to-node="28" start="1"&gt;&lt;li&gt;&lt;p data-path-to-node="28,0,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,0,0"&gt;Cut the Power:&lt;/b&gt; Unplug the micro-USB or USB-C cable from the back of your camera so it is completely dead.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="28,1,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,1,0"&gt;Insert the SD Card:&lt;/b&gt; Gently roll the black camera lens upwards with your thumb to reveal the hidden MicroSD card slot. Push the card in until it clicks.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="28,2,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,2,0"&gt;Power it Up:&lt;/b&gt; Plug the camera back into the wall.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="28,3,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,3,0"&gt;Watch the LED:&lt;/b&gt; The light will start solid yellow/orange. After a few seconds, it should begin blinking. This blinking means the bootloader has found the &lt;code data-index-in-node="153" data-path-to-node="28,3,0"&gt;.img&lt;/code&gt; file and is actively rewriting the firmware.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node="28,4,0"&gt;&lt;b data-index-in-node="0" data-path-to-node="28,4,0"&gt;Hands Off:&lt;/b&gt; Wait 5 to 10 minutes. Do not unplug the camera. Do not press the reset button. Just let it work.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-path-to-node="29"&gt;If the flash is successful, the camera will automatically reboot itself. The camera head will rotate, the LED will start blinking blue, and you’ll hear the familiar voice prompt: &lt;i data-index-in-node="179" data-path-to-node="29"&gt;"QR code ready to scan."&lt;/i&gt;&lt;/p&gt;&lt;h2 data-path-to-node="30"&gt;Step 4: Clean Up&lt;/h2&gt;&lt;p data-path-to-node="31"&gt;Unplug the camera, pop the SD card out, and format the SD card on your computer again. If you leave the &lt;code data-index-in-node="104" data-path-to-node="31"&gt;tf_recovery.img&lt;/code&gt; file on the card and put it back in the camera, it will trigger the flashing process all over again the next time the camera reboots.&lt;/p&gt;&lt;p data-path-to-node="32"&gt;Pop the clean SD card back in, open your Mi Home app, and set your camera up like it just came out of the box!&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1_haqEJh9gB5y6WRGz_j5scHN4TQJkPRetzLwjFdnWuzg3ptfa3MwrNzbMuYWvKb-U_KlXUrf4HNSYYLd7neXRo_4FZrqZ4N9JX4f_ycuTEx3uOsJXHgN4M6uQUiGNEw24iv674r0apT5b240XwiFThRr-sZvp_A55UaOkCa1J4ZmLISgPKxuy2_VjlQ/s72-c/Gemini_Generated_Image_pbfnpwpbfnpwpbfn.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure length="21297954" type="application/octet-stream" url="https://cdn.cnbj2.fds.api.mi-img.com/chuangmi-cdn/product/ipc009/firmware/IPC009_4.0.9_0409.zip"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>&amp;nbsp;When you spend your day orchestrating complex infrastructure and recovering cloud systems, dealing with a bricked smart home gadget feels like it should be an easy afternoon fix. Yet, seeing that dreaded solid yellow light on your Xiaomi Mi 360 Security Camera is enough to test anyone’s patience.Usually, this happens after an interrupted Over-The-Air (OTA) firmware update or a sudden power failure. The camera becomes completely unresponsive, refuses to connect to the Mi Home app, and just stares at you with a solid orange/yellow LED.Before you toss it in the e-waste bin, don't worry—it’s entirely recoverable. You just need to manually flash the factory firmware using a MicroSD card.I recently put together a complete repository for this fix over on GitHub: nandlalyadav57/MJSXJ02CM-360-Degree-Security-Recovery.Here is the step-by-step guide on how to bring your camera back to life. ⚠️ The Golden Rule: Check Your Model NumberXiaomi manufactures dozens of identical-looking cameras with completely different internal hardware. Flashing the wrong firmware will permanently destroy your camera.Turn your camera upside down and check the sticker on the base. You are looking for a model number like MJSXJ02CM, MJSXJ05CM, or MJSXJ09CM. Write this down.What You NeedA MicroSD card (16GB or 32GB is ideal; Class 10 recommended).A PC or Mac with an SD card reader.The exact firmware file for your specific camera model.Step 1: Format Your MicroSD CardSmart camera bootloaders are incredibly picky. Your SD card must be formatted to FAT32. If you format it to exFAT or NTFS, the camera simply won't be able to read the recovery file, and the flash will fail silently.Step 2: Download the Factory FirmwareInstead of hunting through sketchy forums, I’ve compiled the direct download links straight from Xiaomi’s official CDN servers. Find your exact model below:Mi 360° Camera (1080p)MJSXJ02CM: Download IPC009_4.0.9_0409.zip (My featured model on GitHub)MJSXJ05CM: Download IPC019_4.0.9_0426.zipMJSXJ08CM (Essential): Download IPC026C_4.0.9_0268.rarMJSXJ10CM (C200 / SE+): Download IPC026C02_4.1.4_0084.rarMi 360° Camera (2K &amp;amp; 2K Pro)MJSXJ09CM (2K): Download IPC029A_4.0.9_0267.rarMJSXJ06CM (2K Pro): Download IPC021_4.1.6_0206.zipOnce downloaded, extract the .zip or .rar file. Inside, you will find a file usually named tf_recovery.img (on some models, it might be demo.bin).Copy this recovery file directly to the root directory of your formatted SD card. Do not hide it inside a folder. Eject the card safely.Step 3: Flash the Recovery FirmwareThis is the moment of truth. Follow these steps precisely:Cut the Power: Unplug the micro-USB or USB-C cable from the back of your camera so it is completely dead.Insert the SD Card: Gently roll the black camera lens upwards with your thumb to reveal the hidden MicroSD card slot. Push the card in until it clicks.Power it Up: Plug the camera back into the wall.Watch the LED: The light will start solid yellow/orange. After a few seconds, it should begin blinking. This blinking means the bootloader has found the .img file and is actively rewriting the firmware.Hands Off: Wait 5 to 10 minutes. Do not unplug the camera. Do not press the reset button. Just let it work.If the flash is successful, the camera will automatically reboot itself. The camera head will rotate, the LED will start blinking blue, and you’ll hear the familiar voice prompt: "QR code ready to scan."Step 4: Clean UpUnplug the camera, pop the SD card out, and format the SD card on your computer again. If you leave the tf_recovery.img file on the card and put it back in the camera, it will trigger the flashing process all over again the next time the camera reboots.Pop the clean SD card back in, open your Mi Home app, and set your camera up like it just came out of the box!</itunes:subtitle><itunes:author>noreply@blogger.com (System Engineer)</itunes:author><itunes:summary>&amp;nbsp;When you spend your day orchestrating complex infrastructure and recovering cloud systems, dealing with a bricked smart home gadget feels like it should be an easy afternoon fix. Yet, seeing that dreaded solid yellow light on your Xiaomi Mi 360 Security Camera is enough to test anyone’s patience.Usually, this happens after an interrupted Over-The-Air (OTA) firmware update or a sudden power failure. The camera becomes completely unresponsive, refuses to connect to the Mi Home app, and just stares at you with a solid orange/yellow LED.Before you toss it in the e-waste bin, don't worry—it’s entirely recoverable. You just need to manually flash the factory firmware using a MicroSD card.I recently put together a complete repository for this fix over on GitHub: nandlalyadav57/MJSXJ02CM-360-Degree-Security-Recovery.Here is the step-by-step guide on how to bring your camera back to life. ⚠️ The Golden Rule: Check Your Model NumberXiaomi manufactures dozens of identical-looking cameras with completely different internal hardware. Flashing the wrong firmware will permanently destroy your camera.Turn your camera upside down and check the sticker on the base. You are looking for a model number like MJSXJ02CM, MJSXJ05CM, or MJSXJ09CM. Write this down.What You NeedA MicroSD card (16GB or 32GB is ideal; Class 10 recommended).A PC or Mac with an SD card reader.The exact firmware file for your specific camera model.Step 1: Format Your MicroSD CardSmart camera bootloaders are incredibly picky. Your SD card must be formatted to FAT32. If you format it to exFAT or NTFS, the camera simply won't be able to read the recovery file, and the flash will fail silently.Step 2: Download the Factory FirmwareInstead of hunting through sketchy forums, I’ve compiled the direct download links straight from Xiaomi’s official CDN servers. Find your exact model below:Mi 360° Camera (1080p)MJSXJ02CM: Download IPC009_4.0.9_0409.zip (My featured model on GitHub)MJSXJ05CM: Download IPC019_4.0.9_0426.zipMJSXJ08CM (Essential): Download IPC026C_4.0.9_0268.rarMJSXJ10CM (C200 / SE+): Download IPC026C02_4.1.4_0084.rarMi 360° Camera (2K &amp;amp; 2K Pro)MJSXJ09CM (2K): Download IPC029A_4.0.9_0267.rarMJSXJ06CM (2K Pro): Download IPC021_4.1.6_0206.zipOnce downloaded, extract the .zip or .rar file. Inside, you will find a file usually named tf_recovery.img (on some models, it might be demo.bin).Copy this recovery file directly to the root directory of your formatted SD card. Do not hide it inside a folder. Eject the card safely.Step 3: Flash the Recovery FirmwareThis is the moment of truth. Follow these steps precisely:Cut the Power: Unplug the micro-USB or USB-C cable from the back of your camera so it is completely dead.Insert the SD Card: Gently roll the black camera lens upwards with your thumb to reveal the hidden MicroSD card slot. Push the card in until it clicks.Power it Up: Plug the camera back into the wall.Watch the LED: The light will start solid yellow/orange. After a few seconds, it should begin blinking. This blinking means the bootloader has found the .img file and is actively rewriting the firmware.Hands Off: Wait 5 to 10 minutes. Do not unplug the camera. Do not press the reset button. Just let it work.If the flash is successful, the camera will automatically reboot itself. The camera head will rotate, the LED will start blinking blue, and you’ll hear the familiar voice prompt: "QR code ready to scan."Step 4: Clean UpUnplug the camera, pop the SD card out, and format the SD card on your computer again. If you leave the tf_recovery.img file on the card and put it back in the camera, it will trigger the flashing process all over again the next time the camera reboots.Pop the clean SD card back in, open your Mi Home app, and set your camera up like it just came out of the box!</itunes:summary></item><item><title>Application Migration to Kubernetes: A Step-by-Step Guide</title><link>https://ny55.blogspot.com/2024/06/application-migration-to-kubernetes.html</link><author>noreply@blogger.com (System Engineer)</author><pubDate>Mon, 24 Jun 2024 10:30:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-90357180440824696.post-3696443270351843646</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img alt="" border="0" class="placeholder" id="7894e3c605516" src="https://www.blogger.com/img/transparent.gif" style="background-color: #d8d8d8; background-image: url('https://fonts.gstatic.com/s/i/materialiconsextended/insert_photo/v6/grey600-24dp/1x/baseline_insert_photo_grey600_24dp.png'); background-position: 50% 50%; background-repeat: no-repeat; opacity: 0.6;" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjApDHVT_fWJdkb0WzQNo2KAxaUh8o67-iceCyyPEAfErdXhUuBdBSh9OSxltaQsMopNJU0ghwHzEq4qgrbZmxQiJpFmdyAfE7SXE1WRl-0981qkJ4bbl1wH_0WJhC6pS0AEqjXpA2dhlQPqCHqXLhTwJGIJL0xsW7eqbIrB3scoHCAU8L9A391bn93Jwo/s1218/2024-06-24_10h26_45.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="519" data-original-width="1218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjApDHVT_fWJdkb0WzQNo2KAxaUh8o67-iceCyyPEAfErdXhUuBdBSh9OSxltaQsMopNJU0ghwHzEq4qgrbZmxQiJpFmdyAfE7SXE1WRl-0981qkJ4bbl1wH_0WJhC6pS0AEqjXpA2dhlQPqCHqXLhTwJGIJL0xsW7eqbIrB3scoHCAU8L9A391bn93Jwo/s16000/2024-06-24_10h26_45.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;Migrating applications from virtual machines to Kubernetes can be challenging, but with the right approach, it can transform your deployment strategy. This comprehensive guide will walk you through each step of the migration process, sharing best practices to ensure a smooth transition.&lt;/p&gt;&lt;h2&gt;Table of Contents&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="#understanding-your-application" rel="noreferrer"&gt;Understanding Your Application&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Is it stateless or stateful?&lt;/li&gt;&lt;li&gt;Dependencies&lt;/li&gt;&lt;li&gt;Components to migrate&lt;/li&gt;&lt;li&gt;Session stickiness&lt;/li&gt;&lt;li&gt;Configuration methods&lt;/li&gt;&lt;li&gt;Launch processes&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#containerizing-your-application" rel="noreferrer"&gt;Containerizing Your Application&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Building the image&lt;/li&gt;&lt;li&gt;Choosing a base image&lt;/li&gt;&lt;li&gt;Creating the final image&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#preparing-environments-and-migration" rel="noreferrer"&gt;Preparing Environments and Migration&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Setting up Kubernetes environments&lt;/li&gt;&lt;li&gt;Migration strategies&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#creating-kubernetes-manifests" rel="noreferrer"&gt;Creating Kubernetes Manifests&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Deployment vs StatefulSet&lt;/li&gt;&lt;li&gt;ConfigMap and Secrets&lt;/li&gt;&lt;li&gt;Services, Ingress, and Autoscaling&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#executing-the-migration" rel="noreferrer"&gt;Executing the Migration&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Sizing and load testing&lt;/li&gt;&lt;li&gt;Migration best practices&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="#conclusion" rel="noreferrer"&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Understanding Your Application&lt;/h2&gt;&lt;h3&gt;Is it Stateless or Stateful?&lt;/h3&gt;&lt;p&gt;Determine if your application is stateless or stateful. Stateless applications are easier to migrate since they don’t maintain user session data. Stateful applications, however, require more planning due to their dependency on persistent data storage.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Stateless Migration:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Simplified process&lt;/li&gt;&lt;li&gt;Easier to maintain&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Stateful Migration:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Requires identifying and managing stateful components&lt;/li&gt;&lt;li&gt;May involve significant code changes or infrastructure adjustments&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If your application is stateful, you have two choices:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Rework the code:&lt;/strong&gt; Ideal but time-consuming.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Maintain current state:&lt;/strong&gt; Quicker but requires additional infrastructure management.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Dependencies&lt;/h3&gt;&lt;p&gt;Understand your application's architecture and dependencies. Ensure all network connections between your app and its dependencies are configured correctly in the Kubernetes environment.&lt;/p&gt;&lt;h3&gt;Components to Migrate&lt;/h3&gt;&lt;p&gt;Identify all components that need migration. This includes databases and other services. Determine if the migration will be within the same location or to a new one.&lt;/p&gt;&lt;h3&gt;Session Stickiness&lt;/h3&gt;&lt;p&gt;Evaluate if your application uses session stickiness, which ties a user to a specific instance of your app. Implementing this in Kubernetes involves managing sticky sessions to ensure a smooth user experience.&lt;/p&gt;&lt;h3&gt;Configuration Methods&lt;/h3&gt;&lt;p&gt;Know how your application is configured. Using environment variables is preferred in Kubernetes for easier management.&lt;/p&gt;&lt;h3&gt;Launch Processes&lt;/h3&gt;&lt;p&gt;Document all commands related to your service, including:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Launch commands&lt;/li&gt;&lt;li&gt;Build commands&lt;/li&gt;&lt;li&gt;Database migration commands&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Containerizing Your Application&lt;/h2&gt;&lt;h3&gt;Building the Image&lt;/h3&gt;&lt;p&gt;Optimizing the image size is crucial. Split your Dockerfile into multiple stages to reduce the final image size.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Example Dockerfile:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;&lt;div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium"&gt;&lt;div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"&gt;dockerfile&lt;div class="flex items-center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="flex items-center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="!whitespace-pre hljs language-dockerfile"&gt;FROM node:17.6.0-slim AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build

FROM node:17.6.0-alpine3.15
WORKDIR /app
COPY --from=builder /app/build ./build
USER node
CMD ["npm", "start"]
&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h3&gt;Choosing a Base Image&lt;/h3&gt;&lt;p&gt;Choose the smallest base image that supports your application's language and dependencies, like &lt;code&gt;alpine&lt;/code&gt; or &lt;code&gt;distroless&lt;/code&gt;.&lt;/p&gt;&lt;h2&gt;Preparing Environments and Migration&lt;/h2&gt;&lt;h3&gt;Setting Up Kubernetes Environments&lt;/h3&gt;&lt;p&gt;Create a Kubernetes cluster (EKS, GKE, etc.) and deploy any necessary dependencies like databases or persistent data management tools.&lt;/p&gt;&lt;h3&gt;Migration Strategies&lt;/h3&gt;&lt;p&gt;Depending on your setup, choose between:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Full Migration:&lt;/strong&gt; Migrates both the application and database, involving downtime.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Partial Migration:&lt;/strong&gt; Only the application is migrated, minimizing downtime.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Full Migration Steps:&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Deploy your app in the Kubernetes cluster.&lt;/li&gt;&lt;li&gt;Create a Maintenance page.&lt;/li&gt;&lt;li&gt;Redirect traffic to the Maintenance page.&lt;/li&gt;&lt;li&gt;Create a database dump.&lt;/li&gt;&lt;li&gt;Retrieve stateful volumes.&lt;/li&gt;&lt;li&gt;Restore data in the new database.&lt;/li&gt;&lt;li&gt;Restore stateful volumes in the new app.&lt;/li&gt;&lt;li&gt;Redirect traffic to the new application.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Partial Migration Steps:&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Deploy the new app in the cluster.&lt;/li&gt;&lt;li&gt;Change DNS records to redirect traffic to the new app.&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Creating Kubernetes Manifests&lt;/h2&gt;&lt;h3&gt;Deployment vs StatefulSet&lt;/h3&gt;&lt;p&gt;Use &lt;code&gt;Deployment&lt;/code&gt; for stateless services and &lt;code&gt;StatefulSet&lt;/code&gt; for stateful applications. Ensure proper use of probes, resource limits, and configuration management.&lt;/p&gt;&lt;h3&gt;ConfigMap and Secrets&lt;/h3&gt;&lt;p&gt;Store application configurations and secrets securely using ConfigMaps and Secrets. Mount these as volumes if needed.&lt;/p&gt;&lt;h3&gt;Services, Ingress, and Autoscaling&lt;/h3&gt;&lt;p&gt;Configure Services to manage internal traffic, Ingress for external traffic, and HorizontalPodAutoscaler (HPA) for scaling based on load.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Example Kubernetes Manifest:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;&lt;div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium"&gt;&lt;div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"&gt;yaml&lt;div class="flex items-center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="!whitespace-pre hljs language-yaml"&gt;&lt;span class="hljs-attr"&gt;apiVersion:&lt;/span&gt; &lt;span class="hljs-string"&gt;apps/v1&lt;/span&gt;
&lt;span class="hljs-attr"&gt;kind:&lt;/span&gt; &lt;span class="hljs-string"&gt;Deployment&lt;/span&gt;
&lt;span class="hljs-attr"&gt;metadata:&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;name:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app&lt;/span&gt;
&lt;span class="hljs-attr"&gt;spec:&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;replicas:&lt;/span&gt; &lt;span class="hljs-number"&gt;3&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;selector:&lt;/span&gt;
    &lt;span class="hljs-attr"&gt;matchLabels:&lt;/span&gt;
      &lt;span class="hljs-attr"&gt;app:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;template:&lt;/span&gt;
    &lt;span class="hljs-attr"&gt;metadata:&lt;/span&gt;
      &lt;span class="hljs-attr"&gt;labels:&lt;/span&gt;
        &lt;span class="hljs-attr"&gt;app:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app&lt;/span&gt;
    &lt;span class="hljs-attr"&gt;spec:&lt;/span&gt;
      &lt;span class="hljs-attr"&gt;containers:&lt;/span&gt;
      &lt;span class="hljs-bullet"&gt;-&lt;/span&gt; &lt;span class="hljs-attr"&gt;name:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app-container&lt;/span&gt;
        &lt;span class="hljs-attr"&gt;image:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app-image:latest&lt;/span&gt;
        &lt;span class="hljs-attr"&gt;ports:&lt;/span&gt;
        &lt;span class="hljs-bullet"&gt;-&lt;/span&gt; &lt;span class="hljs-attr"&gt;containerPort:&lt;/span&gt; &lt;span class="hljs-number"&gt;80&lt;/span&gt;
        &lt;span class="hljs-attr"&gt;envFrom:&lt;/span&gt;
        &lt;span class="hljs-bullet"&gt;-&lt;/span&gt; &lt;span class="hljs-attr"&gt;configMapRef:&lt;/span&gt;
            &lt;span class="hljs-attr"&gt;name:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app-config&lt;/span&gt;
        &lt;span class="hljs-bullet"&gt;-&lt;/span&gt; &lt;span class="hljs-attr"&gt;secretRef:&lt;/span&gt;
            &lt;span class="hljs-attr"&gt;name:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app-secrets&lt;/span&gt;
        &lt;span class="hljs-attr"&gt;livenessProbe:&lt;/span&gt;
          &lt;span class="hljs-attr"&gt;httpGet:&lt;/span&gt;
            &lt;span class="hljs-attr"&gt;path:&lt;/span&gt; &lt;span class="hljs-string"&gt;/healthz&lt;/span&gt;
            &lt;span class="hljs-attr"&gt;port:&lt;/span&gt; &lt;span class="hljs-number"&gt;80&lt;/span&gt;
        &lt;span class="hljs-attr"&gt;readinessProbe:&lt;/span&gt;
          &lt;span class="hljs-attr"&gt;httpGet:&lt;/span&gt;
            &lt;span class="hljs-attr"&gt;path:&lt;/span&gt; &lt;span class="hljs-string"&gt;/ready&lt;/span&gt;
            &lt;span class="hljs-attr"&gt;port:&lt;/span&gt; &lt;span class="hljs-number"&gt;80&lt;/span&gt;
&lt;span class="hljs-meta"&gt;---&lt;/span&gt;
&lt;span class="hljs-attr"&gt;apiVersion:&lt;/span&gt; &lt;span class="hljs-string"&gt;v1&lt;/span&gt;
&lt;span class="hljs-attr"&gt;kind:&lt;/span&gt; &lt;span class="hljs-string"&gt;Service&lt;/span&gt;
&lt;span class="hljs-attr"&gt;metadata:&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;name:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app-service&lt;/span&gt;
&lt;span class="hljs-attr"&gt;spec:&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;selector:&lt;/span&gt;
    &lt;span class="hljs-attr"&gt;app:&lt;/span&gt; &lt;span class="hljs-string"&gt;my-app&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;ports:&lt;/span&gt;
    &lt;span class="hljs-bullet"&gt;-&lt;/span&gt; &lt;span class="hljs-attr"&gt;protocol:&lt;/span&gt; &lt;span class="hljs-string"&gt;TCP&lt;/span&gt;
      &lt;span class="hljs-attr"&gt;port:&lt;/span&gt; &lt;span class="hljs-number"&gt;80&lt;/span&gt;
      &lt;span class="hljs-attr"&gt;targetPort:&lt;/span&gt; &lt;span class="hljs-number"&gt;80&lt;/span&gt;
  &lt;span class="hljs-attr"&gt;type:&lt;/span&gt; &lt;span class="hljs-string"&gt;LoadBalancer&lt;/span&gt;
&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h2&gt;Executing the Migration&lt;/h2&gt;&lt;h3&gt;Sizing and Load Testing&lt;/h3&gt;&lt;p&gt;Conduct load testing using tools like Gatling or K6 to determine the optimal sizing for your Kubernetes deployment.&lt;/p&gt;&lt;h3&gt;Migration Best Practices&lt;/h3&gt;&lt;p&gt;Test the migration in a pre-production environment. Monitor application logs, infrastructure metrics, and traffic redirection during the migration.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Load Testing Steps:&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Set up a load testing tool.&lt;/li&gt;&lt;li&gt;Simulate production traffic.&lt;/li&gt;&lt;li&gt;Adjust resource allocations based on test results.&lt;/li&gt;&lt;/ol&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Migrating applications to Kubernetes requires careful planning and execution. By following these steps, you can leverage Kubernetes' capabilities for scalable, efficient, and resilient application deployment. Happy migrating!&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;This comprehensive guide is designed to provide a detailed roadmap for migrating your applications to Kubernetes, ensuring a successful transition and optimizing your deployment strategy.&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjApDHVT_fWJdkb0WzQNo2KAxaUh8o67-iceCyyPEAfErdXhUuBdBSh9OSxltaQsMopNJU0ghwHzEq4qgrbZmxQiJpFmdyAfE7SXE1WRl-0981qkJ4bbl1wH_0WJhC6pS0AEqjXpA2dhlQPqCHqXLhTwJGIJL0xsW7eqbIrB3scoHCAU8L9A391bn93Jwo/s72-c/2024-06-24_10h26_45.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Critical Issue in Loki v3.0.0: Backend Crashes Due to Index Gateway Mode Setting</title><link>https://ny55.blogspot.com/2024/06/critical-issue-in-loki-v300-backend.html</link><category>GitHub Issues</category><category>Grafana</category><category>Helm</category><category>kuber</category><category>Kubernetes</category><category>SIGSEGV</category><category>Temporary Workaround</category><author>noreply@blogger.com (System Engineer)</author><pubDate>Tue, 18 Jun 2024 18:07:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-90357180440824696.post-1527133660499161984</guid><description>&lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;Overview&lt;/font&gt;&lt;/h2&gt;  &lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;A significant bug has been identified in Loki v3.0.0, which causes the backend to crash with a segmentation violation error (SIGSEGV) when the &lt;code&gt;index_gateway.mode&lt;/code&gt; is set to &lt;code&gt;ring&lt;/code&gt;. This issue was first reported by user @awoimbee on March 20, 2024, and has been discussed extensively with multiple users encountering similar problems.&lt;/font&gt;&lt;/p&gt;&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgpKWJ7Sb4cqibqANb_GQrYb4SeiDL6h5K4Anat7aABYSW0m_SY1W3UsQJGFwfcxSDxJgg0NM54s-MgFmq8f2CE3_AWnjESU5ToUBZuJb-4HzNvclsurvh0StOHfIGGiR_F3fkiNKRYTG3UPiU3b0j4SNolPziyrACiVB-5ykJr8S1sdLmlvDioAQhR7f8" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="788" data-original-width="1680" height="0" src="https://blogger.googleusercontent.com/img/a/AVvXsEgpKWJ7Sb4cqibqANb_GQrYb4SeiDL6h5K4Anat7aABYSW0m_SY1W3UsQJGFwfcxSDxJgg0NM54s-MgFmq8f2CE3_AWnjESU5ToUBZuJb-4HzNvclsurvh0StOHfIGGiR_F3fkiNKRYTG3UPiU3b0j4SNolPziyrACiVB-5ykJr8S1sdLmlvDioAQhR7f8" width="0" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjd4kDiHNyslTkGuCLECTcnwAAng1kkpeMbuOMaVRAh91ym9QC7889GHtUszce-lwLGSm_wPpswEFI-Huhd4HbiYIt5CPTevpYj29t9r9w_0YPA9bwwxQk4h6iiTNo5qy7rKaokWed1t5zMQLI5Iq6bxlKVaEyYiyIorfOFI-YxBK0biwAcrlI22tcQmnM" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="788" data-original-width="1680" height="0" src="https://blogger.googleusercontent.com/img/a/AVvXsEjd4kDiHNyslTkGuCLECTcnwAAng1kkpeMbuOMaVRAh91ym9QC7889GHtUszce-lwLGSm_wPpswEFI-Huhd4HbiYIt5CPTevpYj29t9r9w_0YPA9bwwxQk4h6iiTNo5qy7rKaokWed1t5zMQLI5Iq6bxlKVaEyYiyIorfOFI-YxBK0biwAcrlI22tcQmnM" width="0" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhgOrQqwtXEycuT3Jjw0MMYnAAc5Rh74nBWP8gWpIXQYy7-ot0gJTNYiOWES9jCLQCpx5uBwJejhIn66pVyHNDNLSMJkFV8FUVg-6UT-l34lPPxn70O7YswSl0dyLXH7UihzVBDtHrY3Bsw_0oUskoQ-7LEALFKhO-_b9oLrMSNJ1fURs4LMmJW8-oXAqU" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="788" data-original-width="1680" src="https://blogger.googleusercontent.com/img/a/AVvXsEhgOrQqwtXEycuT3Jjw0MMYnAAc5Rh74nBWP8gWpIXQYy7-ot0gJTNYiOWES9jCLQCpx5uBwJejhIn66pVyHNDNLSMJkFV8FUVg-6UT-l34lPPxn70O7YswSl0dyLXH7UihzVBDtHrY3Bsw_0oUskoQ-7LEALFKhO-_b9oLrMSNJ1fURs4LMmJW8-oXAqU=s16000" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/div&gt;&lt;font style="font-size: 12pt;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;p&gt;&lt;/p&gt;  &lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;Description of the Bug&lt;/font&gt;&lt;/h2&gt;  &lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;When running the Loki backend with the configuration setting &lt;code&gt;index_gateway.mode&lt;/code&gt; set to &lt;code&gt;ring&lt;/code&gt;, the system crashes with a segmentation fault due to a nil pointer dereference. The error trace typically looks like this:&lt;/font&gt;&lt;/p&gt;  &lt;pre style="margin-bottom: 33px; margin-top: 33px;"&gt;&lt;div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium"&gt;&lt;div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"&gt;&lt;span&gt;&lt;font style="font-size: 12pt;"&gt;go&lt;/font&gt;&lt;/span&gt;&lt;div class="flex items-center"&gt;&lt;span data-state="closed"&gt;&lt;button class="flex gap-1 items-center"&gt;&lt;svg class="icon-sm" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path clip-rule="evenodd" d="M 7 5 a 3 3 0 0 1 3 -3 h 9 a 3 3 0 0 1 3 3 v 9 a 3 3 0 0 1 -3 3 h -2 v 2 a 3 3 0 0 1 -3 3 H 5 a 3 3 0 0 1 -3 -3 v -9 a 3 3 0 0 1 3 -3 h 2 Z m 2 2 h 5 a 3 3 0 0 1 3 3 v 5 h 2 a 1 1 0 0 0 1 -1 V 5 a 1 1 0 0 0 -1 -1 h -9 a 1 1 0 0 0 -1 1 Z M 5 9 a 1 1 0 0 0 -1 1 v 9 a 1 1 0 0 0 1 1 h 9 a 1 1 0 0 0 1 -1 v -9 a 1 1 0 0 0 -1 -1 Z" fill-rule="evenodd" fill="currentColor"&gt;&lt;/path&gt;&lt;/svg&gt;Copy code&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="!whitespace-pre hljs language-go"&gt;&lt;span class="hljs-built_in"&gt;&lt;font style="font-size: 12pt;"&gt;panic&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 12pt;"&gt;: runtime &lt;span class="hljs-type"&gt;error&lt;/span&gt;: invalid memory address or &lt;span class="hljs-literal"&gt;nil&lt;/span&gt; pointer dereference
[signal SIGSEGV: segmentation violation code=&lt;span class="hljs-number"&gt;0x1&lt;/span&gt; addr=&lt;span class="hljs-number"&gt;0x288&lt;/span&gt; pc=&lt;span class="hljs-number"&gt;0x223f470&lt;/span&gt;]

goroutine &lt;span class="hljs-number"&gt;1&lt;/span&gt; [running]:
github.com/grafana/loki/pkg/loki.(*Loki).updateConfigForShipperStore(&lt;span class="hljs-number"&gt;0xc000638be0&lt;/span&gt;?)
	/src/loki/pkg/loki/modules.&lt;span class="hljs-keyword"&gt;go&lt;/span&gt;:&lt;span class="hljs-number"&gt;709&lt;/span&gt; +&lt;span class="hljs-number"&gt;0xb0&lt;/span&gt;
...
&lt;/font&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;This issue affects the stability of the Loki backend, causing it to enter a CrashLoopBack state.&lt;/font&gt;&lt;/p&gt;

&lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;Reproduction&lt;/font&gt;&lt;/h2&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;The problem has been reproduced consistently under the following conditions:&lt;/font&gt;&lt;/p&gt;

&lt;ul style="margin-bottom: 40px; margin-top: 40px;"&gt;
  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;Infrastructure: Kubernetes&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;Deployment tool: Helm&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;Loki version: 3.0.0&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;Configuration: &lt;code&gt;index_gateway.mode&lt;/code&gt; set to &lt;/font&gt;&lt;code&gt;&lt;font style="font-size: 12pt;"&gt;ring&lt;/font&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;Workaround&lt;/font&gt;&lt;/h2&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;As a temporary solution, users have been advised to change the &lt;code&gt;index_gateway.mode&lt;/code&gt; from &lt;code&gt;ring&lt;/code&gt; to &lt;code&gt;simple&lt;/code&gt; in the configuration file. This has been confirmed to prevent the crash:&lt;/font&gt;&lt;/p&gt;

&lt;pre style="margin-bottom: 33px; margin-top: 33px;"&gt;&lt;div class="dark bg-gray-950 rounded-md border-[0.5px] border-token-border-medium"&gt;&lt;div class="flex items-center relative text-token-text-secondary bg-token-main-surface-secondary px-4 py-2 text-xs font-sans justify-between rounded-t-md"&gt;&lt;span&gt;&lt;font style="font-size: 12pt;"&gt;yaml&lt;/font&gt;&lt;/span&gt;&lt;div class="flex items-center"&gt;&lt;span data-state="closed"&gt;&lt;button class="flex gap-1 items-center"&gt;&lt;svg class="icon-sm" fill="none" height="24" viewbox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"&gt;&lt;path clip-rule="evenodd" d="M 7 5 a 3 3 0 0 1 3 -3 h 9 a 3 3 0 0 1 3 3 v 9 a 3 3 0 0 1 -3 3 h -2 v 2 a 3 3 0 0 1 -3 3 H 5 a 3 3 0 0 1 -3 -3 v -9 a 3 3 0 0 1 3 -3 h 2 Z m 2 2 h 5 a 3 3 0 0 1 3 3 v 5 h 2 a 1 1 0 0 0 1 -1 V 5 a 1 1 0 0 0 -1 -1 h -9 a 1 1 0 0 0 -1 1 Z M 5 9 a 1 1 0 0 0 -1 1 v 9 a 1 1 0 0 0 1 1 h 9 a 1 1 0 0 0 1 -1 v -9 a 1 1 0 0 0 -1 -1 Z" fill-rule="evenodd" fill="currentColor"&gt;&lt;/path&gt;&lt;/svg&gt;Copy code&lt;/button&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="!whitespace-pre hljs language-yaml"&gt;&lt;span class="hljs-attr"&gt;&lt;font style="font-size: 12pt;"&gt;index_gateway:&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 12pt;"&gt;
  &lt;span class="hljs-attr"&gt;mode:&lt;/span&gt; &lt;span class="hljs-string"&gt;simple&lt;/span&gt;
&lt;/font&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;

&lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;Resolution and Further Developments&lt;/font&gt;&lt;/h2&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;The Grafana Loki team has acknowledged this issue and a fix has been implemented to address the nil pointer dereference during the bloomstore initialization. The fix can be tracked and reviewed in &lt;a href="https://github.com/grafana/loki/commit/167b468" rel="noreferrer" target="_new"&gt;this commit&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;

&lt;h3 style="margin: 46px 0px;"&gt;&lt;font style="font-size: 14.1pt;"&gt;Key Updates:&lt;/font&gt;&lt;/h3&gt;

&lt;ul style="margin-bottom: 40px; margin-top: 40px;"&gt;
  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;A fix for the nil pointer dereference was merged on May 3, 2024.&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;The problem persists for some users even after updating to the latest patches.&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;Additional related issues are being tracked and addressed, such as those mentioned in &lt;a href="https://github.com/grafana/loki/issues/13208" rel="noreferrer" target="_new"&gt;issue #13208&lt;/a&gt;.&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;User Reports and Feedback&lt;/font&gt;&lt;/h2&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;Multiple users have reported encountering this issue and have shared their experiences and configurations in the issue thread. For instance:&lt;/font&gt;&lt;/p&gt;

&lt;ul style="margin-bottom: 40px; margin-top: 40px;"&gt;
  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;@Nissou31 reported the issue while deploying a scalable Loki 3.0.0 setup.&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;@alexandergoncharovaspecta faced a similar problem with a three-pod setup where one pod was crashing.&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font style="font-size: 12pt;"&gt;@sslny57 and @abh shared that changing the mode from &lt;code&gt;ring&lt;/code&gt; to &lt;code&gt;simple&lt;/code&gt; resolved their crash issues, but they encountered other configuration problems.&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 style="margin: 49px 0px;"&gt;&lt;font style="font-size: 18pt;"&gt;Conclusion&lt;/font&gt;&lt;/h2&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;The Loki v3.0.0 backend crash issue due to &lt;code&gt;index_gateway.mode: ring&lt;/code&gt; is a critical bug affecting users running Loki in Kubernetes environments. While a temporary workaround is available, a permanent fix has been implemented and is available in the latest updates. Users are encouraged to update their Loki deployments and monitor the &lt;a href="https://github.com/grafana/loki/issues/12270" rel="noreferrer" target="_new"&gt;GitHub issue tracker&lt;/a&gt; for further updates and resolutions.&lt;/font&gt;&lt;/p&gt;

&lt;p style="margin-bottom: 40px; margin-top: 40px;"&gt;&lt;font style="font-size: 12pt;"&gt;For more details and ongoing discussions, visit the &lt;a href="https://github.com/grafana/loki/issues/12270" rel="noreferrer" target="_new"&gt;GitHub issue page&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgpKWJ7Sb4cqibqANb_GQrYb4SeiDL6h5K4Anat7aABYSW0m_SY1W3UsQJGFwfcxSDxJgg0NM54s-MgFmq8f2CE3_AWnjESU5ToUBZuJb-4HzNvclsurvh0StOHfIGGiR_F3fkiNKRYTG3UPiU3b0j4SNolPziyrACiVB-5ykJr8S1sdLmlvDioAQhR7f8=s72-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>