Ik raad aan om de Ubuntu 20.04 omgeving te gebruiken uit voorgaande lessen voor het doorlopen van deze les, hiermee kan je de lessen lokaal uitvoeren. Je hebt 1 master VM nodig en 2 worker VM's. Je kunt er ook voor kiezen om dit in de cloud uit te voeren en 3 virtuele machines te bestellen.
Aanbevolen
Zorg voor hostnamen die overeenkomen met de functie van de server. Bijvoorbeeld k8s-master, k8s-worker1, enz.
Achteraf of bij importeren kun je de hostname veranderen met de volgende opdracht
sudo hostnamectl set-hostname new-computer-name-here
Reboot na het aanpassen van de hostname.
(Installatie gebeurt voor de volgende onderdelen op alle 3 servers)
De hosts hebben een paar minuten nodig om op te starten, waarna je bij elk moet inloggen via ssh
en begin met het installeren van dezelfde set pakketten voor Docker en Kubernetes. containerd
is nu beschikbaar als alternatieve runtime, maar is iets meer werk om te configureren.
Een bekende/geteste versie van Docker moet worden gebruikt met de kubeadm
bootstrapper, anders zullen we mogelijk onbekend gedrag tegenkomen. De apt-pakketrepository bevat een voldoende oude versie voor ons.
$ sudo apt-get update \
&& sudo apt-get install -qy docker.io
Deze opdracht uit de Kubernetes-documentatie voegt de pakketrepository toe waar kubeadm
, kubectl
en de gerelateerde pakketten worden regelmatig gepubliceerd.
$ sudo apt update \
&& sudo apt-get install -y apt-transport-https \
&& curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
$ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" \
| sudo tee -a /etc/apt/sources.list.d/kubernetes.list \
&& sudo apt-get update
Werk nu uw pakketlijst bij met apt update
.
kubelet
, kubeadm
enkubernetes-cni
Het kubelet
is verantwoordelijk voor het plannen, beheren en draaien van containers op je hosts. kubeadm
tool is een gebruiksgemak dat gereed is voor productie en dat wordt gebruikt om de verschillende componenten van een werkcluster te configureren. Het kubernetes-cni
pakket vertegenwoordigt de netwerkcomponenten die niet rechtstreeks in Kubernetes zijn ingebouwd.
CNI staat voor Container Networking Interface, een specificatie die definieert hoe netwerkstuurprogramma's moeten communiceren met Kubernetes. CNI-netwerkstuurprocessen worden uitgevoerd met UNIX-pipes en worden voor elk verzoek forked​.
sudo apt-get update \
&& sudo apt-get install -yq \
kubelet \
kubeadm \
kubernetes-cni
We moeten de Kubernetes-pakketten in de wacht zetten, want als we dat niet doen, wanneer er een nieuwere versie wordt uitgebracht en we draaien apt upgrade
, kunnen we eindigen met een onverwachte hobbel in onze Kubernetes-versie.
sudo apt-mark hold kubelet kubeadm kubectl
De beheerders van Kubernetes besloten dat het gebruik van wisselgeheugen kan leiden tot onvoorspelbaar gedrag en gaven er de voorkeur aan om het uit te schakelen dan om te kampen met een van de bijwerkingen die kunnen optreden.
Je kunt controleren of je swap heeft ingeschakeld door in te typen cat /proc/swaps
. Als je een wisselbestand of partitie hebt ingeschakeld, schakel deze dan uit met swapoff
. U kunt dit permanent maken door het wisselbestand in /etc/fstab
.
cat /proc/swaps
Filename Type Size Used Priority
/dev/md127 partition 1995772 0 -2
$ sudo swapoff /dev/md127
$ sudo vim /etc/fstab
UUID=2358eec8-dda6-4212-9cf6-92f515a1b631 / ext4 errors=remount-ro 0 1
#UUID=b038c1b7-fa7f-4f20-b554-6c2885d73ba5 none swap none 0 0
Belangrijk!
Op dit punt zou je de bovenstaande stappen op elk van je servers moeten hebben uitgevoerd. Dit zijn allemaal veel voorkomende stappen dat op alle nodes uitgevoerd moet worden.