Úvod
Malá virtuální prostředí, nazývaná kontejnery , se staly nepostradatelnými pro vývoj a správu aplikací.
Práce na aplikacích v izolovaném kontejneru neovlivňuje hostitelský operační systém. Kontejnery jsou efektivnější než virtuální stroje, protože nepotřebují svůj operační systém.
Kubernetes je platforma s otevřeným zdrojovým kódem, která vám pomáhá nasazovat, škálovat a spravovat zdroje ve více kontejnerech.
Postupujte podle tohoto návodu a naučte se, jak nainstalovat Kubernetes na systém CentOS 7.
Předpoklady
- Více serverů Linux se systémem CentOS 7 (1 hlavní uzel, více pracovních uzlů)
- Uživatelský účet v každém systému s funkcí sudo nebo oprávnění root
- mňam správce balíčků, který je standardně součástí
- Okno příkazového řádku/terminálu
Kroky pro instalaci Kubernetes na CentOS 7
Chcete-li používat Kubernetes, musíte nainstalovat motor kontejnerů . V současnosti je nejoblíbenějším řešením kontejnerů Docker . Docker musí být nainstalován na CentOS, obě na Master Node a Worker Node.
Krok 1:Konfigurace úložiště Kubernetes
Balíčky Kubernetes nejsou dostupné z oficiálních úložišť CentOS 7. Tento krok je třeba provést na hlavním uzlu a na každém pracovním uzlu, který plánujete použít pro nastavení kontejneru. Zadejte následující příkaz k načtení repozitářů Kubernetes.
cat <<EOF > /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 2:Nainstalujte kubelet , kubeadm a kubectl
Tyto 3 základní balíčky jsou nutné, abyste mohli používat Kubernetes. Nainstalujte následující balíčky na každý uzel:
sudo yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
Nyní jste úspěšně nainstalovali Kubernetes, včetně jeho nástrojů a základních balíčků.
Před nasazením clusteru se ujistěte, že jste nastavili názvy hostitelů, nakonfigurovali bránu firewall a nastavení jádra.
Krok 3:Nastavte název hostitele na uzly
Chcete-li každému z vašich uzlů přidělit jedinečný název hostitele, použijte tento příkaz:
sudo hostnamectl set-hostname master-node
nebo
sudo hostnamectl set-hostname worker-node1
V tomto příkladu se nyní hlavní uzel jmenuje master-node, zatímco pracovní uzel se jmenuje worker-node1.
Vytvořte záznam hostitele nebo záznam DNS pro překlad názvu hostitele pro všechny uzly:
sudo vi /etc/hosts
Se záznamem:
192.168.1.10 master.phoenixnap.com master-node
192.168.1.20 node1. phoenixnap.com node1 worker-node
Krok 4:Konfigurace brány firewall
Uzly, kontejnery a pody musí být schopny komunikovat napříč clusterem, aby mohly plnit své funkce. Firewall je v CentOS ve výchozím nastavení na front-endu povolen. Přidejte následující porty zadáním uvedených příkazů.
Na hlavním uzlu zadejte:
sudo firewall-cmd --permanent --add-port=6443/tcp
sudo firewall-cmd --permanent --add-port=2379-2380/tcp
sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10252/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
sudo firewall-cmd --reload
Pokaždé, když je přidán port, systém to potvrdí zprávou „úspěch“.
Do každého pracovního uzlu zadejte následující příkazy:
sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd --reload
Krok 5:Aktualizujte nastavení Iptables
Nastavte net.bridge.bridge-nf-call-iptables
na '1' ve vašem konfiguračním souboru sysctl. To zajišťuje, že pakety jsou správně zpracovávány tabulkami IP během filtrování a předávání portů.
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
Krok 6:Zakažte SELinux
Kontejnery potřebují přístup k hostitelskému souborovému systému. SELinux musí být nastaven do permisivního režimu, který účinně deaktivuje jeho bezpečnostní funkce.
K deaktivaci SELinuxu použijte následující příkazy:
sudo setenforce 0
sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config
Krok 7:Zakažte SWAP
Nakonec musíme vypnout SWAP, aby kubelet fungoval správně:
sudo sed -i '/swap/d' /etc/fstab
sudo swapoff -a
Jak nasadit cluster Kubernetes
Krok 1:Vytvořte cluster pomocí kubeadm
Inicializujte cluster provedením následujícího příkazu:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Proces může trvat několik minut v závislosti na rychlosti sítě. Jakmile tento příkaz skončí, zobrazí se zpráva o připojení kubeadm. Poznamenejte si záznam a použijte jej k připojení pracovních uzlů ke clusteru v pozdější fázi.
Krok 2:Správa clusteru jako běžný uživatel
Chcete-li začít používat cluster, musíte jej spustit jako běžný uživatel zadáním:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Krok 3:Nastavení sítě podů
Síť podů umožňuje uzlům v klastru komunikovat. Existuje několik dostupných možností sítě Kubernetes. Pomocí následujícího příkazu nainstalujte flanel síťový doplněk pod:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Pokud se rozhodnete použít flanel, upravte pravidla brány firewall tak, aby povolila provoz pro výchozí port flanelu 8285 .
Krok 4:Zkontrolujte stav clusteru
Zkontrolujte stav uzlů zadáním následujícího příkazu na hlavním serveru:
sudo kubectl get nodes
Jakmile je síť modulu nainstalována, můžete potvrdit, že funguje tak, že zkontrolujete, že modul CoreDNS běží, zadáním:
sudo kubectl get pods --all-namespaces
Krok 5:Připojte pracovní uzel ke clusteru
Jak je uvedeno v Kroku 1 , můžete použít kubeadm join
příkaz na každém pracovním uzlu pro jeho připojení ke clusteru.
kubeadm join --discovery-token cfgrty.1234567890jyrfgd --discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443
Nahraďte kódy kódy z hlavního serveru. Opakujte tuto akci pro každý pracovní uzel ve vašem clusteru.