|
|
(35 intermediate revisions by 17 users not shown) |
Line 1: |
Line 1: |
| K3s is a easier to use version of kubernetes. It bundles all components of a kubernetes cluster into one single binary. | | [https://k3s.io/ K3s] is a simplified Kubernetes version that bundles Kubernetes cluster components into a few small binaries optimized for Edge and IoT devices. |
|
| |
|
| == Single node setup ==
| |
|
| |
|
| <syntaxHighlight lang=nix>
| | NixOS's K3s documentation is available at: |
| {
| |
| # This is required so that pod can reach the API server (running on port 6443 by default)
| |
| networking.firewall.allowedTCPPorts = [ 6443 ];
| |
| services.k3s.enable = true;
| |
| services.k3s.role = "server";
| |
| services.k3s.extraFlags = toString [
| |
| # "--kubelet-arg=v=4" # Optionally add additional args to k3s
| |
| ];
| |
| environment.systemPackages = [ pkgs.k3s ];
| |
| }
| |
| </syntaxHighlight>
| |
|
| |
|
| After enabling, you can access your cluster through <code>sudo k3s kubectl</code> i.e. <code>sudo k3s kubectl cluster-info</code>, or by using the generated kubeconfig file in <code>/etc/rancher/k3s/k3s.yaml</code>
| | https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/cluster/k3s/README.md |
|
| |
|
| == Multi-node setup ==
| | [[Category:Container]] |
| | |
| See this [https://github.com/Mic92/doctor-cluster-config/tree/master/modules/k3s real world example]. You might want to ignore some parts of it i.e. the monitoring as this is specific to our setup.
| |
| The k3s server needs to import <code>modules/k3s/server.nix</code> and an agent <code>modules/k3s/agent.nix</code>.
| |
| Tipp: You might run into issues with coredns not being reachable from agent nodes. Right now we disable the NixOS firewall all together until we find a better solution.
| |
| | |
| == ZFS support ==
| |
| | |
| k3s's builtin containerd does not support the zfs snapshotter. However it is possible to configure it to use an external containerd:
| |
| | |
| <syntaxHighlight lang=nix>
| |
| virtualisation.containerd.enable = true;
| |
| # TODO describe how to enable zfs snapshotter in containerd
| |
| services.k3s.extraFlags = toString [
| |
| "--container-runtime-endpoint unix:///run/containerd/containerd.sock"
| |
| ];
| |
| </syntaxHighlight>
| |
| | |
| [[Category:Applications]]
| |
| [[Category:Server]] | |
K3s is a simplified Kubernetes version that bundles Kubernetes cluster components into a few small binaries optimized for Edge and IoT devices.
NixOS's K3s documentation is available at:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/cluster/k3s/README.md