<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>www.rusinov.ie (Posts about kubernetes)</title><link>https://www.rusinov.ie/</link><description></description><atom:link href="/en/tags/kubernetes.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:vladimir.rusinov@gmail.com"&gt;Vladimir Rusinov&lt;/a&gt; </copyright><lastBuildDate>Fri, 06 Feb 2026 07:19:27 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Running OpenVPN in Kubernetes</title><link>/en/posts/2022/running-openvpn-in-kubernetes/</link><dc:creator>Vladimir Rusinov</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img src="/posts/2022/flag_of_ukraine.svg" width="50%" align="right" style="margin: 0.3em;"&gt;&lt;/p&gt;
&lt;p&gt;I condemn Russian invasion to Ukraine. I hope the war ends soon. I wish Ukrainians can take their country back and start rebuilding. I wish there was no more suffering.&lt;/p&gt;
&lt;p&gt;There is another, less bloody but still important war happening right now. The informational war between Putin and regular residents of Russia. It's been going on for a really long time but escalated dramatically in the last few weeks. &lt;a href="https://www.bbc.com/news/world-europe-60640204"&gt;Thousands of people were arrested&lt;/a&gt; for participating in anti-war protests. Many, if not all independent news sources &lt;a href="https://www.nytimes.com/2022/03/07/technology/russia-ukraine-internet-isolation.html"&gt;were blocked&lt;/a&gt; so that Putin can continue spreading lies through the government-controlled channels without facing any criticism. And the sad part is that Putin appears to be winning this war. Many Russians are now brainwashed. I've been watching for years how many of my acquaintances become angrier and more and more radicalized. Thanfully my close friends (those few who are still in Russia) were spared and still have their critical thinking intact. But for how long?&lt;/p&gt;
&lt;p&gt;So I've decided to help them and set up a VPN service which will help them to get access to free information.&lt;/p&gt;
&lt;p&gt;&lt;a href="/en/posts/2022/running-openvpn-in-kubernetes/"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>kubernetes</category><category>openvpn</category><category>russia</category><category>ukraine</category><guid>/en/posts/2022/running-openvpn-in-kubernetes/</guid><pubDate>Sun, 13 Mar 2022 13:43:00 GMT</pubDate></item><item><title>Odyssey X86 Single-Board Computer</title><link>/en/posts/2021/odyssey-x86-single-board-computer/</link><dc:creator>Vladimir Rusinov</dc:creator><description>&lt;div&gt;&lt;p&gt;Shortly after setting-up &lt;a href="/en/posts/2020/setting-up-single-node-kubernetes-cluster/"&gt;single-node Kubernetes cluster&lt;/a&gt;, &lt;a href="/en/posts/2020/setting-up-single-node-ceph-cluster-for-kubernetes/"&gt;single-node Ceph cluster&lt;/a&gt; I wanted an actual cluster. I've also noticed that Ceph doesn't actually work all that well: Besides obvious lack of failure tolerance, it didn't seemed to like working on top of just two storage devices of a very different sizes (internal ~300G HDD and 1T USB-HDD). So I've decided to get some more hardware.&lt;/p&gt;
&lt;p&gt;I live in a small apartment and I don't really have a lot of space. All I have is a small shelf in storage area. Normal desktops and especially rack servers won't fit. They are also noisy, eat a lot of power and produce a lot of heat. Another thing is that I already had two old SATA HDDs lying idle, which I wanted to use, so the new hardware needed SATA support.&lt;/p&gt;
&lt;p&gt;I found the solution in &lt;a href="https://www.seeedstudio.com/ODYSSEY-X86J4105800-p-4445.html"&gt;Odyssey X86&lt;/a&gt; board.&lt;/p&gt;
&lt;p&gt;&lt;a href="/posts/2021/odyssey.jpg"&gt;&lt;img src="/posts/2021/odyssey_small.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/en/posts/2021/odyssey-x86-single-board-computer/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>ceph</category><category>hardware</category><category>kubernetes</category><category>odyssey</category><category>sbc</category><guid>/en/posts/2021/odyssey-x86-single-board-computer/</guid><pubDate>Wed, 11 Aug 2021 13:49:00 GMT</pubDate></item><item><title>Docker image for Tsunami security scanner</title><link>/en/posts/2021/docker-image-for-tsunami-security-scanner/</link><dc:creator>Vladimir Rusinov</dc:creator><description>&lt;div&gt;&lt;p&gt;I've built unofficial image for the &lt;a href="https://github.com/google/tsunami-security-scanner"&gt;Tsunami security scanner&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pull it from &lt;a href="https://hub.docker.com/repository/docker/vrusinov/tsunami-security-scanner"&gt;Docker Hub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/en/posts/2021/docker-image-for-tsunami-security-scanner/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>docker</category><category>kubernetes</category><category>security</category><category>tsunami</category><guid>/en/posts/2021/docker-image-for-tsunami-security-scanner/</guid><pubDate>Fri, 11 Jun 2021 19:44:57 GMT</pubDate></item><item><title>Setting up single-node Ceph cluster for Kubernetes</title><link>/en/posts/2020/setting-up-single-node-ceph-cluster-for-kubernetes/</link><dc:creator>Vladimir Rusinov</dc:creator><description>&lt;div&gt;&lt;p&gt;After setting up my shiny &lt;a href="/en/posts/2020/setting-up-single-node-kubernetes-cluster/"&gt;single-node Kubernetes "cluster"&lt;/a&gt; I wanted to do something useful with it. Many of the useful things require your useful data not to disappear, so I needed to figure out how to do that.&lt;/p&gt;
&lt;p&gt;In Kubernetes &lt;a href="https://kubernetes.io/docs/concepts/storage/"&gt;storage is organized&lt;/a&gt; via Volumes. These Volumes can be attached to Pods via Volume Claims. There are two types of Volumes: regular ones and Persistent Volumes. Regular Volumes are ephemeral and destroyed together with Pods (e.g. when it crashes or rescheduled). These are of course less interesting than Persistent Volumes which as the name suggest survive Pod restarts.&lt;/p&gt;
&lt;p&gt;There are many ways to implement Persistent Volumes, the simplest is probably to use &lt;a href="https://kubernetes.io/blog/2019/04/04/kubernetes-1.14-local-persistent-volumes-ga/"&gt;Local Persistent Volumes&lt;/a&gt;. They simply bind local directory into pod. However they force pods to be always running on the same node.&lt;/p&gt;
&lt;p&gt;This was not interesting enough for me so I went with something more complicated.&lt;/p&gt;
&lt;p&gt;&lt;a href="/en/posts/2020/setting-up-single-node-ceph-cluster-for-kubernetes/"&gt;Read more…&lt;/a&gt; (10 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>ceph</category><category>kubernetes</category><category>rook</category><guid>/en/posts/2020/setting-up-single-node-ceph-cluster-for-kubernetes/</guid><pubDate>Sat, 03 Apr 2021 17:16:36 GMT</pubDate></item><item><title>Setting up single-node Kubernetes cluster</title><link>/en/posts/2020/setting-up-single-node-kubernetes-cluster/</link><dc:creator>Vladimir Rusinov</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;img src="/posts/2020/kubernetes.png" alt="Kubernetes log" width="10%" style="float: right;"&gt; As almost any engineer I have a small "server" at home. This server is nothing
more than an old laptop running CentOS and a few docker containers in it. At
some point I got tired of restarting and updating them manually. And of course
instead of writing a few systemd unit files I've decided to over-engineer it and
run Kubernetes on it.&lt;/p&gt;
&lt;p&gt;This was a nice way to keep myself busy for a few evenings and get some relevant
experience.&lt;/p&gt;
&lt;h2 id="choices"&gt;Choices&lt;/h2&gt;
&lt;p&gt;After small amount of reading it was quite obvious there is no single way to set
up Kubernetes. There are many ways to set Kubernetes up and it's easy to get
lost. Thus before doing everything else, let's outline what is it that I wanted:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Working Kubernetes "cluster" that fits on one machine with dual-code CPU and
    4 GiB of RAM.&lt;/li&gt;
&lt;li&gt;It must be possible to run it on more than one machine in the future.&lt;/li&gt;
&lt;li&gt;It must be close to what I'd run in production - I want to get relevant
    experience. So no Minikube or similar things.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/en/posts/2020/setting-up-single-node-kubernetes-cluster/"&gt;Read more…&lt;/a&gt; (10 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>calico</category><category>etcd</category><category>kubernetes</category><guid>/en/posts/2020/setting-up-single-node-kubernetes-cluster/</guid><pubDate>Wed, 29 Jul 2020 23:00:00 GMT</pubDate></item></channel></rss>