Gedoneerd door Google aan de Opensource-gemeenschap, Kubernetes is nu de favoriete tool voor containerbeheer geworden. Het kan niet alleen docker-runtimes beheren en orkestreren, maar ook containers en Rkt looptijden.
een typische Kubernetes cluster zou over het algemeen een hoofdknooppunt en verschillende werkknooppunten of minions hebben. De worker-nodes worden vervolgens beheerd vanuit de master node, waardoor het cluster vanaf een centraal punt wordt beheerd.
Het is ook belangrijk om te vermelden dat u ook een Kubernetes-cluster met één knooppunt kunt implementeren, wat over het algemeen wordt aanbevolen voor zeer lichte, niet-productieve workloads. Hiervoor kun je Minikube, een hulpprogramma dat een Kubernetes-cluster met één knooppunt uitvoert in een virtuele machine op uw knooppunt.
Aanbevolen lezen: Hoe een Kubernetes-cluster op CentOS 8 te installeren
Voor deze tutorial zullen we een multi-node doorlopen Kubernetes clusterinstallatie aan CentOS 7 Linux. Deze zelfstudie is gebaseerd op de opdrachtregel, dus u hebt toegang tot uw terminalvenster nodig.
Ons cluster met 3 knooppunten ziet er ongeveer zo uit:
Voor Kubernetes om te werken, heb je een containerisatiemotor nodig. Voor deze installatie gebruiken we havenarbeider aangezien het de meest populaire is.
De volgende stappen worden uitgevoerd op de Hoofdknooppunt.
Stel op je masternode de hostnaam in en als je geen DNS-server hebt, update dan ook je /etc/hosts het dossier.
# hostnamectl set-hostname master-node. # kat <> /etc/hosts. 10.128.0.27 hoofdknooppunt. 10.128.0.29 node-1 worker-node-1. 10.128.0.30 node-2 worker-node-2. EOF.
Je kunt pingen worker-node-1 en worker-node-2 om te testen of uw bijgewerkte hostbestand in orde is met ping commando.
# ping 10.128.0.29. # ping 10.128.0.30.
Schakel vervolgens uit SElinux en werk uw firewallregels bij.
# setenforce 0. # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux. # opnieuw opstarten.
Stel de volgende firewallregels in op poorten. Zorg ervoor dat elke firewall-cmd-opdracht, keert een succes terug.
# firewall-cmd --permanent --add-port=6443/tcp. # firewall-cmd --permanent --add-port=2379-2380/tcp. # firewall-cmd --permanent --add-port=10250/tcp. # firewall-cmd --permanent --add-port=10251/tcp. # firewall-cmd --permanent --add-port=10252/tcp. # firewall-cmd --permanent --add-port=10255/tcp. # firewall-cmd –reload. # modprobe br_netfilter. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables.
U moet toevoegen Kubernetes repositories handmatig omdat ze niet standaard geïnstalleerd zijn op CentOS 7.
kat </etc/yum.repos.d/kubernetes.repo. [kubernetes] name=Kubernetes. baseurl= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. ingeschakeld=1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.
Nu de pakketrepo klaar is, kunt u doorgaan en installeren kubeadm en havenarbeider pakketjes.
# yum installeer kubeadm docker -y
Wanneer de installatie met succes is voltooid, schakelt u beide services in en start u ze.
# systemctl schakel kubelet in. # systemctl start kubelet. # systemctl docker inschakelen. # systemctl start docker.
Nu zijn we klaar om kubernetes master te initialiseren, maar daarvoor moet je swap uitschakelen om te kunnen uitvoeren "kubeadm init" opdracht.
# swap-off -a.
Het initialiseren van Kubernetes-master is een volledig geautomatiseerd proces dat wordt beheerd door de "kubeadm init“ opdracht die u gaat uitvoeren.
#kubeadm init.
Misschien wilt u de laatste regel kopiëren en ergens opslaan, omdat u deze moet uitvoeren op de werkknooppunten.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82414688425cd
Tip: Soms kan deze opdracht klagen over de argumenten (argumenten) doorgegeven, dus bewerk het om fouten te voorkomen. U verwijdert dus de ‘\’
karakter bij de --token
en je uiteindelijke opdracht ziet er als volgt uit.
kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd41.
Geïnitialiseerd Kubernetes succesvol is, moet u uw gebruiker toestemming geven om het cluster te gaan gebruiken. In ons geval willen we deze installatie uitvoeren als: wortel gebruiker, daarom zullen we doorgaan en deze commando's als root uitvoeren. U kunt overstappen op een sudo ingeschakelde gebruiker je verkiest en voer het onderstaande uit met sudo.
Gebruiken wortel, loop:
# mkdir -p $HOME/.kube. # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. # chown $(id -u):$(id -g) $HOME/.kube/config.
om een te gebruiken sudo ingeschakelde gebruiker, loop:
$ mkdir -p $HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. $ sudo chown $(id -u):$(id -g) $HOME/.kube/config.
Controleer nu of de kubectl commando is geactiveerd.
# kubectl krijgt knooppunten.
Op dit punt zult u ook merken dat de status van de hoofdknooppunt is 'Niet klaar’. Dit komt omdat we de nog moeten inzetten pod-netwerk naar het cluster.
De pod Netwerk is het overlay-netwerk voor het cluster, dat bovenop het huidige knooppuntnetwerk wordt geïmplementeerd. Het is ontworpen om connectiviteit over de pod mogelijk te maken.
Het implementeren van het netwerkcluster is een zeer flexibel proces, afhankelijk van uw behoeften en er zijn veel opties beschikbaar. Omdat we onze installatie zo eenvoudig mogelijk willen houden, gebruiken we Weavenet plug-in die geen configuratie of extra code vereist en die één IP-adres per pod biedt, wat geweldig is voor ons. Als u meer opties wilt zien, alstublieft kijk hier.
Deze opdrachten zijn belangrijk om de pod-netwerkconfiguratie te krijgen.
# export kubever=$(kubectl-versie | base64 | tr -d '\n') # kubectl toepassen -f " https://cloud.weave.works/k8s/net? k8s-version=$kubever"
Als u nu de status van uw hoofdknooppunt, het moet zijn 'Klaar’.
# kubectl krijgt knooppunten.
Vervolgens voegen we de werkknooppunten naar het cluster.
De volgende stappen worden uitgevoerd op de werkknooppunten. Deze stappen moeten worden uitgevoerd op elke werkknooppunt wanneer je lid wordt van de Kubernetes TROS.
Op je worker-node-1 en worker-node-2, stel de hostnaam in en als u geen DNS-server heeft, update dan ook uw master- en worker-knooppunten op /etc/hosts het dossier.
# hostnamectl set-hostname 'node-1' # kat <> /etc/hosts. 10.128.0.27 hoofdknooppunt. 10.128.0.29 node-1 worker-node-1. 10.128.0.30 node-2 worker-node-2. EOF.
Je kunt pingen hoofdknooppunt om te testen of uw bijgewerkte hostbestand in orde is.
Schakel vervolgens uit SElinux en werk uw firewallregels bij.
# setenforce 0. # sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux.
Stel de volgende firewallregels in op poorten. Zorg ervoor dat alle firewall-cmd-opdrachten succes retourneren.
# firewall-cmd --permanent --add-port=6783/tcp. # firewall-cmd --permanent --add-port=10250/tcp. # firewall-cmd --permanent --add-port=10255/tcp. # firewall-cmd --permanent --add-port=30000-32767/tcp. # firewall-cmd --reload. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables.
U moet toevoegen Kubernetes repositories handmatig omdat ze niet vooraf zijn geïnstalleerd CentOS 7.
kat </etc/yum.repos.d/kubernetes.repo. [kubernetes] name=Kubernetes. baseurl= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. ingeschakeld=1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.
Nu de pakketrepo klaar is, kunt u doorgaan en installeren kubeadm en havenarbeider pakketjes.
# yum installeer kubeadm docker -y
Start en schakel beide services in.
# systemctl docker inschakelen. # systemctl start docker. # systemctl schakel kubelet in. # systemctl start kubelet.
We hebben nu het token nodig dat kubeadm init gegenereerd, om lid te worden van het cluster. U kunt het kopiëren en plakken naar uw knoop-1 en knoop-2 als je het ergens had gekopieerd.
# kubeadm join 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d4360d606dbc82314688425cd
Zoals gesuggereerd op de laatste regel, ga terug naar je hoofdknooppunt en controleer of werknemer knooppunt-1 en werknemer knooppunt-2 zijn lid geworden van het cluster met behulp van de volgende opdracht.
# kubectl krijgt knooppunten.
Als alle stappen met succes zijn uitgevoerd, zou u moeten zien: knoop-1 en knoop-2 in gereedstatus op de hoofdknooppunt.
Aanbevolen lezen: Nginx implementeren op een Kubernetes-cluster
Op dit moment hebben we met succes een installatie van a Kubernetes cluster aan Centos 7 en we hebben er met succes twee aan boord genomen worker-knooppunten. U kunt nu beginnen met het maken van uw pods en het implementeren van uw services.