Kubernetes je klastr a orchestrování motor pro dokovací kontejnery. Jinými slovy Kubernetes je software nebo nástroj s otevřeným zdrojovým kódem, který se používá k orchestraci a správě kontejnerů dockerů v prostředí clusteru. Kubernetes je také známý jako k8s a byl vyvinut společností Google a darován „Cloud Native Computing Foundation“
V nastavení Kubernetes máme jeden hlavní uzel a více uzlů. Uzly clusteru jsou známé jako pracovní uzel nebo Minion. Z hlavního uzlu spravujeme cluster a jeho uzly pomocí ‘kubeadm ‘ a ‘kubectl ‘ příkaz.
Kubernetes lze nainstalovat a nasadit pomocí následujících metod:
- Minikube (je to cluster kubernetes s jedním uzlem)
- Kops (nastavení kubernetes s více uzly do AWS)
- Kubeadm (multiuzlový klastr v našich vlastních prostorách)
V tomto článku nainstalujeme nejnovější verzi Kubernetes 1.7 na CentOS 7 / RHEL 7 pomocí nástroje kubeadm. V mém nastavení beru tři servery CentOS 7 s minimální instalací. Jeden server bude fungovat jako hlavní uzel a zbývající dva servery budou podřízené nebo pracovní uzly.
Na hlavní uzel budou nainstalovány následující součásti
- Server API – Poskytuje kubernetes API pomocí Jason / Yaml přes http, stavy objektů API jsou uloženy v etcd
- Plánovač – Jedná se o program na hlavním uzlu, který provádí úkoly plánování, jako je spouštění kontejnerů v pracovních uzlech na základě dostupnosti zdrojů
- Správce kontroléru – Hlavním úkolem správce kontroléru je monitorovat replikační kontroléry a vytvářet moduly pro udržení požadovaného stavu.
- etcd – Jedná se o databázi párů klíčových hodnot. Ukládá konfigurační data clusteru a stavu clusteru.
- Nástroj Kubectl – Je to nástroj příkazového řádku, který se připojuje k serveru API na portu 6443. Používají ho správci k vytváření modulů, služeb atd.
Na pracovních uzlech budou nainstalovány následující součásti
- Kubelet – Je to agent, který běží na každém pracovním uzlu, připojuje se k dockeru a stará se o vytváření, spouštění a mazání kontejnerů.
- Kube-Proxy – Směruje provoz do příslušných kontejnerů na základě IP adresy a čísla portu příchozího požadavku. Jinými slovy můžeme říci, že se používá pro překlad portů.
- Pod – Pod lze definovat jako vícevrstvou nebo skupinu kontejnerů, které jsou nasazeny na jednom pracovním uzlu nebo hostiteli dockeru.
Kroky instalace Kubernetes 1.7 na CentOS 7 / RHEL 7
Na hlavním uzlu proveďte následující kroky
Krok 1:Zakažte SELinux a nastavte pravidla brány firewall
Přihlaste se ke svému hlavnímu uzlu kubernetes a pomocí následujících příkazů nastavte název hostitele a deaktivujte selinux
~]# hostnamectl set-hostname 'k8s-master'~]# exec bash~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' / etc/sysconfig/selinux
Nastavte následující pravidla brány firewall.
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=6443/tcp[[email protected] ~]# firewall-cmd --permanent --add-port=2379-2380/ tcp[[chráněno e-mailem] ~]# firewall-cmd --permanent --add-port=10250/tcp[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=10251/tcp[[e-mail protected] ~]# firewall-cmd --permanent --add-port=10252/tcp[[e-mail protected] ~]# firewall-cmd --permanent --add-port=10255/tcp[[email protected] ~] # firewall-cmd --reload[[email protected] ~]# modprobe br_netfilter[[email protected] ~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables
Poznámka: V případě, že nemáte svůj vlastní DNS server, aktualizujte soubor /etc/hosts na hlavním a pracovním uzlu
192.168.1.30 k8s-master192.168.1.40 worker-node1192.168.1.50 worker-node2
Zakažte Swap ve všech uzlech pomocí „swapoff -a ” a odstraňte nebo zakomentujte odkládací oddíly nebo odkládací soubor ze souboru fstab
Krok 2:Konfigurace úložiště Kubernetes
Balíčky Kubernetes nejsou dostupné ve výchozích úložištích CentOS 7 a RHEL 7. Ke konfiguraci úložišť balíčků použijte příkaz níže.
[[e-mail chráněný] ~]# kočka </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 [[chráněno e-mailem] ~]#
Krok 3:Nainstalujte Kubeadm a Docker
Jakmile jsou úložiště balíčků nakonfigurována, spusťte příkaz beneath a nainstalujte balíčky kubeadm a docker.
[[email protected] ~]# yum install kubeadm docker -y
Spusťte a povolte službu kubectl a docker
[[e-mail chráněno] ~]# systemctl restart docker &&systemctl povolit docker[[email protected] ~]# systemctl restart kubelet &&systemctl povolit kubelet
Krok 4:Inicializujte Kubernetes Master pomocí „kubeadm init“
Spusťte níže uvedený příkaz pro inicializaci a nastavení kubernetes master.
[[email protected] ~]# init kubeadm
Výstup výše uvedeného příkazu by byl něco jako níže
Jak můžeme vidět na výstupu, kubernetes master byl úspěšně inicializován. Chcete-li použít cluster jako uživatel root, spusťte níže uvedené příkazy.
[[chráněn e-mailem] ~]# mkdir -p $HOME/.kube[[chráněn e-mailem] ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[[chráněn e-mailem] ~]# chown $(id -u):$(id -g) $HOME/.kube/config
Krok 5:Nasaďte síť pod do clusteru
Zkuste spustit níže uvedené příkazy, abyste získali stav clusteru a podů.
Aby byl stav clusteru připraven a stav kube-dns spuštěn, nasaďte síť pod tak, aby kontejnery různých hostitelů spolu komunikovaly. Síť POD je překryvná síť mezi pracovními uzly.
Spusťte příkaz beneath pro nasazení sítě.
[[e-mail chráněný] ~]# export kubever=$(verze kubectl | base64 | tr -d '\n')[[e-mail chráněn] ~]# kubectl použít -f "https://cloud.weave. works/k8s/net?k8s-version=$kubever"serviceaccount "weave-net" createdclusterrole "weave-net" createdclusterrolebinding "weave-net" createddaemonset "weave-net" created[[email protected] ~]#
Nyní spusťte následující příkazy k ověření stavu
Nyní přidejte pracovní uzly do hlavních uzlů Kubernetes.
Proveďte následující kroky na každém pracovním uzlu
Krok 1:Zakažte SELinux a nakonfigurujte pravidla brány firewall na obou uzlech
Před deaktivací SELinux nastavte název hostitele na obou uzlech na ‚pracovní-uzel1‘ a ‚pracovní-uzel2‘
~]# setenforce 0~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux~]# firewall-cmd --permanent --add -port=10250/tcp~]# firewall-cmd --permanent --add-port=10255/tcp~]# firewall-cmd --permanent --add-port=30000-32767/tcp~]# firewall-cmd --permanent --add-port=6783/tcp~]# firewall-cmd --reload~]# echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables
Krok 2:Konfigurace úložiště Kubernetes na obou pracovních uzlech
~]# kočka </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
Krok 3:Nainstalujte balíček kubeadm a docker na oba uzly
[[e-mail chráněný] ~]# yum instalace kubeadm docker -y[[email protected] ~]# yum instalace kubeadm docker -y
Spusťte a povolte službu docker
[[e-mail chráněno] ~]# systemctl restart docker &&systemctl povolit ukotvitelný panel[[email protected] ~]# systemctl restart docker &&systemctl povolit ukotvitelný panel
Krok 4:Nyní připojte pracovní uzly k hlavnímu uzlu
Pro připojení pracovních uzlů k hlavnímu uzlu je vyžadován token. Kdykoli se inicializuje kubernetes master, pak ve výstupu dostaneme příkaz a token. Zkopírujte tento příkaz a spusťte jej na obou uzlech.
[[email protected] ~]# připojení ke kubeadm --token a3bd48.1bc42347c3b35851 192.168.1.30:6443
Výstup výše uvedeného příkazu by byl něco jako níže
[[email protected] ~]# připojení ke kubeadm --token a3bd48.1bc42347c3b35851 192.168.1.30:6443
Výstup by byl něco jako níže
Nyní ověřte stav uzlů z hlavního uzlu pomocí příkazu kubectl
Jak vidíme, hlavní a pracovní uzly jsou ve stavu připravenosti. Z toho vyplývá, že kubernetes 1.7 byl úspěšně nainstalován a také jsme úspěšně spojili dva pracovní uzly. Nyní můžeme vytvářet moduly a služby.
Podělte se o své názory a komentáře pro případ, že vám tento článek pomůže nainstalovat nejnovější verzi kubernetes 1.7