• Auto-upgrade k3s using the system-upgrade-controller

    3 min read

    A kubernetes cluster can get outdated pretty soon since Kubernetes keeps evolving at every release. If we have a k3s cluster we can use the system-upgrade-controller for automatically handling the upgrades. Let's take a look on how to configure it


  • k3s: Join a new worker node to an existing cluster

    3 min read

    On a previous post we saw how ridiculously easy is to bootstrap a k3s cluster on a Raspberry Pi but what do we need to do to join new worker nodes to the cluster?


  • kubernetes: List available API using kubectl

    2 min read

    With kubectl api-resources we can get the list of available objects, but the same object can be defined using different API versions, for example the Ingress object is different on v1beta1 compared to v1. Using kubectl api-versions we can get the list of all the available API versions on our kubernetes cluster


  • kubernetes: List available objects using kubectl

    4 min read

    Using kubectl api-resources we will get a list of available objects in out kubernetes cluster including:

    • It's shortname if available
    • Whether it is namespaced. For example, a ClusterRole is a global object (namespaced=false) but on the other hand, every Role belongs to a namespace this namespaced=true


  • K3s installation on a Raspberry Pi

    3 min read

    To install k3s on a Raspberry Pi looks quite straight forward but it has it's nuisances.

    Installing k3s should be a single line command:

    # curl -sfL https://get.k3s.io | sh -
    [INFO]  Finding release for channel stable
    [INFO]  Using v1.18.9+k3s1 as release
    [INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v1.18.9+k3s1/sha256sum-arm.txt
    [INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v1.18.9+k3s1/k3s-armhf
    [INFO]  Verifying binary download
    [INFO]  Installing k3s to /usr/local/bin/k3s
    [INFO]  Creating /usr/local/bin/kubectl symlink to k3s
    [INFO]  Creating /usr/local/bin/crictl symlink to k3s
    [INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
    [INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
    [INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
    [INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
    [INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
    [INFO]  systemd: Enabling k3s unit
    Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
    [INFO]  systemd: Starting k3s



From pet to cattle
Treat your kubernetes clusters like cattle, not pets