kvaps | personal blog https://kvaps.github.io/ Recent content on kvaps | personal blog Hugo -- gohugo.io en-us Fri, 05 Apr 2024 07:40:00 +0000 DIY: Create Your Own Cloud with Kubernetes (Part 3) https://kvaps.github.io/2024/04/diy-create-your-own-cloud-with-kubernetes-part-3/ Fri, 05 Apr 2024 07:40:00 +0000 https://kvaps.github.io/2024/04/diy-create-your-own-cloud-with-kubernetes-part-3/ <p><img src="https://miro.medium.com/v2/resize:fit:4800/format:webp/0*0Iy0cbjm5zwVxNGW.jpg" alt=""></p> <p>Approaching the most interesting phase, this article delves into running Kubernetes within Kubernetes. Technologies such as Kamaji and Cluster API are highlighted, along with their integration with KubeVirt.</p> <p>Previous discussions have covered <a href="https://kubernetes.io/blog/2024/04/05/diy-create-your-own-cloud-with-kubernetes-part-1/">preparing Kubernetes on bare metal</a> and <a href="https://kubernetes.io/blog/2024/04/05/diy-create-your-own-cloud-with-kubernetes-part-2/">how to turn Kubernetes into virtual machines management system</a>. This article concludes the series by explaining how, using all of the above, you can build a full-fledged managed Kubernetes and run virtual Kubernetes clusters with just a click.</p> <p>First up, let&rsquo;s dive into the Cluster API.</p> DIY: Create Your Own Cloud with Kubernetes (Part 2) https://kvaps.github.io/2024/04/diy-create-your-own-cloud-with-kubernetes-part-2/ Fri, 05 Apr 2024 07:35:00 +0000 https://kvaps.github.io/2024/04/diy-create-your-own-cloud-with-kubernetes-part-2/ <p><img src="https://miro.medium.com/v2/resize:fit:4800/format:webp/0*sIWfm_FgDavwJgK8.jpg" alt=""></p> <p>Continuing our series of posts on how to build your own cloud using just the Kubernetes ecosystem. In the <a href="https://kubernetes.io/blog/2024/04/05/diy-create-your-own-cloud-with-kubernetes-part-1/">previous article</a>, we explained how we prepare a basic Kubernetes distribution based on Talos Linux and Flux CD. In this article, we&rsquo;ll show you a few various virtualization technologies in Kubernetes and prepare everything need to run virtual machines in Kubernetes, primarily storage and networking.</p> <p>We will talk about technologies such as KubeVirt, LINSTOR, and Kube-OVN.</p> <p>But first, let&rsquo;s explain what virtual machines are needed for, and why can&rsquo;t you just use docker containers for building cloud? The reason is that containers do not provide a sufficient level of isolation. Although the situation improves year by year, we often encounter vulnerabilities that allow escaping the container sandbox and elevating privileges in the system.</p> DIY: Create Your Own Cloud with Kubernetes (Part 1) https://kvaps.github.io/2024/04/diy-create-your-own-cloud-with-kubernetes-part-1/ Fri, 05 Apr 2024 07:30:00 +0000 https://kvaps.github.io/2024/04/diy-create-your-own-cloud-with-kubernetes-part-1/ <p><img src="https://miro.medium.com/v2/resize:fit:4800/format:webp/0*29CNNfqCIVq4Uqfa.jpg" alt=""></p> <p>At Ænix, we have a deep affection for Kubernetes and dream that all modern technologies will soon start utilizing its remarkable patterns.</p> <p>Have you ever thought about building your own cloud? I bet you have. But is it possible to do this using only modern technologies and approaches, without leaving the cozy Kubernetes ecosystem? Our experience in developing Cozystack required us to delve deeply into it.</p> <p>You might argue that Kubernetes is not intended for this purpose and why not simply use OpenStack for bare metal servers and run Kubernetes inside it as intended. But by doing so, you would simply shift the responsibility from your hands to the hands of OpenStack administrators. This would add at least one more huge and complex system to your ecosystem.</p> <p>Why complicate things? - after all, Kubernetes already has everything needed to run tenant Kubernetes clusters at this point.</p> Argo CD vs Flux CD https://kvaps.github.io/2024/03/argo-cd-vs-flux-cd/ Tue, 26 Mar 2024 00:00:00 +0000 https://kvaps.github.io/2024/03/argo-cd-vs-flux-cd/ <p><img src="https://miro.medium.com/v2/resize:fit:720/format:webp/0*XBk4bvMiSjdBCSPC.jpeg" alt=""></p> <p>Lately, I’ve been seeing more and more debates about two popular GitOps tools: Argo CD and Flux CD.</p> <p>Actually, I find such debates to be unfounded because I’m deeply convinced that both tools deserve attention and each of them is good for solving its own set of problems.</p> <p>In my professional activities I use both. I want to share with you my opinion and use cases. I hope this article will help you choose the most suitable tool for your needs.</p> Cloud Native Computing Foundation’s FluxCD Project Gains New Corporate Support https://kvaps.github.io/2024/03/cloud-native-computing-foundations-fluxcd-project-gains-new-corporate-support/ Tue, 19 Mar 2024 00:00:00 +0000 https://kvaps.github.io/2024/03/cloud-native-computing-foundations-fluxcd-project-gains-new-corporate-support/ <p><img src="https://www.cncf.io/wp-content/uploads/2024/03/KubeCon-CNC-Europe-2023-7.png" alt=""></p> <p>“Ænix utilizes FluxCD as a key component in our cloud platform, Cozystack. As staunch advocates for this technology, we believe FluxCD represents the new industry standard for platform engineering. We’re committed to providing both informational and technical support to this project.” — Andrei Kvapil, CEO, Ænix</p> Cozystack: Free PaaS platform and framework for building clouds https://kvaps.github.io/2024/03/cozystack-free-paas-platform-and-framework-for-building-clouds/ Tue, 12 Mar 2024 00:00:00 +0000 https://kvaps.github.io/2024/03/cozystack-free-paas-platform-and-framework-for-building-clouds/ <p><img src="https://img.youtube.com/vi/24i9wIsJHGE/maxresdefault.jpg" alt=""></p> <p>With Cozystack, you can transform your bunch of servers into an intelligent system with a simple REST API for spawning Kubernetes clusters, Database-as-a-Service, virtual machines, load balancers, HTTP caching services, and other services with ease.</p> <p>You can use Cozystack to build your own cloud or to provide a cost-effective development environments.</p> Introducing Cozystack: A Free PaaS Platform based on Kubernetes https://kvaps.github.io/2024/02/introducing-cozystack-a-free-paas-platform-based-on-kubernetes/ Wed, 21 Feb 2024 00:00:00 +0000 https://kvaps.github.io/2024/02/introducing-cozystack-a-free-paas-platform-based-on-kubernetes/ <p><img src="https://cozystack.io/img/screenshot.png" alt=""></p> <p><a href="https://github.com/aenix-io/cozystack/releases/tag/v0.1.0">Published</a> the first release of the free PaaS platform <a href="https://github.com/aenix-io/cozystack">Cozystack</a>, based on Kubernetes. The project positioned as a ready-to-use platform for hosting providers and a framework for building private and public clouds. The code is available on GitHub and is <a href="https://github.com/aenix-io/cozystack">distributed</a> under the Apache-2.0 license.</p> Restic: Effective Backup from Stdin https://kvaps.github.io/2023/12/restic-effective-backup-from-stdin/ Mon, 25 Dec 2023 00:00:00 +0000 https://kvaps.github.io/2023/12/restic-effective-backup-from-stdin/ <p><img src="https://miro.medium.com/v2/resize:fit:720/format:webp/0*uJ7As9uTvB-gvQLe.png" alt=""></p> <p>I’ve previously discussed Restic in the article “<a href="https://itnext.io/backup-storage-for-thousands-of-virtual-machines-using-free-tools-b3909004bef2">Backup storage for thousands of virtual machines using free tools</a>,” and it remains my favorite backup tool since then.</p> <p>Today, I will describe a ready-made recipe for setting up effective backup from Stdin, with deduplication and automatic cleaning of the repository from old copies.</p> <p>Despite Restic being great for saving entire data directories, this article emphasizes on-the-fly backup from Stdin, typically for virtual machine backups, databases, and other large-file data that can be sequentially read and immediately sent to the backup system.</p> LVM+QCOW2: creating a perfect CSI driver for shared SAN in Kubernetes https://kvaps.github.io/2023/11/lvm-qcow2-creating-a-perfect-csi-driver-for-shared-san-in-kubernetes/ Tue, 21 Nov 2023 00:00:00 +0000 https://kvaps.github.io/2023/11/lvm-qcow2-creating-a-perfect-csi-driver-for-shared-san-in-kubernetes/ <p><img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/1*19x5GB1vrtTD02ScSUBYSg.png" alt=""></p> <p>Building a fast and universal driver with clustered LVM and the QCOW2 for using any SAN-like storage system in K8s.</p> The Evolution of Network Virtualization Technologies in Linux https://kvaps.github.io/2023/09/the-evolution-of-network-virtualization-technologies-in-linux/ Sat, 23 Sep 2023 00:00:00 +0000 https://kvaps.github.io/2023/09/the-evolution-of-network-virtualization-technologies-in-linux/ <p><img src="https://miro.medium.com/v2/resize:fit:4800/format:webp/0*Q2RZPvSUqJjgjOZx.png" alt=""></p> <p>Hardware virtualization is one of the most important and fundamental technologies in the field of cloud computing. Without it, no “device” inside virtual machines would be able to function, including network cards, disks, keyboards, mice, and so on. In this article, we will trace the development of hardware virtualization technologies in Linux.</p> LINSTOR Is Like Kubernetes, But for Block Devices https://kvaps.github.io/2023/07/linstor-is-like-kubernetes-but-for-block-devices/ Mon, 17 Jul 2023 00:00:00 +0000 https://kvaps.github.io/2023/07/linstor-is-like-kubernetes-but-for-block-devices/ <p><a href="https://youtu.be/jwaqWezhugE"><img src="https://i3.ytimg.com/vi/jwaqWezhugE/maxresdefault.jpg" alt=""></a></p> <p>An open-source storage from LINBIT (maintainers of DRBD). It’s fast and fault-tolerant, has a lot of features. It looks like Kuberentes but for block devices. How does it work? How to configure and debug it?</p> Deckhouse v1.43 introduces the next-generation virtualization system https://kvaps.github.io/2023/03/deckhouse-v1.43-introduces-the-next-generation-virtualization-system/ Mon, 27 Mar 2023 00:00:00 +0000 https://kvaps.github.io/2023/03/deckhouse-v1.43-introduces-the-next-generation-virtualization-system/ <p><img src="https://miro.medium.com/v2/resize:fit:1400/format:webp/0*1A2KX0mHjTsez1er.png" alt=""></p> <p>Over the past few years, we at Flant have been keeping a close eye on the technology leaders in the cloud-native space. But it’s more than merely a matter of curiosity — we have incorporated the ideas we got from them to create something new and exciting that would offer people a lot of value, which we would be pleased to share with you today. We present to you <a href="https://deckhouse.io/documentation/v1.43/modules/490-virtualization/">the new virtualization system</a> we’ve recently introduced in the latest Deckhouse release (1.43).</p> A cheatsheet for debugging LINSTOR in Kubernetes https://kvaps.github.io/2023/01/a-cheatsheet-for-debugging-linstor-in-kubernetes/ Tue, 24 Jan 2023 00:00:00 +0000 https://kvaps.github.io/2023/01/a-cheatsheet-for-debugging-linstor-in-kubernetes/ <p><img src="https://deckhouse.ru/documentation/latest/images/041-linstor/linstor-debug-cheatsheet.svg" alt=""></p> <p>(especially for <a href="https://deckhouse.io">Deckhouse</a> platform)</p> KubeVirt, its networking, and how we brought it to the next level https://kvaps.github.io/2022/12/kubevirt-its-networking-and-how-we-brought-it-to-the-next-level/ Sun, 25 Dec 2022 00:00:00 +0000 https://kvaps.github.io/2022/12/kubevirt-its-networking-and-how-we-brought-it-to-the-next-level/ <p><a href="https://youtu.be/jp2XY-9MORM"><img src="https://i3.ytimg.com/vi/jp2XY-9MORM/maxresdefault.jpg" alt=""></a></p> <p>Short abstract When choosing KubeVirt as our main virtualization solution, we were unsatisfied with the existing networking implementation. We developed and contributed some enhancements to simplify the design and get the most performance out of the network using KubeVirt.</p> LINSTOR Is Like Kubernetes, But for Block Devices - Storage Day Kubernetes on AWS https://kvaps.github.io/2022/11/linstor-is-like-kubernetes-but-for-block-devices-storage-day-kubernetes-on-aws/ Sun, 27 Nov 2022 00:00:00 +0000 https://kvaps.github.io/2022/11/linstor-is-like-kubernetes-but-for-block-devices-storage-day-kubernetes-on-aws/ <p><a href="https://youtu.be/yc8RiZ4jJVA"><img src="https://i3.ytimg.com/vi/yc8RiZ4jJVA/maxresdefault.jpg" alt=""></a></p> <p>An open-source storage from LINBIT (maintainers of DRBD). It’s fast and fault-tolerant, has a lot of features. It looks like Kuberentes but for block devices. How does it work? How to configure and debug it?</p> Kubernetes snapshots: What are they and how to use them? https://kvaps.github.io/2022/11/kubernetes-snapshots-what-are-they-and-how-to-use-them/ Wed, 02 Nov 2022 00:00:00 +0000 https://kvaps.github.io/2022/11/kubernetes-snapshots-what-are-they-and-how-to-use-them/ <p><img src="https://blog.palark.com/wp-content/uploads/2022/11/Kubernetes-snapshots_-What-are-they-and-how-to-use-them_.png" alt=""></p> <p>With the introduction of the snapshot-controller in Kubernetes, it is now possible to create snapshots for CSI drivers and cloud providers that support this feature.</p> <p>The API is universal and vendor-independent, which is typical for Kubernetes, so we can explore it without getting into the specifics of a particular implementation. Let’s take a closer look at snapshots and see how they can benefit Kubernetes users.</p> Panel discussion: Current state of Open Source https://kvaps.github.io/2022/06/panel-discussion-current-state-of-open-source/ Tue, 28 Jun 2022 00:00:00 +0000 https://kvaps.github.io/2022/06/panel-discussion-current-state-of-open-source/ <p><img src="https://img.youtube.com/vi/SjGj9weIigo/maxresdefault.jpg" alt="Panel discussion: Current state of Open Source"></p> <p>What has changed in the open-source communities after 2 years of lockdown? What are the threats and opportunities for open-source communities right now? We&rsquo;ll discuss this and much more with the local open-source contributors and leaders.</p> Comparing Ceph, LINSTOR, Mayastor, and Vitastor storage performance in Kubernetes https://kvaps.github.io/2022/06/comparing-ceph-linstor-mayastor-and-vitastor-storage-performance-in-kubernetes/ Fri, 03 Jun 2022 00:00:00 +0000 https://kvaps.github.io/2022/06/comparing-ceph-linstor-mayastor-and-vitastor-storage-performance-in-kubernetes/ <p><img src="https://blog.palark.com/wp-content/uploads/2022/06/Comparing-Ceph-LINSTOR-Mayastor-and-Vitastor-storage-performance-in-Kubernetes.png" alt=""></p> <p>There seems to be a new trend: every time I get a new job, the first activity I engage in is benchmarking different SDS solutions. My career at Flant is no exception. I joined the development team for the <a href="https://deckhouse.io/">Deckhouse Kubernetes platform</a> when it decided to focus on running virtual machines in Kubernetes. But first, we had to find an easy-to-use, reliable block-type storage that we could offer to the platform’s customers.</p> <p>Hence I decided to benchmark several Open Source solutions to see how they behave under various conditions. The focal point was the <a href="https://en.wikipedia.org/wiki/Distributed_Replicated_Block_Device">DRBD</a> performance in different configurations and how they compared to <a href="https://ceph.io/en/">Ceph</a>.</p> <p>However, the market for software-defined storage is constantly growing and evolving. Ambitious new projects are emerging, including the recently released <a href="https://github.com/openebs/mayastor">Mayastor</a> and my fellow collaborator’s pet project <a href="https://vitastor.io/">Vitastor</a>. The results were pretty exciting and surprising.</p> How is cloud computing changing the way of mind https://kvaps.github.io/2022/05/how-is-cloud-computing-changing-the-way-of-mind/ Tue, 31 May 2022 00:00:00 +0000 https://kvaps.github.io/2022/05/how-is-cloud-computing-changing-the-way-of-mind/ <p><img src="https://pbs.twimg.com/media/FTnuV5RWYAAJzGQ?format=jpg&amp;name=large" alt="How is cloud computing changing the way of mind"></p> <p>Nowadays the market offers a huge number of virtualization solutions, but in fact, they all are solving different problems, and you need to understand in which case it suits you best. In this presentation we&rsquo;ll take a look at application design approaches then and now, and will explore the difference between virtualization and cloud computing platforms, the Pets vs. Cattle approach, and the use of IaC with Kubernetes and Terraform.</p> Kubernetes-in-Kubernetes and the WEDOS PXE bootable server farm https://kvaps.github.io/2021/12/kubernetes-in-kubernetes-and-the-wedos-pxe-bootable-server-farm/ Wed, 22 Dec 2021 00:00:00 +0000 https://kvaps.github.io/2021/12/kubernetes-in-kubernetes-and-the-wedos-pxe-bootable-server-farm/ <p><a href="https://kubernetes.io/blog/2021/12/22/kubernetes-in-kubernetes-and-pxe-bootable-server-farm/"><img src="https://pbs.twimg.com/media/FHMnruzWYAAT_xv?format=png" alt="Kubernetes-in-Kubernetes - We need to go deeper"></a></p> <p>When you own two data centers, thousands of physical servers, virtual machines and hosting for hundreds of thousands sites, Kubernetes can actually simplify the management of all these things. As practice has shown, by using Kubernetes, you can declaratively describe and manage not only applications, but also the infrastructure itself. I work for the largest Czech hosting provider <strong>WEDOS Internet a.s</strong> and today I&rsquo;ll show you two of my projects — <a href="https://github.com/kvaps/kubernetes-in-kubernetes">Kubernetes-in-Kubernetes</a> and <a href="https://github.com/kvaps/kubefarm">Kubefarm</a>.</p> <p>With their help you can deploy a fully working Kubernetes cluster inside another Kubernetes using Helm in just a couple of commands. How and why?</p> [Yabai] First steps after Awesome WM https://kvaps.github.io/2021/10/yabai-first-steps-after-awesome-wm/ Sun, 24 Oct 2021 00:00:00 +0000 https://kvaps.github.io/2021/10/yabai-first-steps-after-awesome-wm/ <p><img src="https://i.redd.it/p3zkihioqev71.png" alt=""></p> <p>After 5 years of using Linux, I decided to upgrade to a new MacBook with an M1 chip. Due to the inability to install a full-fledged Linux on it, I&rsquo;m having fun with OSX. And I have to admit I&rsquo;m starting to like it.</p> <p>Tags are set to be as static as it possible and have the same numbering for every display, just like Awesome WM do. This is why you can see so much jq-magic in my skhd config 😃<br> Some hardware keys are rebinded using <a href="https://karabiner-elements.pqrs.org/">Karabiner</a>.</p> <p>As main browser I use Firefox with <a href="https://addons.mozilla.org/en/firefox/addon/tree-style-tab/">TreeStyleTab</a> and <a href="https://addons.mozilla.org/en/firefox/addon/dustman/">Dustman</a> extensions. The last one is closing tabs automatically if I didn&rsquo;t get on them in 20 minutes. I do believe that tabs are a temporary entity and if I don&rsquo;t like to close them, why not to run a garbage collector for them?</p> <p>Terminal configuration and colors moved from my previous laptop.</p> How to Resolve Split Brain in DRBD9 https://kvaps.github.io/2021/07/how-to-resolve-split-brain-in-drbd9/ Mon, 19 Jul 2021 18:21:26 +0200 https://kvaps.github.io/2021/07/how-to-resolve-split-brain-in-drbd9/ <p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzyx2gkmcim5hgjk5dft.png" alt="split-brain"></p> <p>First, let&rsquo;s define what split-brain is. Each replica can be either connected or disconnected towards to the other. If the replica spontaneously goes to StandAlone. It means that it refuses to accept the state and don&rsquo;t want to synchronize with the other. This is a classic split-brain situation.</p> Troubleshooting DRBD9 in LINSTOR https://kvaps.github.io/2021/07/troubleshooting-drbd9-in-linstor/ Mon, 19 Jul 2021 18:15:55 +0200 https://kvaps.github.io/2021/07/troubleshooting-drbd9-in-linstor/ <p><img src="https://habrastorage.org/webt/ft/tb/2v/fttb2vkaex5-wur6zygsbkkwj2k.png" alt=""></p> <p>Over the past few years of tight work with LINSTOR and DRBD9, I have accumulated a some amount of problems and solutions for them. I decided to collect all of them into single article. Not sure that you will face exactly the same problems, but now you could at least understand the mechanics of managing and troubleshooting the DRBD9-devices.</p> <p>There is not much information on this matter on the Internet. Hope you&rsquo;ll find it useful in case if you use or plan to use LINSTOR.</p> Kubernetes-in-Kubernetes on Bare Metal with Andrei Kvapil https://kvaps.github.io/2021/05/kubernetes-in-kubernetes-on-bare-metal-with-andrei-kvapil/ Thu, 20 May 2021 12:00:00 +0100 https://kvaps.github.io/2021/05/kubernetes-in-kubernetes-on-bare-metal-with-andrei-kvapil/ <p><img src="https://m.media-amazon.com/images/I/51dR8fmSyAL.jpg" alt=""></p> <p>Andrei Kvapil joins the adventure to discuss Kubernetes with Jeffrey Groman.</p> <p>Andrei breaks down how he and his company needed to set up Kubernetes to manage their blade server setup and how they wound up running Kubernetes in Kubernetes to gain the characteristics they needed. Panel</p> Breaking down and fixing etcd cluster https://kvaps.github.io/2021/03/breaking-down-and-fixing-etcd-cluster/ Fri, 05 Mar 2021 14:05:00 +0100 https://kvaps.github.io/2021/03/breaking-down-and-fixing-etcd-cluster/ <p><img src="https://miro.medium.com/max/2400/0*zp50MnKH708J9vYm.png" alt=""></p> <p><strong>etcd</strong> is a fast, reliable and fault-tolerant key-value database. It is at the heart of Kubernetes and is an integral part of its control-plane. It is quite important to have the experience to back up and restore the operability of both individual nodes and the whole entire etcd cluster.</p> <p>In the <a href="https://itnext.io/breaking-down-and-fixing-kubernetes-4df2f22f87c3">previous article</a>, we looked in detail at regenerating SSL-certificates and static-manifests for Kubernetes, as well as issues related to restoring the operability of its control-plane. This article will be fully devoted to restoring an etcd-cluster.</p> Breaking down and fixing Kubernetes https://kvaps.github.io/2021/02/breaking-down-and-fixing-kubernetes/ Sun, 21 Feb 2021 12:00:00 +0100 https://kvaps.github.io/2021/02/breaking-down-and-fixing-kubernetes/ <p><img src="https://miro.medium.com/max/700/0*sNzXNN7Ky0uwfhxN.png" alt=""></p> <p><strong>Kubernetes</strong> is a great platform both for container orchestration and everything else. Recently, Kubernetes has gone far ahead in terms of functionality, security and resilience. The Kubernetes architecture allows you to easily survive various kinds of failures and always stay afloat. Today we will break the cluster, delete certificates, rejoin nodes on live, and doing all this fancy stuff without possible downtime for already running services.</p> OpenNebula Webinar - Running a fully hyper-converged cloud with OpenNebula + LINBIT SDS https://kvaps.github.io/2021/01/opennebula-webinar-running-a-fully-hyper-converged-cloud-with-opennebula--linbit-sds/ Fri, 29 Jan 2021 00:00:00 +0000 https://kvaps.github.io/2021/01/opennebula-webinar-running-a-fully-hyper-converged-cloud-with-opennebula--linbit-sds/ <p><a href="https://youtu.be/c_TTpj5jEfI"><img src="http://i3.ytimg.com/vi/c_TTpj5jEfI/maxresdefault.jpg" alt=""></a></p> <p>Learn more about LINBIT&rsquo;s SDS solution, its native integration with OpenNebula, and the many benefits it provides to companies using both technologies together. Our guest speakers for this event will be Yusuf Yildiz (Solutions Architect at LINBIT) and Andrei Kvapil (Cloud Architect / DevOps Engineer at WEDOS Internet).</p> [awesome] Warm and Cozy https://kvaps.github.io/2020/12/awesome-warm-and-cozy/ Mon, 21 Dec 2020 00:00:00 +0000 https://kvaps.github.io/2020/12/awesome-warm-and-cozy/ <p><img src="https://i.redd.it/q59a0324sl661.png" alt=""></p> Case-Study: 600 Nodes on DRBD + LINSTOR for Kubernetes, OpenNebula and Proxmox https://kvaps.github.io/2020/11/case-study-600-nodes-on-drbd--linstor-for-kubernetes-opennebula-and-proxmox/ Mon, 02 Nov 2020 00:00:00 +0000 https://kvaps.github.io/2020/11/case-study-600-nodes-on-drbd--linstor-for-kubernetes-opennebula-and-proxmox/ <p><a href="https://youtu.be/kMU3JAsFXQk"><img src="https://img.youtube.com/vi/kMU3JAsFXQk/maxresdefault.jpg" alt=""></a></p> <p>Find out how Andrei at WEDOS built a 600 nodes strong storage environment using DRBD &amp; LINSTOR for Kubernetes, OpenNebula and Proxmox.</p> Tuning CNI plugins for having better performance and advanced features https://kvaps.github.io/2020/09/tuning-cni-plugins-for-having-better-performance-and-advanced-features/ Sat, 12 Sep 2020 00:00:00 +0000 https://kvaps.github.io/2020/09/tuning-cni-plugins-for-having-better-performance-and-advanced-features/ <p><img src="https://miro.medium.com/max/700/1*542zIrU1saV6nxdyQFnStA.png" alt=""></p> <p>Thanks for the <a href="https://itnext.io/benchmark-results-of-kubernetes-network-plugins-cni-over-10gbit-s-network-updated-august-2020-6e1b757b9e49">benchmarks</a> Alexis!</p> <p>Most plugins have non-optimized defaults that work in most common situations, regardless of network topology, OS and kernel version.</p> <p>I have an experience of tuning some of them, and I would like to share it with you, just briefly:</p> Configure Custom Tooling in Argo CD https://kvaps.github.io/2020/09/configure-custom-tooling-in-argo-cd/ Sun, 06 Sep 2020 01:04:00 +0300 https://kvaps.github.io/2020/09/configure-custom-tooling-in-argo-cd/ <p><img src="https://miro.medium.com/max/700/0*tcU-h452sfjDT96C.png" alt=""></p> <p>Some time after writing the <a href="https://itnext.io/trying-new-tools-for-building-and-automate-the-deployment-in-kubernetes-f96f9684e580">first article</a>, where I cleverly use jsonnet and gitlab, I realized that pipelines are certainly good, but unnecessarily difficult and inconvenient.</p> <p>In most cases, a typical task is need: “to generate YAML and put it in Kubernetes”. Actually, this is what the Argo CD does really well.</p> <p>Argo CD allows you to connect a Git repository and sync its state to Kubernetes. By default several types of applications are supported: Kustomize, Helm charts, Ksonnet, raw Jsonnet or simple directories with YAML/JSON manifests.</p> <p>Most users will be happy for having just this tool set, but not everyone. In order to satisfy the needs of anyone, Argo CD has the ability to use custom tooling.</p> <p>First of all, I was interested in the opportunity to add support for <a href="https://itnext.io/trying-new-tools-for-building-and-automate-the-deployment-in-kubernetes-f96f9684e580#4c4b">qbec</a> and <a href="https://itnext.io/trying-new-tools-for-building-and-automate-the-deployment-in-kubernetes-f96f9684e580#29ed">git-crypt</a>, which were fully discussed in the previous article.</p> Attaching an Elastic IP to EKS worker node https://kvaps.github.io/2020/06/attaching-an-elastic-ip-to-eks-worker-node/ Thu, 04 Jun 2020 16:12:27 +0000 https://kvaps.github.io/2020/06/attaching-an-elastic-ip-to-eks-worker-node/ <p><img src="https://miro.medium.com/max/1020/1*ip6KYgXR1Z_lM07mb6cOGg.png" alt=""></p> <p>Hi, I also faced with an interesting task to run STUN server in Kubernetes.</p> <p>STUN Server requires passtrough whole 1024-65535 udp port range, however Kubernetes <a href="https://github.com/kubernetes/kubernetes/issues/23864">has no support for specifying port ranges in services</a>. The solution would seem simple to run pod with hostNetwork: true and assign it to separate EC2 instance with Elastic IP.</p> <p>The problem is that EKS does not allow you to create separate instances, but instead directs you to use Auto Scaling Groups. Thus you have no opportunity to assign Elastic IP to specific EKS worker statically, but you can do that dynamically</p> Backup storage for thousands of virtual machines using free tools https://kvaps.github.io/2020/05/backup-storage-for-thousands-of-virtual-machines-using-free-tools/ Fri, 29 May 2020 20:06:10 +0000 https://kvaps.github.io/2020/05/backup-storage-for-thousands-of-virtual-machines-using-free-tools/ <p><img src="https://miro.medium.com/max/1400/0*A6SRoMPAkAf-RnRB.png" alt=""></p> <p>Hi, recently I faced across an interesting task to setup a storage server for backup of a large number of block devices.</p> <p>Every week we back up all virtual machines in our cloud, so there is a need to be able handle thousands of backups and do it as fast and efficiently as possible.</p> <p>Unfortunately, the standard RAID5, RAID6 levels are not suitable due the fact that recovery process on such large disks as ours will be painfully long and most likely never finished successfully.</p> <p>Let’s consider what alternatives are:</p> <p><strong><a href="https://docs.min.io/docs/minio-erasure-code-quickstart-guide.html">Erasure Coding</a></strong> — An analogue to RAID5, RAID6, but with a configurable parity level. Also the fault tolerance is performed not for whole block devices, but for each object separately. The easiest way to try Erasure Coding is to deploy <a href="https://min.io/">minio</a>.</p> <p><strong><a href="https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html">DRAID</a></strong> — is currently alpha feature of ZFS. Unlike RAIDZ, DRAID has a distributed parity block and uses all the disks in the array during recovery, this makes it better surviving for disk failures and provides faster recovery than standard RAID levels.</p> Configuring routing for MetalLB in L2 mode https://kvaps.github.io/2020/05/configuring-routing-for-metallb-in-l2-mode/ Thu, 14 May 2020 22:05:09 +0000 https://kvaps.github.io/2020/05/configuring-routing-for-metallb-in-l2-mode/ <p><img src="https://miro.medium.com/max/1400/0*wI1GLh4MrCzuwiwB.png" alt=""></p> <p>Not so far ago, I was faced with a quite unusual task of configuring routing for MetalLB. All would be nothing, since MetalLB usually does not require any additional configuration from user side, but in our case there is a fairly large cluster with a quite simple network configuration.</p> <p>In this article I will show you how to configure source-based and policy-based routing for the external network on your cluster.</p> <p>I will not dwell on installing and configuring MetalLB in detail, as I assume you already have some experience. Let’s understand the essence and configure the routing. So we have four cases:</p> Connecting Gitlab with Harbor for automated token issuing https://kvaps.github.io/2020/04/connecting-gitlab-with-harbor-for-automated-token-issuing/ Fri, 24 Apr 2020 23:00:00 +0000 https://kvaps.github.io/2020/04/connecting-gitlab-with-harbor-for-automated-token-issuing/ <p><img src="https://miro.medium.com/max/1400/1*rp7sSltmrBJ0lyHCenfmrw.png" alt=""></p> <p>Gitlab CI have a nice feature to generate docker-registry tokens per each job, but this feature is working only for it’s own docker registry and does not working with an external ones, eg. Harbor, Nexus, Quay and etc.</p> <p>There is an opportunity to set-up external docker registry for Gitlab, it is well described in the documentation <a href="https://docs.gitlab.com/ee/administration/packages/container_registry.html#use-an-external-container-registry-with-gitlab-as-an-auth-endpoint">Use an external container registry with GitLab as an auth endpoint</a>.</p> <p>Proposed to configure brand new docker-registry with token based authentication. Harbor also uses docker-registry in backend, so that we could configure it, but problem is that both Gitlab and Harbor require to set their own parameters which are actually conflicts.</p> [awesome] My live in console https://kvaps.github.io/2020/04/awesome-my-live-in-console/ Thu, 09 Apr 2020 00:00:00 +0000 https://kvaps.github.io/2020/04/awesome-my-live-in-console/ <p><img src="https://i.redd.it/f6l0qbuy6rr41.png" alt=""></p> How to describe 100 Gitlab jobs in 100 lines using Jsonnet https://kvaps.github.io/2020/01/how-to-describe-100-gitlab-jobs-in-100-lines-using-jsonnet/ Thu, 16 Jan 2020 00:00:00 +0000 https://kvaps.github.io/2020/01/how-to-describe-100-gitlab-jobs-in-100-lines-using-jsonnet/ <p>In addition to the <a href="https://medium.com/@kvaps/trying-new-tools-for-building-and-automate-the-deployment-in-kubernetes-f96f9684e58">previous article</a> about deployment tools in Kubernetes, I want to tell you about how you can use Jsonnet to simplify the description of the jobs in your <strong>.gitlab-ci.yml</strong></p> <p><img src="https://miro.medium.com/max/350/1*fVzTtRqdqlthR-kEGqbxLw.png" alt=""></p> <h2 id="given">Given</h2> <p>There is a monorepo in which:</p> <ul> <li>10 dockerfiles</li> <li>30 described deployments</li> <li>3 environments: devel, stage and prod</li> </ul> <h2 id="task">Task</h2> <p>Configure a pipeline:</p> <ul> <li>Building Docker images should be done by adding a git tag with a version number.</li> <li>Each deployment operation should be performed when pushing to the environment branch and only if files changed in a specific directory</li> <li>Each environment has its own gitlab-runner with a different tag that performs deployment only in this environment.</li> <li>Not any application should be deployed in each of the environments. We should describe the pipeline in order to be able to make exceptions.</li> <li>Some deployments use git submodule and should be run with the <code>GIT_SUBMODULE_STRATEGY=normal</code> environment variable set.</li> </ul> <p>Describing all this may seem like a real hell, but do not despair, armed with Jsonnet, we can easily do it.</p> Trying new tools for building and automating the deployment in Kubernetes https://kvaps.github.io/2020/01/trying-new-tools-for-building-and-automating-the-deployment-in-kubernetes/ Wed, 15 Jan 2020 00:00:00 +0000 https://kvaps.github.io/2020/01/trying-new-tools-for-building-and-automating-the-deployment-in-kubernetes/ <p><img src="https://miro.medium.com/max/3882/0*HJu_pzhe660WFJZ2" alt=""></p> <p>Hi!<br> Recently, many cool automation tools have been released both for building Docker images and for deploying to Kubernetes. In this regard, I decided to play with the Gitlab a little, study its capabilities and, of course, configure the pipeline.</p> <p>The source of inspiration for this work was the site <a href="https://kubernetes.io/">kubernetes.io</a>, which is automatically generated from <a href="github.com/kubernetes/website">source code</a>.<br> For each new pullrequest the bot generates a preview version with your changes automatically and provides a link for review.</p> <p>I tried to build a similar process from scratch, but entirely built on Gitlab CI and free tools that I used to use to deploy applications in Kubernetes. Today, I finally will tell you more about them.</p> <p>The article will consider such tools as: <strong>Hugo</strong>, <strong>qbec</strong>, <strong>kaniko</strong>, <strong>git-crypt</strong> and <strong>GitLab CI</strong> with dynamic environments feature.</p> [awesome] My work laptop https://kvaps.github.io/2019/12/awesome-my-work-laptop/ Sat, 14 Dec 2019 00:00:00 +0000 https://kvaps.github.io/2019/12/awesome-my-work-laptop/ <p><img src="https://i.redd.it/iyqfr4rghh441.png" alt=""></p> “linstor_un” — New storage driver for OpenNebula https://kvaps.github.io/2019/07/linstor_un-new-storage-driver-for-opennebula/ Wed, 17 Jul 2019 00:00:00 +0000 https://kvaps.github.io/2019/07/linstor_un-new-storage-driver-for-opennebula/ <p><img src="https://hsto.org/webt/e-/3z/h-/e-3zh-bbwjnljyazm68edln7muw.png" alt=""></p> <p>Not so long ago, the guys from LINBIT presented their new SDS solution – Linstor. This is a fully free storage based on proven technologies: DRBD, LVM, ZFS. Linstor combines simplicity and well-developed architecture, which allows to achieve stability and quite impressive results.</p> <p>Today I would like to tell you a little about it and show how easy it can be integrated with OpenNebula using linstor_un – a new driver that I developed specifically for this purpose.</p> <p>Linstor in combination with OpenNebula will allow you to build a high-performance and reliable cloud, which you can easily deploy on your own infrastructure.</p> Store SSH Keys Securely https://kvaps.github.io/2019/05/store-ssh-keys-securely/ Tue, 14 May 2019 00:00:00 +0000 https://kvaps.github.io/2019/05/store-ssh-keys-securely/ <p><img src="https://miro.medium.com/max/852/0*JlXp6Hsyfcvk7LSi.png" alt=""></p> <p>Let me tell you how you can safely store SSH keys on a local machine, for not having a fear that some application can steal or decrypt them. This article will be especially useful to those who have not found an elegant solution after the <a href="https://latacora.singles/2018/08/03/the-default-openssh.html">paranoia</a> in 2018 and continue storing keys in <code>$HOME/.ssh</code>.</p> <p>To solve this problem, I suggest you using <a href="https://keepassxc.org/">KeePassXC</a>, which is one of the best password managers, it is using strong encryption algorithms, and also it have an integrated SSH agent.</p> <p>This allows you to safely store all the keys directly in the password database and automatically add them to the system when it is opened. Once the base is closed, the use of SSH keys will also be impossible</p> Installing Haproxy for Kubernetes https://kvaps.github.io/2019/04/installing-haproxy-for-kubernetes/ Tue, 30 Apr 2019 00:00:00 +0000 https://kvaps.github.io/2019/04/installing-haproxy-for-kubernetes/ <p><img src="https://miro.medium.com/max/619/1*HPqRvvMlCyxydro6ezCpow.jpeg" alt=""></p> <p>If you want to make this scheme more safe you can add haproxy layer between keepalived and kube-apiserver.</p> <p>Just install haproxy package into your system, and add the next configuration into <code>/etc/haproxy/haproxy.cfg</code> file</p> Screen streaming to multiple devices via network https://kvaps.github.io/2019/04/screen-streaming-to-multiple-devices-via-network/ Tue, 30 Apr 2019 00:00:00 +0000 https://kvaps.github.io/2019/04/screen-streaming-to-multiple-devices-via-network/ <p><img src="https://miro.medium.com/max/3701/1*2P2MvNWAEffBGR85d8nJcQ.png" alt=""></p> <p>I had a need to show dashboard with monitoring information on several screens in the office. There are several old Raspberry Pi Model B+ and a hypervisor with a virtually unlimited amount of resources.</p> <p>Apparently the Raspberry Pi Model B+ does not have enough power to keep the browser running constantly and draw a large amount of graphics in it, which is why the page is partially buggy and often crashes.</p> <p>I found a fairly simple and elegant solution, which I want to share with you.</p> Adding LDAP authentication to Kubernetes https://kvaps.github.io/2019/02/adding-ldap-authentication-to-kubernetes/ Tue, 26 Feb 2019 00:00:00 +0000 https://kvaps.github.io/2019/02/adding-ldap-authentication-to-kubernetes/ <p><img src="https://miro.medium.com/max/848/0*ZKnEqwk9W9lREHxf.png" alt=""></p> <p>Short guide how to setup Keycloak for connect Kubernetes with your LDAP-server and import users and groups. It will allow you to configure RBAC and use auth-proxy to secure Kubernetes Dasboard and another applications, which have no authentification from begining.</p> Creating High Available Baremetal Kubernetes cluster with Kubeadm and Keepalived (More Simple Guide) https://kvaps.github.io/2018/12/creating-high-available-baremetal-kubernetes-cluster-with-kubeadm-and-keepalived-more-simple-guide/ Sun, 09 Dec 2018 00:00:00 +0000 https://kvaps.github.io/2018/12/creating-high-available-baremetal-kubernetes-cluster-with-kubeadm-and-keepalived-more-simple-guide/ <p>This guide is updated version of my previous article <a href="https://medium.com/@kvapss/creating-baremethal-kubernetes-ha-cluster-with-kubeadm-and-keepalived-simple-guide-c70ec4adf8ca">Creating High Available Baremetal Kubernetes cluster with Kubeadm and Keepalived (Simple Guide)</a> Since <strong>v1.13</strong> deployment has become much easier and more logical. Note that this article is my personal interpretation of official Creating Highly <a href="https://kubernetes.io/docs/setup/independent/high-availability/">Available Clusters with kubeadm</a> for <a href="https://kubernetes.io/docs/setup/independent/high-availability/#stacked-control-plane-nodes">Stacked control plane nodes</a> plus few more steps for Keepalived.</p> <p>If you have any questions, or something is not clear, please refer to the official documentation or ask the <a href="https://www.google.com/">Google</a>. All steps described here in the short and simple form</p> Creating Baremethal Kubernetes HA cluster with Kubeadm and Keepalived (Simple Guide) https://kvaps.github.io/2018/10/creating-baremethal-kubernetes-ha-cluster-with-kubeadm-and-keepalived-simple-guide/ Thu, 18 Oct 2018 00:00:00 +0000 https://kvaps.github.io/2018/10/creating-baremethal-kubernetes-ha-cluster-with-kubeadm-and-keepalived-simple-guide/ <p>This guide is a free interpretation of official <a href="https://kubernetes.io/docs/setup/independent/high-availability/">Creating Highly Available Clusters with kubeadm</a> for <a href="https://kubernetes.io/docs/setup/independent/high-availability/#stacked-control-plane-nodes">Stacked control plane nodes</a>. I don’t like this difficult form which used there, so I wrote this article.</p> <p>If you have any questions, or something is not clear, please refer to the official documentation or ask the <a href="https://www.google.com/">Google</a>. All steps described here in the short and simple form</p> Install Kolab and integrate it with FreeIPA https://kvaps.github.io/2018/10/install-kolab-and-integrate-it-with-freeipa/ Thu, 04 Oct 2018 00:00:00 +0000 https://kvaps.github.io/2018/10/install-kolab-and-integrate-it-with-freeipa/ <p><img src="https://miro.medium.com/max/751/1*nR-RW_hUa89nBl1OmWaPuQ.png" alt=""></p> <p>Here is written steps for install <a href="https://kolab.org/">Kolab Groupware</a> server and integrate it with <a href="https://www.freeipa.org/page/Main_Page">FreeIPA</a> server.</p> <p>Most of actions requires basic understanding in LDAP mechanism. FreeIPA should be already installed before preparing Kolab installation. We will connect only users from the existing tree (which provided by FreeIPA), and we will create new tree for the rest Kolab resources, like mail groups, shared mailboxes, etc.</p> <p>In the end, we will can authenticate them, edit their parameters via kolab-webadmin, and manage other resources.</p> Building a Network Bootable Server Farm for Kubernetes with LTSP https://kvaps.github.io/2018/10/building-a-network-bootable-server-farm-for-kubernetes-with-ltsp/ Tue, 02 Oct 2018 21:35:07 +0000 https://kvaps.github.io/2018/10/building-a-network-bootable-server-farm-for-kubernetes-with-ltsp/ <p><img src="https://kubernetes.io/images/blog/2018-10-01-network-bootable-farm-with-ltsp/k8s+ltsp.svg" alt=""></p> <p>In this post, I’m going to introduce you to a cool technology for Kubernetes, LTSP. It is useful for large baremetal Kubernetes deployments.</p> <p>You don’t need to think about installing an OS and binaries on each node anymore. Why? You can do that automatically through Dockerfile!</p> <p>You can buy and put 100 new servers into a production environment and get them working immediately - it’s really amazing!</p> <p>Intrigued? Let me walk you through how it works.</p> Deploying LINSTOR storage for Proxmox https://kvaps.github.io/2018/09/deploying-linstor-storage-for-proxmox/ Wed, 12 Sep 2018 21:36:59 +0000 https://kvaps.github.io/2018/09/deploying-linstor-storage-for-proxmox/ <p><img src="https://cdn-images-1.medium.com/max/800/1*cnj3wxTbCBWX6N_GGbgroA.png" alt=""></p> <p>Few time ago LINBIT released their new solution LINSTOR which is providing orchestration tool for manage multiple DRBD-arrays.</p> <p>For example you can have few nodes, each one will have own LVM or ZFS pool, LINSTOR will automatically create new volumes there and replicate or distribute them using DRBD protocol.</p> <p>LINSTOR supports thin-provisioning, snapshots and many other interesting things.</p> <p>This solution is good suitable for virtual machines and containers.</p> Run kubernetes inside LXC container https://kvaps.github.io/2018/08/run-kubernetes-inside-lxc-container/ Wed, 22 Aug 2018 21:36:47 +0000 https://kvaps.github.io/2018/08/run-kubernetes-inside-lxc-container/ <p><img src="https://cdn-images-1.medium.com/max/800/1*YoK1cRYjSmssxRSBBHZYfg.png" alt=""></p> <p>I can tell you how you can run kubernetes master in LXC container, I use Proxmox and it is working really fine, this manual can serve as an alternative way for the classical several masters deployment. In this case you can have only one master, and still have all the features of multimater.</p> Easy way for install Mikrotik’s Cloud Hosted Router on any Cloud VM https://kvaps.github.io/2018/02/easy-way-for-install-mikrotiks-cloud-hosted-router-on-any-cloud-vm/ Tue, 06 Feb 2018 12:53:35 +0000 https://kvaps.github.io/2018/02/easy-way-for-install-mikrotiks-cloud-hosted-router-on-any-cloud-vm/ <p>Many cloud providers not allows uploading ISOs and not provides any option for install custom OS. This is not a problem, because I’ll show you how you can prepare Mikrotik VM on any cloud in easy 5 steps.</p> Zabbix: solve memory and cpu load monitoring issues inside LXC containers https://kvaps.github.io/2017/11/zabbix-solve-memory-and-cpu-load-monitoring-issues-inside-lxc-containers/ Wed, 29 Nov 2017 12:53:18 +0000 https://kvaps.github.io/2017/11/zabbix-solve-memory-and-cpu-load-monitoring-issues-inside-lxc-containers/ <p>Zabbix have some problems with memory collecting from cgroups limited containers. If you using Promxox, you know what I mean: The available memory collected worng without calculating buffers and cache memory. Zabbix have <a href="https://medium.com/r/?url=https%3A%2F%2Fsupport.zabbix.com%2Fbrowse%2FZBX-12164">bug report</a>, but it seems that no one don’t want to fix it soon. So let’s fix it together byself.</p> Projects Archive https://kvaps.github.io/projects-archive/ Tue, 27 Dec 2016 03:10:52 +0000 https://kvaps.github.io/projects-archive/ ArtRadio.fm Electronic music radio station (abandoned) ArtPredel.ru The most unusual art from the web (abandoned) ONLYOFFICE configuration for docker-compose (and letsencrypt). https://kvaps.github.io/2016/12/onlyoffice-configuration-for-docker-compose-and-letsencrypt./ Wed, 14 Dec 2016 03:55:37 +0000 https://kvaps.github.io/2016/12/onlyoffice-configuration-for-docker-compose-and-letsencrypt./ <ul> <li>Run communityserver container, and get <code>onlyoffice.conf</code> from it:</li> </ul> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>docker run -name communityserver -i -t -d onlyoffice/communityserver<span style="color:#e6db74">`</span> </span></span><span style="display:flex;"><span><span style="color:#75715e"># wait 1-2 minutes.</span> </span></span><span style="display:flex;"><span>sudo docker exec -i -t communityserver /bin/bash -c <span style="color:#e6db74">&#39;cat /etc/nginx/sites-enabled/onlyoffice&#39;</span> &gt; onlyoffice.conf<span style="color:#e6db74">`</span> </span></span><span style="display:flex;"><span>sudo docker rm -fv communityserver </span></span></code></pre></div> Build your own failover cloud based on OpenNebula with Ceph, MariaDB Galera Cluster and OpenvSwitch [machine translation] https://kvaps.github.io/2015/11/build-your-own-failover-cloud-based-on-opennebula-with-ceph-mariadb-galera-cluster-and-openvswitch-machine-translation/ Mon, 16 Nov 2015 16:45:00 +0000 https://kvaps.github.io/2015/11/build-your-own-failover-cloud-based-on-opennebula-with-ceph-mariadb-galera-cluster-and-openvswitch-machine-translation/ <p><img src="https://habrastorage.org/files/1b8/185/6c4/1b81856c42da42ba903e85e1653969e4.png" alt=""> This time I would like to tell how to configure this subject, in a particular each separate component as a result to receive the own, expanded, otkazoustoycheavy cloud based on OpenNebula. In this article I will consider the next moments:</p> <ul> <li><strong><a href="https://weekly-geekly.github.io/articles/270187/index.html#ceph">Install Ceph, distributed storage</a></strong>. <em>(I will describe the installation of a two-tier storage with a caching pool of SSDs)</em></li> <li><strong><a href="https://weekly-geekly.github.io/articles/270187/index.html#galera">Install MySQL, Galera Cluster with master replication</a></strong></li> <li><strong><a href="https://weekly-geekly.github.io/articles/270187/index.html#openvswitch">Installing OpenvSwitch soft switch</a></strong></li> <li><strong><a href="https://weekly-geekly.github.io/articles/270187/index.html#opennebula">Installing directly OpenNebula itself</a></strong></li> <li><strong><a href="https://weekly-geekly.github.io/articles/270187/index.html#pacemaker">Configuring Failover Cluster</a></strong></li> <li><strong><a href="https://weekly-geekly.github.io/articles/270187/index.html#configuration">Initial configuration</a></strong></li> </ul> <p>The topics themselves are very interesting, so even if you are not interested in the final goal, but you are interested in setting up a separate component. You are welcome under the cut.</p> Installing CentOS on ZFS in UEFI [machine translation] https://kvaps.github.io/2015/10/installing-centos-on-zfs-in-uefi-machine-translation/ Tue, 13 Oct 2015 15:37:00 +0000 https://kvaps.github.io/2015/10/installing-centos-on-zfs-in-uefi-machine-translation/ <p><img src="https://habrastorage.org/files/fcc/619/ae4/fcc619ae4bb7418980f542ed02978583.png" alt=""></p> <p>I decided to try ZFS here the other day, but I did not find a detailed and simple manual on how to implement it on CentOS, I decided to correct the situation. In addition, I wanted to install all this in EFI mode. - not to stand still? And at the same time understand for yourself how <a href="https://ru.wikipedia.org/wiki/Dynamic_Kernel_Module_Support">DKMS</a> works, as well as aspects of manual installation of RPM-based distributions. ZFS was not chosen by chance either, since it was planned to deploy a hypervisor on this machine and use zvol to store images of virtual machines. I wanted something more than a software raid + lvm or simple file storage of images, something like <a href="https://ru.wikipedia.org/wiki/Ceph_File_System">ceph</a>, but for one host this is too bold. Looking ahead to say that I was very pleased with this file system, its performance and all its <a href="http://xgu.ru/wiki/ZFS">chips</a>.</p> Customize keyboard shortcuts in Linux like Mac OS X [machine translation] https://kvaps.github.io/2015/09/customize-keyboard-shortcuts-in-linux-like-mac-os-x-machine-translation/ Wed, 09 Sep 2015 16:30:00 +0000 https://kvaps.github.io/2015/09/customize-keyboard-shortcuts-in-linux-like-mac-os-x-machine-translation/ <p><img src="https://habrastorage.org/files/8f1/55e/18d/8f155e18dc4b4f1f80113941c5ad32ab.png" alt=""></p> <p>Previously, I quite often had a situation where you simultaneously work in a terminal and, for example, in a browser. After several hours of work, you start to get confused and in the terminal instead of [Ctrl] + [Shift] + [C], press [Ctrl] + [C], and vice versa in the browser. As a result, in the terminal you get an interrupt and in the browser, instead of the expected effect, your debugger is slowly loaded. One fine moment it got me and I decided it was time to change something&hellip;</p> Forwarding USB to a virtual network via UsbRedir and QEMU [machine translation] https://kvaps.github.io/2015/08/forwarding-usb-to-a-virtual-network-via-usbredir-and-qemu-machine-translation/ Thu, 20 Aug 2015 11:55:00 +0000 https://kvaps.github.io/2015/08/forwarding-usb-to-a-virtual-network-via-usbredir-and-qemu-machine-translation/ <p><img src="https://hsto.org/files/e6a/1bc/05d/e6a1bc05d70c460399d3276fdec28d2c.png" alt=""></p> <p>To date, there are quite a few ways to forward a USB device to another computer or virtual machine over the network.</p> <p>Of the most popular, hardware such as AnywhereUSB and purely software products, from those that I tried myself: USB Redirector and USB / IP.</p> <p>I would like to tell you about another interesting method that works directly with the QEMU emulator.</p> <p>It is also part of the spice project, officially supported by RedHat.</p> <p>UsbRedir, is an open protocol for forwarding usb-devices via tcp to a remote virtual server, developed with the support of RedHat in the framework of the spice project. But as it turned out they can be quite successfully used without spice. The server is usbredirserver, which fumbles a usb device on a specific port, and QEMU itself as a client, which emulates the connection of an exported usb device to a specific usb controller of your virtual machine. Thanks to this approach, absolutely any OS can be used as a guest system, since it does not even know that the device is remotely forwarded, and all the logic rests on QEMU.</p> Kolab Groupware (Part 2 - Installation) [machine translation] https://kvaps.github.io/2015/07/kolab-groupware-part-2-installation-machine-translation/ Sat, 18 Jul 2015 14:17:00 +0000 https://kvaps.github.io/2015/07/kolab-groupware-part-2-installation-machine-translation/ <p><img src="https://habrastorage.org/files/ee8/922/938/ee892293882e4e2487c48354109305bb.png" alt=""></p> <p>If you still do not know what Kolab is, then you probably want to read the <a href="https://weekly-geekly.github.io/articles/260469/index.html">first article</a>, where I did a detailed review of this rather functional and completely free mail server with a beautiful web-muzzle. This time we will install it.</p> Kolab Groupware (Part 1 - Overview) [machine translation] https://kvaps.github.io/2015/07/kolab-groupware-part-1-overview-machine-translation/ Fri, 17 Jul 2015 15:17:00 +0000 https://kvaps.github.io/2015/07/kolab-groupware-part-1-overview-machine-translation/ <p><img src="https://habrastorage.org/files/3b1/7cb/b50/3b17cbb50147480da0cfab3dc4154b05.png" alt=""></p> <p>Hi, Habr! I want to tell you about a rather interesting and functional replacement for MS Exchange, completely free and also with a beautiful web-muzzle. The conversation will be about Kolab - a free mail server with support for collaboration, calendars, to-do lists, WebDAV, ActiveSync synchronization and other goodies that can be used both for work and for home.</p> <p><em>Carefully, in a post a lot of pictures&hellip;</em></p> We lift the VPN tunnel from the world home bypassing NAT [machine translation] https://kvaps.github.io/2014/03/we-lift-the-vpn-tunnel-from-the-world-home-bypassing-nat-machine-translation/ Tue, 18 Mar 2014 14:51:00 +0000 https://kvaps.github.io/2014/03/we-lift-the-vpn-tunnel-from-the-world-home-bypassing-nat-machine-translation/ <p><img src="https://habrastorage.org/getpro/habr/post_images/427/d2e/abc/427d2eabc3adcf37fdd642660f5aa09a.png" alt=""></p> <p>I want to tell you about how having your VPS server on the Internet, you can raise a tunnel to your home network. And do not pay at the same time for a static IP provider, and even being behind a NAT, still make your home services available on the Internet.</p>