{"@attributes":{"version":"2.0"},"channel":{"title":"Joseph David Bor\u0121","link":"https:\/\/josephb.org\/","description":"Recent content on Joseph David Bor\u0121","generator":"Hugo","language":"en-gb","lastBuildDate":"Tue, 30 Nov 2021 12:00:00 +0000","item":[{"title":"MicroK8s Apple M1 Support","link":"https:\/\/josephb.org\/blog\/microk8s-m1\/","pubDate":"Tue, 30 Nov 2021 12:00:00 +0000","guid":"https:\/\/josephb.org\/blog\/microk8s-m1\/","description":"<p>With the release of <a href=\"https:\/\/ubuntu.com\/blog\/canonical-transforms-linux-on-mac\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">Multipass 1.8<\/a>, we are happy to announce that MicroK8s gains M1 Apple Silicone support.<\/p>\n<p>Installing MicroK8s on an M1 Mac is as simple as it is on an Intel Mac:<\/p>\n<pre tabindex=\"0\"><code>$ brew install ubuntu\/microk8s\/microk8s\n<\/code><\/pre><p>Once installed, you will have a running Kubernetes cluster with an arm64 node enrolled.<\/p>\n<pre tabindex=\"0\"><code>$ sysctl -n machdep.cpu.brand_string\nApple M1\n\n$ microk8s kubectl get nodes --label-columns kubernetes.io\/arch\nNAME          STATUS   ROLES    AGE     VERSION                    ARCH\nmicrok8s-vm   Ready    &lt;none&gt;   6m13s   v1.22.3-3+64e63223b19811   arm64\n<\/code><\/pre><p>Now we can enable all the MicroK8s addons we\u2019d like to.<\/p>"},{"title":"Running Valheim Server On MicroK8s","link":"https:\/\/josephb.org\/blog\/valheim-microk8s\/","pubDate":"Sun, 28 Feb 2021 12:00:00 +0000","guid":"https:\/\/josephb.org\/blog\/valheim-microk8s\/","description":"<h1 id=\"introduction\">\n  Introduction\n  <a class=\"heading-link\" href=\"#introduction\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h1>\n<h2 id=\"microk8s\">\n  MicroK8s\n  <a class=\"heading-link\" href=\"#microk8s\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h2>\n<p><a href=\"https:\/\/microk8s.io\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">MicroK8s<\/a> is a self contained Kubernetes cluster.  It can be used on most Linux distros and even Windows and Mac.  We&rsquo;re going to use Kubernetes, provided by MircoK8s, to maintain all of the moving parts of our Valheim server.<\/p>\n<h2 id=\"valheim\">\n  Valheim\n  <a class=\"heading-link\" href=\"#valheim\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h2>\n<p><a href=\"https:\/\/www.valheimgame.com\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">Valheim<\/a>, available on Linux and Windows, is currently one of the most popular games on Steam despite only being in early access!  It&rsquo;s a co-op survival game based in the Viking afterlife; perfect to play with friends across the globe.<\/p>"},{"title":"Running Containerd with Nvidia GPU support","link":"https:\/\/josephb.org\/blog\/containerd-nvidia\/","pubDate":"Fri, 29 Mar 2019 12:00:00 +0000","guid":"https:\/\/josephb.org\/blog\/containerd-nvidia\/","description":"<h1 id=\"motivation\">\n  Motivation\n  <a class=\"heading-link\" href=\"#motivation\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h1>\n<p>Whether you&rsquo;re operating the container runtime directly, or using through a\nworkload manager, such as Kubernetes, <strong>containerd<\/strong> is a great choice.  It&rsquo;s\n<a href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/24\/kubernetes-containerd-integration-goes-ga\/\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">faster than <strong>Docker<\/strong><\/a>\nand allows running seperate runtimes for\n<a href=\"https:\/\/github.com\/kata-containers\/documentation\/blob\/master\/how-to\/containerd-kata.md\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">trusted and untrusted workloads<\/a>.<\/p>\n<h1 id=\"prerequisites\">\n  Prerequisites\n  <a class=\"heading-link\" href=\"#prerequisites\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h1>\n<p>This guide assumes you&rsquo;ve got hardware (or a VM) with a CUDA enabled\nNvidia graphics card and that you&rsquo;re running Ubuntu 18.04 Bionic Beaver.<\/p>"},{"title":"Deploying Django with Kubernetes","link":"https:\/\/josephb.org\/blog\/django-k8s\/","pubDate":"Wed, 06 Dec 2017 18:00:00 +0000","guid":"https:\/\/josephb.org\/blog\/django-k8s\/","description":"<h1 id=\"introduction\">\n  Introduction\n  <a class=\"heading-link\" href=\"#introduction\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h1>\n<p>Kubernetes is a great platform to run your applications on.  There are plenty of blogs out there that go into why Kubernetes is great, so go read some if you haven&rsquo;t already.  One of the many great fits is a Django application.  Here, we&rsquo;ll run through the very basics.<\/p>\n<p>We&rsquo;ll deploy this demonstration to Google Cloud Platform as this provides a good foundation to spin up a Kubernetes cluster and required ancillaries.  All of the <code>kubectl<\/code> commands are ambiguous to where you&rsquo;ve installed Kubernetes.<\/p>"},{"title":"Python 2 is Killing Python","link":"https:\/\/josephb.org\/blog\/py2-killing-py\/","pubDate":"Tue, 25 Jul 2017 18:32:32 +0100","guid":"https:\/\/josephb.org\/blog\/py2-killing-py\/","description":"<p>This is a rebuttal to the blog post <a href=\"http:\/\/blog.thezerobit.com\/2014\/05\/25\/python-3-is-killing-python.html\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">Python 3 Is Killing Python\n<\/a> by Stephen A. Goss.<\/p>\n<p>At the time that post was written, I may even have agreed with it.  Every project I had to migrate from 2 to 3 seemed a mighty pain and, at that time, felt like there was little benefit forthcoming.  There was always a dependancy or two that wasn&rsquo;t compatible with 3 and their authors seemed stalwart in keeping it that way.<\/p>"},{"title":"Deploying Kubernetes","link":"https:\/\/josephb.org\/blog\/k8s-juju\/","pubDate":"Wed, 05 Jul 2017 14:18:30 +0100","guid":"https:\/\/josephb.org\/blog\/k8s-juju\/","description":"<h1 id=\"introduction\">\n  Introduction\n  <a class=\"heading-link\" href=\"#introduction\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h1>\n<p>This is a step by step guide which will demonstrate deploying a Kubernetes cluster using <a href=\"https:\/\/jujucharms.com\/\"  class=\"external-link\" target=\"_blank\" rel=\"noopener\">Juju<\/a> and running a scalable web application on top.  Here, we&rsquo;ll be using the built in Microbot application in place of a real web application.<\/p>\n<h1 id=\"prerequisites\">\n  Prerequisites\n  <a class=\"heading-link\" href=\"#prerequisites\">\n    <i class=\"fa-solid fa-link\" aria-hidden=\"true\" title=\"Link to heading\"><\/i>\n    <span class=\"sr-only\">Link to heading<\/span>\n  <\/a>\n<\/h1>\n<p>You will need <code>juju<\/code> and <code>kubectl<\/code> to follow along.  On Linux, these can be installed with Snap (these will need to be run with sudo if you&rsquo;ve not registered Snap):<\/p>"},{"title":"About","link":"https:\/\/josephb.org\/about\/","pubDate":"Mon, 03 Jul 2017 22:00:00 +0100","guid":"https:\/\/josephb.org\/about\/","description":"<p>Free Software and Open Source developer.<\/p>\n<p>I like to code in a load of languages including Python, Go, JavaScript and Rust.<\/p>\n<p>I enjoy building things with Kubernetes.<\/p>\n<p>I&rsquo;ve done a few talks at Django meetups.<\/p>\n<p>It&rsquo;s fun to race things, especially cars.<\/p>"},{"title":"Site's moved to Hugo","link":"https:\/\/josephb.org\/blog\/new-site\/","pubDate":"Mon, 03 Jul 2017 21:40:05 +0100","guid":"https:\/\/josephb.org\/blog\/new-site\/","description":"<p>I&rsquo;ve finally got round to making a new site. My old site was in need of some TLC and that meant Django migrations. Unfortunately, it was so old that that meant playing with South again. I was also using STARSSL for HTTPS, which is no longer supported so I&rsquo;ve moved to Let&rsquo;s Encrypt.<\/p>"}]}}