Kubernetes je open source platforma pro správu kontejnerových aplikací vyvinutých společností Google. Umožňuje vám spravovat, škálovat a automaticky nasazovat vaše kontejnerizované aplikace v clusterovém prostředí. S Kubernetes můžeme organizovat naše kontejnery na více hostitelích, škálovat kontejnerové aplikace se všemi prostředky za chodu a mít centralizované prostředí pro správu kontejnerů.
V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat a nakonfigurovat Kubernetes na CentOS 7. Budeme používat 1 server 'k8s-master' jako Kubernetes Host Master a 2 servery jako uzel Kubernetes, 'node01' a 'node02'.
Předpoklady
- 3 servery CentOS 7
- 10.0.15.10 k8s-master
- 10.0.15.21 uzel01
- 10.0.15.22 uzel02
- Oprávnění uživatele root
Co uděláme?
- Instalace Kubernetes
- Inicializace clusteru Kubernetes
- Přidání node01 a node02 do Clusteru
- Testování – vytvoření prvního modulu
Krok 1 – Instalace Kubernetes
V tomto prvním kroku připravíme tyto 3 servery pro instalaci Kubernetes, takže spusťte všechny příkazy na hlavním a uzlovém serveru.
Všechny servery připravíme na instalaci Kubernetes změnou stávající konfigurace na serverech a také instalací některých balíčků, včetně docker-ce a samotného kubernetes.
- Konfigurace hostitelů
Upravte soubor hostitelů na všech serverech pomocí editoru vim.
vim /etc/hosts
Níže vložte seznam hostitelů.
10.0.15.10 k8s-master
10.0.15.21 node01
10.0.15.22 node02
Uložte a ukončete.
- Zakázat SELinux
V tomto tutoriálu se nebudeme zabývat konfigurací SELinux pro Docker, takže ji deaktivujeme.
Spuštěním příkazu níže deaktivujte SELinux.
setenforce 0
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
- Povolit modul jádra br_netfilter
Pro instalaci kubernetes je vyžadován modul br_netfilter. Povolte tento modul jádra, aby pakety procházející mostem byly zpracovány pomocí iptables pro filtrování a přesměrování portů a kubernetes pody napříč clusterem spolu mohly komunikovat.
Spuštěním příkazu níže povolte modul jádra br_netfilter.
modprobe br_netfilter
echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables
- Zakázat SWAP
Zakažte instalaci SWAP pro kubernetes spuštěním následujících příkazů.
swapoff -a
A poté upravte soubor '/etc/fstab'.
vim /etc/fstab
Zakomentujte UUID swap line, jak je uvedeno níže.
- Instalace Docker CE
Nainstalujte nejnovější verzi Docker-ce z úložiště dockerů.
Nainstalujte závislosti balíčku pro docker-ce.
yum install -y yum-utils device-mapper-persistent-data lvm2
Přidejte úložiště dockeru do systému a nainstalujte docker-ce pomocí příkazu yum.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
Počkejte na instalaci docker-ce.
- Nainstalovat Kubernetes
Přidejte úložiště kubernetes do systému centos 7 spuštěním následujícího příkazu.
cat </etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google. com/yum/repos/kubernetes-el7-x86_64
enabled=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
Nyní nainstalujte balíčky kubernetes kubeadm, kubelet a kubectl pomocí příkazu yum níže.
yum install -y kubelet kubeadm kubectl
Po dokončení instalace restartujte všechny tyto servery.
restart sudo
Znovu se přihlaste k serveru a spusťte služby, docker a kubelet.
systemctl spustit docker &&systemctl povolit docker
systemctl spustit kubelet &&systemctl povolit kubelet
- Změňte ovladač cgroup
Musíme se ujistit, že docker-ce a kubernetes používají stejnou 'cgroup'.
Zkontrolujte docker cgroup pomocí příkazu docker info.
informace o ukotvovači | grep -i cgroup
A vidíte, že docker používá 'cgroupfs ' jako cgroup-driver.
Nyní spusťte příkaz níže a změňte ovladač kuberetes cgroup-driver na 'cgroupfs'.
sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Znovu načtěte systém systemd a restartujte službu kubelet.
systemctl daemon-reload
systemctl restart kubelet
Nyní jsme připraveni nakonfigurovat Kubernetes Cluster.
Krok 2 – Inicializace clusteru Kubernetes
V tomto kroku inicializujeme konfiguraci hlavního clusteru kubernetes.
Přesuňte shell na hlavní server 'k8s-master' a spusťte příkaz níže pro nastavení hlavního serveru kubernetes.
kubeadm init --apiserver-advertise-address=10.0.15.10 --pod-network-cidr=10.244.0.0/16
Poznámka:
--apiserver-advertise-address =určuje, na jaké IP adrese má Kubernetes inzerovat svůj API server.
--pod-network-cidr =zadejte rozsah IP adres pro síť pod. Používáme virtuální síť 'flanel'. Pokud chcete použít jinou síť podů, jako je weave-net nebo calico, změňte IP adresu rozsahu.
Po dokončení inicializace Kubernetes získáte výsledek, jak je uvedeno níže.
Poznámka:
Zkopírujte 'kubeadm join ... ... ... ' do vašeho textového editoru. Příkaz bude použit k registraci nových uzlů do clusteru kubernetes.
Nyní, abychom mohli používat Kubernetes, musíme spustit některé příkazy jako ve výsledku.
Vytvořte nový konfigurační adresář '.kube' a zkopírujte konfiguraci 'admin.conf'.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Dále nasaďte flanelovou síť do clusteru kubernetes pomocí příkazu kubectl.
kubectl použít -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Flanelová síť byla nasazena do clusteru Kubernetes.
Počkejte minutu a poté zkontrolujte uzel a pody kubernetes pomocí příkazů níže.
kubectl získat uzly
kubectl získat pody --all-namespaces
Získáte, že uzel „k8s-master“ běží jako „hlavní“ cluster se stavem „připraven“ a získáte všechny moduly, které jsou pro cluster potřeba, včetně „kube-flannel-ds“ pro síťový modul. konfigurace.
Ujistěte se, že stav všech modulů kube-system je „běžící“.
Inicializace a konfigurace hlavního clusteru Kubernetes byla dokončena.
Krok 3 – Přidání node01 a node02 do clusteru
V tomto kroku přidáme node01 a node02, abychom se připojili ke clusteru 'k8s'.
Připojte se k serveru node01 a spusťte příkaz kubeadm join, jak jsme zkopírovali nahoře.
připojit se ke kubeadm 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac86d2907>4e7d55e1f5ac86d2907
Připojte se k serveru node02 a spusťte příkaz kubeadm join, jak jsme zkopírovali nahoře.
připojit se ke kubeadm 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac86d2907>4e7d55e1f5ac86d2907
Počkejte několik minut a vraťte se na hlavní clusterový server 'k8s-master' zkontrolujte uzly a pody pomocí následujícího příkazu.
kubectl získat uzly
kubectl získat pody --all-namespacesNyní získáte node01 a node02 byl přidán do clusteru se stavem 'připraveno'.
node01 a node02 byly přidány do clusteru kubernetes.
Krok 4 – Testování Vytvoření prvního podu
V tomto kroku provedeme test nasazením Nginx pod do clusteru kubernetes. Pod je skupina jednoho nebo více kontejnerů se sdíleným úložištěm a sítí, které běží pod Kubernetes. Pod obsahuje jeden nebo více kontejnerů, jako je kontejner Docker.
Přihlaste se k serveru 'k8s-master' a vytvořte nové nasazení s názvem 'nginx' pomocí příkazu kubectl.
kubectl vytvořit nasazení nginx --image=nginxChcete-li zobrazit podrobnosti o specifikaci nasazení 'nginx', spusťte následující příkaz.
kubectl popisuje nasazení nginxA získáte specifikaci nasazení nginx pod.
Dále vystavíme pod nginx přístupný přes internet. A k tomu potřebujeme vytvořit novou službu NodePort.
Spusťte níže uvedený příkaz kubectl.
kubectl vytvořit servisní nodeport nginx --tcp=80:80
Ujistěte se, že nedošlo k chybě. Nyní zkontrolujte nodeport a IP služby nginx pomocí příkazu kubectl níže.
kubectl získat pods
kubectl získat svc
Nyní zjistíte, že modul nginx nyní běží pod IP adresou clusteru '10.160.60.38' port 80 a hlavní IP adresou uzlu '10.0.15.x' na portu '30691'.
Ze serveru 'k8s-master' spusťte níže uvedený příkaz curl.
curl node01:30691
curl node02:30691
Nginx Pod byl nyní nasazen pod clusterem Kubernetes a je přístupný přes internet.
Nyní přistupujte z webového prohlížeče.
http://10.0.15.10:30691/
A získáte výchozí stránku Nginx.
Na serveru node02 – http://10.0.15.11:30691/
Instalace a konfigurace clusteru Kubernetes na CentOS 7 byla úspěšně dokončena.
Jak nainstalovat BookStack Documentation Wiki na CentOS 7 Jak nainstalovat software Taiga.io Project Management na CentOS 7Cent OS