[K8s] Migratie van dockershim

In onderstaand schema zie je als eerste een K8s configuratie die gebruik maakt van dockershim. In het schema daaronder staat een K8s configuratie zonder docker, maar met de CRI-containerd

Dockershim vs. CRI with Containerd

Dockershim is een shim waarmee de gehele docker engine gebruikt kan worden voor de container images. In Kubernetes release v1.24 is de dockershim verwijderd en wordt gebruik gemaakt van CRI-containerd. (of CRI-Dockerd)

Container images die gemaakt zijn met docker werken nog steeds prima met containerd en dus geen probleem voor images die reeds aanwezig zijn.

Lees verder

[Rancher] cattle-cluster-agent kan niet verbinden

Op een downstream K3s cluster kan de cattle-cluster-agent niet verbinden met de rancher-server. oorzaak is de DNS-record die niet gevonden kan worden. Een log van de pod geeft de volgende foutmelding:

ERROR: https://rancher.digitalinfo.nl/ping is not accessible (Could not resolve host: rancher.digitalinfo.nl)

Dit kan opgelost worden door de deployment aan te passen en er een dnsConfig in aan te passen. Deze wordt dan alsvolgt:

dnsConfig:
  nameservers:
  - 8.8.8.8
dnsPolicy: None

Hierna worden de Pods ververst en zal de rancher server gevonden worden via de Google DNS server (8.8.8.8). Voorwaarde is uiteraard wel dat je jouw rancher DNS-record geregistreerd hebt in een externe DNS server.

[K8s] NFS Provisioner

Binnen Kubernetes bestaat de mogelijkheid om PVC’s aan te maken op NFS-shares. Dit kan door een PV aan te maken met type NFS, maar het kan ook dynamisch met een NFS Provisioner.

Gebruik Helm om de repo toe te voegen en installeer de NFS Provisioner met Helm.

Lees verder

[Proxmox] NFS share toevoegen aan VM

Op een NFS server (NAS, Storage Sever, etc..) worden NFS shares aangemaakt die via een NFS client gemount kunnen worden in een VM. Met Proxmox kunnen de NFS shares gemount worden op de pve en dan gebruikt worden als extra disk aan een VM. Op zich vrij eenvoudig, hier een beknopte uitleg.

Lees verder

[K8S] cgroup driver naar systemd

Volgens https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/ dient het aanbeveling om ‘systemd‘ te gebruiken als driver voor cgroups. Dit komt de stabiliteit van docker ten goede. Vóór Kubernetes versie 1.21 is de standaard nog om hier ‘cgroupfs’ voor te gebruiken maar aangezien kubeadm systemd gebruikt om kubelet aan te sturen is dit nu de nieuwe standaard en de default vanaf v1.21.

Lees verder

[K8S] Efficiente workloads

De efficientie van workloads worden voor een groot deel bepaald door de gebruikte resource-requests en resource-limits. Hoe dichter deze bij elkaar liggen, hoe efficienter de workload is. Het gevaar is echter dat met opstarten van een workload vaak meer CPU en memory gebruikt wordt en deze dient dan wel onder de resource-limit te blijven. Voor wat betreft memory-limit-overschrijding zal de pod opnieuw gestart worden door een Out-Of-Memory (OOM) event en overschrijding van het CPU-Limiet leidt tot CPU-trothling wat vertragingen in CPU time veroorzaakt. Voor beide limieten geldt uiteraard dat deze de Rancher-project resource-quota niet kan overschrijden en de node waarop de workload staat dient uiteraard de noodzakelijke CPU en Memory te kunnen leveren.

[Ubuntu] disk resize ‘on-the-fly’

Via Proxmox (of VMWare) is een extra disk toegevoegd aan een VM. Deze disk is in de VM de tweede disk, dus ‘/dev/sdb‘ en deze is 100Gb. Nu willen we deze uitbreiden met 20Gb echter zonder downtime van de VM, met andere woorden: ‘on the fly’.

Binnen Proxmox kan de disk groter gemaakt worden, dus die maken we 120G.

Lees verder