---
title: K3S le mini Kubernetes
date: "2020-01-14T02:02:02.202Z"
template: "post"
draft: false
slug: "3s-mini-kubernetes"
category: "Devops"
tags:
  - "K3S"
  - "Kubernetes"
  - "K8s"
description: "Ok j'ai un site. Faut bien l'héberger quelque part ?! Pourquoi pas dans un cluster Kubernetes ?
Mais pas n'importe lequel : un mini cluster léger et économe."
socialImage: "/media/logo-k3s.svg"
---

![K3S](/media/logo-k3s.svg)

## Pourquoi K3S ?

Depuis la lecture de 
[cet excellent article d'IT Wars](https://www.it-wars.com/posts/cloud-native/kubernetes-avec-k3s-pour-sauver-la-planete/)
, j'avais vraiment envier d'essayer
[K3S](https://k3s.io/).

Je n'allais tout de même pas sortir 
[la grosse artillerie](https://www.jeffgeerling.com/blog/2018/kubernetes-complexity) 
pour héberger un 
[site personnel statique](/posts/gatsby-c-est-magnifique)...

## L'installation

Je lance la commande d'installation proposée :

```bash
curl -sfL https://get.k3s.io | sh -
```

... et c'est le drame. Après quelques minutes de téléchargements et d'installation,
l'erreur suivante se déclenche :

![Bug K3S cgroup_memory cgroup_enable](/media/k3s-error.png)

Pour résoudre cette erreur, j'ai ajouté quelques options dans Grub:

```ini
GRUB_CMDLINE_LINUX="cgroup_enable=memory cgroup_memory=1"
```

```bash
# Le fichier GRUB à modifier:
nano /etc/default/grub
update-grub
reboot
```

Au redémarrage (!), K3S est lancé !

## Lancé mais pas fonctionnel

K3S utilise
[containerd](https://containerd.io/)
par défaut et pour une raison que j'ignore, celui-ci a refusé 
de se lancer
(sans doute parce que Docker était installé sur la machine...)

J'ai donc arrêté K3S et l'ai relancé avec l'option **--docker**

```bash
k3s-killall.sh
k3s server --docker &
```

## Comment on s'y connecte ?

La doc est un peu obscure à ce sujet mais c'est relativement standard.

Il suffit d'utiliser
[kubectl](https://kubernetes.io/fr/docs/tasks/tools/install-kubectl/)
qui est directement installé avec K3S.

```bash
kubectl get nodes
NAME                STATUS   ROLES    AGE   VERSION
vpsXXXXXX.ovh.net   Ready    master   19m   v1.17.0+k3s.1
```

Pour s'y connecter depuis une autre machine. Il suffit de copier le fichier de config Kubectl
se trouvant dans `/etc/rancher/k3s/k3s.yaml`.

> Attention à changer l'attribut `server` du fichier avec votre ip externe.

```bash
export KUBECONFIG=~/.kube/k3s.yaml
kubectl get nodes
```

Et voilà ... un cluster Kubernetes fonctionnel et prêt à orchestrer.