kubernetes:mentes-helyreallitas
Összehasonlítás
A kiválasztott és az jelenlegi változat között az alábbi különbségek fordulnak elő:
| Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
| kubernetes:mentes-helyreallitas [2026/07/09 07:50] – riba.zoltan | kubernetes:mentes-helyreallitas [2026/07/09 18:57] (aktuális) – riba.zoltan | ||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| ====== Kubernetes mentés, helyreállítás ====== | ====== Kubernetes mentés, helyreállítás ====== | ||
| - | || Dokumentum kelte:||2026.07.09|| | + | |Dokumentum verzió|1.00| |
| - | ||Kubernetes verzió:||1.34|| | + | |Dokumentum kelte|2026.07.09| |
| + | |Kubernetes verzió|1.34 | ||
| ===== Control plane ===== | ===== Control plane ===== | ||
| - | Control | + | A control |
| ==== Konfiguráció mentése ==== | ==== Konfiguráció mentése ==== | ||
| Sor 33: | Sor 34: | ||
| === ETCD mentés === | === ETCD mentés === | ||
| - | Az ETCD adatbázisáról egyetlen control plane gépen kell snapshot-ot készíteni. A snapshot '' | + | Az ETCD adatbázisáról egyetlen control plane gépen kell snapshot-ot készíteni. A snapshot '' |
| < | < | ||
| Sor 44: | Sor 45: | ||
| API version: 3.6 | API version: 3.6 | ||
| </ | </ | ||
| + | |||
| + | ETCD snapshot készítése. | ||
| < | < | ||
| Sor 233: | Sor 236: | ||
| </ | </ | ||
| - | Amennyiben a fenti ellenőrzések sikeresek, akkor a klaszter control-plane gépei egészségesek. Nincs további teendő. | + | Amennyiben a fenti ellenőrzések sikeresek, akkor a klaszter control plane gépei egészségesek. Nincs további teendő. |
| - | ==== Egy control plane kiesés | + | ==== Egy control plane kiesése |
| - | Egy control-plane gép kiesését a klaszter probléma nélkül elviseli. Amennyiben a kiesés az ETCD leader-t érinti, akkor a két megmaradt tagból az egyik átveszi a leader szerepet. | + | Egy control plane gép kiesését a klaszter probléma nélkül elviseli. Amennyiben a kiesés az ETCD leader-t érinti, akkor a két megmaradt tagból az egyik átveszi a leader szerepet. |
| A leader szerepkörű ETCD tagot az alábbi utasítással kaphatjuk meg. | A leader szerepkörű ETCD tagot az alábbi utasítással kaphatjuk meg. | ||
| Sor 310: | Sor 313: | ||
| Újabb ellenőrzéssel meggyőződhetünk a RAFT indexek állapotáról. | Újabb ellenőrzéssel meggyőződhetünk a RAFT indexek állapotáról. | ||
| + | < | ||
| # etcdctl --endpoints=https:// | # etcdctl --endpoints=https:// | ||
| +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| Sor 318: | Sor 322: | ||
| | https:// | | https:// | ||
| +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | </ | ||
| + | |||
| === Tartós kiesés === | === Tartós kiesés === | ||
| + | Egy control plane node tartós kiesése esetén az ETCD tömöríti a RAFT naplókat, így azok alkalmazására már nincs lehetőség. Ilyenkor az alábbi lehetőségek vannak. | ||
| + | == Automatikus helyreállás == | ||
| + | Ebben az esetben automatikus helyreállás történik egy friss leader snapshot elküldésével. Ellenőrzéseken kívül nincs további teendő. | ||
| - | ==== Kettő control plane kiesés ==== | + | == Helyreállítás ugyanazon a gépen |
| - | ==== Három control plane kiesés ==== | + | A legtisztább eljárás, hogy a két megmaradó gép egyikén töröljük az ETCD tagok és a gépek listájából a gépet. Fontos, hogy a törlegdő gépen ne fusson a '' |
| + | Ellenőrizzük az ETCD tagok listáját. | ||
| - | ===== Worker ===== | + | < |
| + | # etcdctl --endpoints=https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | ID | STATUS | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | 1546a2d2ac61bd8d | started | kube02 | https:// | ||
| + | | 18e2fb4d02a30b2e | started | kube03 | https:// | ||
| + | | 20e2ce3086b2e277 | started | kube01 | https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | </ | ||
| + | Távolítsuk el a hibás tagot az azonosító megadásával (ID mező). | ||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | Member 18e2fb4d02a30b2e removed from cluster adeb3c2ca3243377 | ||
| + | </ | ||
| + | Újra ellenőrizzük az ETCD tagok listáját. | ||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | ID | STATUS | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | 1546a2d2ac61bd8d | started | kube02 | https:// | ||
| + | | 20e2ce3086b2e277 | started | kube01 | https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | </ | ||
| + | Ellenőrizzük a kubernetes gépek listáját. | ||
| + | < | ||
| + | # kubectl get nodes -l node-role.kubernetes.io/ | ||
| + | NAME | ||
| + | kube01 | ||
| + | kube02 | ||
| + | kube03 | ||
| + | </ | ||
| - | ===== ETCD környezet helyreállítása mentésből ===== | + | Töröljük a hibás gépet. |
| - | A környezet helyreállítása előtt győződjünk meg arról, hogy minden control-plane gépen telepítve van az etcdctl és az etcdutl program. | + | < |
| + | # kubectl delete node kube03 | ||
| + | node " | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük a gépek listáját. | ||
| < | < | ||
| - | # etcdctl version | + | # kubectl get nodes |
| - | etcdctl version: 3.6.12 | + | NAME |
| - | API version: 3.6 | + | kube01 |
| + | kube02 | ||
| + | </ | ||
| - | # etcdutl version | + | Generáljunk új tokent a gép csatlakoztatásához. |
| - | etcdutl version: 3.6.12 | + | |
| - | API version: 3.6 | + | < |
| + | # kubeadm token create --print-join-command | ||
| + | kubeadm join 192.168.110.160:6443 --token gef9jk.oafnicbu6hgwhhy7 --discovery-token-ca-cert-hash sha256: | ||
| + | |||
| + | # kubeadm init phase upload-certs --upload-certs | ||
| + | [upload-certs] Storing the certificates in Secret " | ||
| + | [upload-certs] Using certificate key: | ||
| + | 7aa4b634e4f0986669dbd19b972ec3c14a80e3ab1909a54d26ca58b0b7ec15ac | ||
| </ | </ | ||
| - | Megjegyzés: | + | Ha szeretnénk előállítani a control plane csatlakoztatásának utasítását, akkor ezt a megoldást használhatjuk. Az utasítás létrehozza a tokent és a tanúsítvány kulcsot. |
| - | ==== Mentés állapotának ellenőrzése ==== | + | < |
| + | # JOIN_CMD=" | ||
| + | # CERT_KEY=" | ||
| + | # echo " | ||
| + | kubeadm join 192.168.110.160: | ||
| + | </ | ||
| - | === Állapot gyors ellenőrzése === | + | A snapshot-ból helyreállított gépet indítsuk el oly módon, hogy a '' |
| + | |||
| + | '' | ||
| + | |||
| + | Az elindult rendszerben tudjuk | ||
| < | < | ||
| - | # etcdutl snapshot | + | # systemctl |
| - | +----------+----------+------------+------------+---------+ | + | ○ containerd.service |
| - | | | + | Loaded: masked (Reason: Unit containerd.service is masked.) |
| - | +----------+----------+------------+------------+---------+ | + | Active: inactive (dead) |
| - | | e1ac0dbb | 17572986 | 749 | 24 MB | 3.6.0 | | + | |
| - | +----------+----------+------------+------------+---------+ | + | ○ kubelet.service |
| + | | ||
| + | Drop-In: / | ||
| + | | ||
| + | | ||
| </ | </ | ||
| - | === Helyreállítási teszt === | + | Amennyiben snapshot-ból állt helyre a gép, futtassuk a '' |
| - | Győződjünk meg a mentés helyreállíthatóságáról. A mentést valamelyik control-plane gépen egy átmeneti könyvtárban állítsuk helyre. | + | < |
| + | # kubeadm reset | ||
| + | [reset] Reading configuration from the " | ||
| + | [reset] Use ' | ||
| + | ... | ||
| + | The reset process does not perform cleanup of CNI plugin configuration, | ||
| + | network filtering rules and kubeconfig files. | ||
| + | |||
| + | For information on how to perform this cleanup manually, please see: | ||
| + | https:// | ||
| + | </ | ||
| + | |||
| + | Töröljük a felesleges egyéb állományokat. | ||
| < | < | ||
| - | # rm -rf /tmp/etcd-restore-test | + | # rm -rf /etc/cni/net.d/* /root/.kube /var/lib/cni /var/lib/etcd /var/lib/kubelet |
| - | etcdutl snapshot restore | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| - | 2026-07-06T08: | + | |
| </ | </ | ||
| - | Amennyiben sikeresen lefut a helyreállítás, | + | Indítsuk újra a gépet. |
| - | ==== Jelenlegi állapot mentése ==== | + | < |
| + | # reboot | ||
| + | </ | ||
| - | Kubernetes objektumok állapotának mentése egy control-plane gépen. Erre a helyreállítás után az objektumok állapotának ellenőrzésénél lesz szükség. | + | A gép újraindulása után csatlakoztassuk a gépet |
| < | < | ||
| - | # mkdir -p /root/k8s-backup | + | # kubeadm join 192.168.110.160: |
| - | # kubectl get nodes -o wide > /root/k8s-backup/ | + | [preflight] Running pre-flight checks |
| - | # kubectl get pods -A -o wide > /root/k8s-backup/pods.before.txt | + | [preflight] Reading configuration from the " |
| - | # kubectl get ns > /root/k8s-backup/namespaces.before.txt | + | [preflight] Use ' |
| - | # kubectl get cm -A > /root/k8s-backup/configmaps.before.txt | + | ... |
| + | |||
| + | This node has joined the cluster and a new control plane instance was created: | ||
| + | |||
| + | * Certificate signing request was sent to apiserver and approval was received. | ||
| + | * The Kubelet was informed of the new secure connection details. | ||
| + | * Control plane label and taint were applied to the new node. | ||
| + | * The Kubernetes control plane instances scaled up. | ||
| + | * A new etcd member was added to the local/stacked etcd cluster. | ||
| + | |||
| + | To start administering your cluster from this node, you need to run the following as a regular user: | ||
| + | |||
| + | mkdir | ||
| + | sudo cp -i /etc/kubernetes/ | ||
| + | sudo chown $(id -u):$(id -g) $HOME/.kube/ | ||
| + | |||
| + | Run ' | ||
| </ | </ | ||
| - | Szolgáltatások tiltása és leállítása | + | Állítsuk be a kubernetes konfigurációt a root felhasználónak. |
| + | |||
| + | < | ||
| + | # rm -rf / | ||
| + | # mkdir -p $HOME/ | ||
| + | # sudo cp -i / | ||
| + | # sudo chown $(id -u):$(id -g) $HOME/ | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük a klaszter állapotát. | ||
| + | |||
| + | < | ||
| + | # kubectl get nodes -l node-role.kubernetes.io/ | ||
| + | NAME | ||
| + | kube01 | ||
| + | kube02 | ||
| + | kube03 | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | ID | STATUS | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | 1546a2d2ac61bd8d | started | kube02 | https:// | ||
| + | | 20e2ce3086b2e277 | started | kube01 | https:// | ||
| + | | 23fb75a79460e3c9 | started | kube03 | https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük az ETCD endpointok állapotát. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | | ENDPOINT | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | | https:// | ||
| + | | https:// | ||
| + | | https:// | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | </ | ||
| + | |||
| + | A helyreállítás sikeres. | ||
| + | |||
| + | ==== Két control | ||
| + | |||
| + | Két control plane gép kiesése esetén a kunernetes klaszter elveszíti a kvórumot. Ebben a helyzetben a worker gépeken futó pod-ok a legutolsó állapotukban maradnak. Nem működik a HPA. Nem lehet módosítani a konfiguráción. Ilyen esetben a control | ||
| + | |||
| + | === Rövid idejű kiesés === | ||
| + | |||
| + | Rövid iejű kiesés esetén amennyiben a control plane gépek fájlrendszere nem sérül, akkor a gépek újraindulásakor megtörténik a szinkron. Ilyen esetben ellenőrizni kell a klaszter állapotot. | ||
| + | |||
| + | A következő példában két gép rövid időre leáll (pl.: tápellátás hiba miatt). Ebben az esetben a megszokott ellenőrzési műveletek nem futnak, mivel nincs stabil klaszter állapot. | ||
| + | |||
| + | ETCD endpoint állapot vizsgálata. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | {" | ||
| + | Error: context deadline exceeded | ||
| + | </ | ||
| + | |||
| + | A gépek listázása időtúllépés miatt sikertelen, vagy érvénytelen választ kap. | ||
| + | |||
| + | < | ||
| + | # kubectl get nodes | ||
| + | Error from server (Forbidden): | ||
| + | </ | ||
| + | |||
| + | Újra kell indítani a kiesett gépeket. Ellenőrizzük a gépek elérhetőségét. | ||
| + | |||
| + | < | ||
| + | [root@kube01 ~]# ping -c 5 kube02 | ||
| + | PING kube02 (192.168.110.162) 56(84) bytes of data. | ||
| + | 64 bytes from kube02 (192.168.110.162): | ||
| + | 64 bytes from kube02 (192.168.110.162): | ||
| + | 64 bytes from kube02 (192.168.110.162): | ||
| + | 64 bytes from kube02 (192.168.110.162): | ||
| + | 64 bytes from kube02 (192.168.110.162): | ||
| + | |||
| + | --- kube02 ping statistics --- | ||
| + | 5 packets transmitted, | ||
| + | rtt min/ | ||
| + | [root@kube01 ~]# ping -c 5 kube03 | ||
| + | PING kube03 (192.168.110.163) 56(84) bytes of data. | ||
| + | 64 bytes from kube03 (192.168.110.163): | ||
| + | 64 bytes from kube03 (192.168.110.163): | ||
| + | 64 bytes from kube03 (192.168.110.163): | ||
| + | 64 bytes from kube03 (192.168.110.163): | ||
| + | 64 bytes from kube03 (192.168.110.163): | ||
| + | |||
| + | --- kube03 ping statistics --- | ||
| + | 5 packets transmitted, | ||
| + | rtt min/ | ||
| + | </ | ||
| + | |||
| + | Ha minden gép helyreállt, | ||
| + | |||
| + | Control plane gépek listája. | ||
| + | |||
| + | < | ||
| + | # kubectl get nodes -l node-role.kubernetes.io/ | ||
| + | NAME | ||
| + | kube01 | ||
| + | kube02 | ||
| + | kube03 | ||
| + | </ | ||
| + | |||
| + | ETCD klaszter tagok listála. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | ID | STATUS | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | 1546a2d2ac61bd8d | started | kube02 | https:// | ||
| + | | 20e2ce3086b2e277 | started | kube01 | https:// | ||
| + | | 23fb75a79460e3c9 | started | kube03 | https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | </ | ||
| + | |||
| + | ETCD endpoint állapot ellenőrzése. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | | ENDPOINT | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | | https:// | ||
| + | | https:// | ||
| + | | https:// | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | </ | ||
| + | |||
| + | És egy utolsó ellenőrzés. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | | ENDPOINT | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | | https:// | ||
| + | | https:// | ||
| + | | https:// | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | </ | ||
| + | |||
| + | A worker gépek állapota eltérhet a control plane gépekben tárolt állapottól. Ebben az esetben érdemes minden worker gépet újraindítani. | ||
| + | |||
| + | === Végleges kiesés === | ||
| + | |||
| + | Amennyiben a két kiesett gép többé már nem érhető el, akkor a meglevő node-ból egy gépes klasztert kell készíteni, | ||
| + | |||
| + | |||
| + | Ellenőrizzük aze etcd állapotát. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | {" | ||
| + | Failed to get the status of endpoint https:// | ||
| + | {" | ||
| + | Failed to get the status of endpoint https:// | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+-----------------------+--------------------------+-------------------+ | ||
| + | | ENDPOINT | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+-----------------------+--------------------------+-------------------+ | ||
| + | | https:// | ||
| + | +---------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+-----------------------+--------------------------+-------------------+ | ||
| + | </ | ||
| + | |||
| + | Amennyiben működik az etcd, akkor snapshot-ot kell készíteni az adatbázisról. | ||
| + | |||
| + | < | ||
| + | # etcdctl snapshot save / | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | Snapshot saved at / | ||
| + | Server version 3.6.0 | ||
| + | </ | ||
| + | |||
| + | Le kell tiltani és le kell állítani a '' | ||
| < | < | ||
| - | # systemctl disable kubelet containerd | ||
| # systemctl stop kubelet containerd | # systemctl stop kubelet containerd | ||
| - | # systemctl | + | # systemctl |
| + | Removed '/ | ||
| + | Removed '/ | ||
| + | </ | ||
| + | |||
| + | Újra kell indítani a gépet. | ||
| < | < | ||
| + | # reboot | ||
| + | </ | ||
| - | Korábbi környezet mentése. | + | Újraindítás után a gépen nem szabad futnia a szolgáltatásoknak. |
| < | < | ||
| - | # mkdir -p / | + | # systemctl is-active containerd kubelet |
| - | # mkdir -p / | + | inactive |
| - | # mkdir -p / | + | inactive |
| - | # cp -a / | + | |
| - | # cp -a / | + | |
| - | # cp -a / | + | |
| </ | </ | ||
| + | A snapshot helyreállítását el kell végezni egy másik könyvtárban ''/ | ||
| + | |||
| + | < | ||
| + | # etcdutl snapshot restore / | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | 2026-07-09T13: | ||
| + | </ | ||
| + | |||
| + | Sikeres helyreállítás után a korábbi könyvtárat el kell mozgatni. | ||
| + | |||
| + | < | ||
| + | # mv / | ||
| + | </ | ||
| + | |||
| + | A helyreállított snapshot könyvtárat a helyére kell másolni. | ||
| + | |||
| + | < | ||
| + | # cp -a / | ||
| + | </ | ||
| + | |||
| + | Újra engedélyezni kell a szolgáltatásokat. | ||
| + | |||
| + | < | ||
| + | # systemctl enable kubelet containerd | ||
| + | Created symlink '/ | ||
| + | Created symlink '/ | ||
| + | </ | ||
| + | |||
| + | Újra kell indítani a gépet. | ||
| + | |||
| + | < | ||
| + | # reboot | ||
| + | </ | ||
| + | |||
| + | Az újraindítást követően a control plane elindul. Az indulást követően ellenőrizzük a klaszer állapotát. | ||
| + | |||
| + | Control plane gépek listája. | ||
| + | |||
| + | < | ||
| + | # kubectl get nodes -l node-role.kubernetes.io/ | ||
| + | NAME | ||
| + | kube01 | ||
| + | kube02 | ||
| + | kube03 | ||
| + | </ | ||
| + | |||
| + | ETCD endpoint lista. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +------------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | | ENDPOINT | ||
| + | +------------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | | https:// | ||
| + | +------------------------+------------------+---------+-----------------+---------+--------+-----------------------+--------+-----------+------------+-----------+------------+--------------------+--------+--------------------------+-------------------+ | ||
| + | </ | ||
| + | |||
| + | ETCD tagok listája. | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | ID | STATUS | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | | 234c167f7d0f641f | started | kube01 | https:// | ||
| + | +------------------+---------+--------+------------------------------+------------------------------+------------+ | ||
| + | </ | ||
| + | |||
| + | Az etcd adatbázisa rendben. Új példány indult. | ||
| + | |||
| + | Töröljük a két hiányzó gépet. | ||
| + | |||
| + | < | ||
| + | # kubectl delete node kube02 | ||
| + | node " | ||
| + | # kubectl delete node kube03 | ||
| + | node " | ||
| + | </ | ||
| + | |||
| + | Hozzunk létre tokent és tanúsítvány kulcsot. | ||
| + | |||
| + | < | ||
| + | # JOIN_CMD=" | ||
| + | # CERT_KEY=" | ||
| + | # echo " | ||
| + | kubeadm join 192.168.110.160: | ||
| + | </ | ||
| + | |||
| + | Két új control plane gép telepítése után csatlakoztatjuk a gépeket a klaszterhez. | ||
| + | |||
| + | < | ||
| + | kubeadm join 192.168.110.160: | ||
| + | [preflight] Running pre-flight checks | ||
| + | [preflight] Reading configuration from the " | ||
| + | [preflight] Use ' | ||
| + | ... | ||
| + | |||
| + | This node has joined the cluster and a new control plane instance was created: | ||
| + | |||
| + | * Certificate signing request was sent to apiserver and approval was received. | ||
| + | * The Kubelet was informed of the new secure connection details. | ||
| + | * Control plane label and taint were applied to the new node. | ||
| + | * The Kubernetes control plane instances scaled up. | ||
| + | * A new etcd member was added to the local/ | ||
| + | |||
| + | To start administering your cluster from this node, you need to run the following as a regular user: | ||
| + | |||
| + | mkdir -p $HOME/.kube | ||
| + | sudo cp -i / | ||
| + | sudo chown $(id -u):$(id -g) $HOME/ | ||
| + | |||
| + | Run ' | ||
| + | </ | ||
| + | |||
| + | Mindkét gépen állítsuk be a kubernetes konfigurációt a root felhasználónak. | ||
| + | |||
| + | < | ||
| + | # rm -rf / | ||
| + | # mkdir -p $HOME/.kube | ||
| + | # sudo cp -i / | ||
| + | # sudo chown $(id -u):$(id -g) $HOME/ | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük a gépeket. | ||
| + | |||
| + | < | ||
| + | # kubectl get nodes -l node-role.kubernetes.io/ | ||
| + | NAME | ||
| + | kube01 | ||
| + | kube02 | ||
| + | kube03 | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | | ENDPOINT | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | | https:// | ||
| + | | https:// | ||
| + | | https:// | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | </ | ||
| + | |||
| + | A helyreállítás sikeres. | ||
| + | |||
| + | ==== Három control plane kiesése ==== | ||
| + | |||
| + | Három control plane gép elvesztésekor a legegyszerűbb megoldás három azonos nevű és IP című gép telepítése. A telepítés után vissza kell állítani a konfiguráció mentéseket a megfelelő gépeken. | ||
| + | |||
| + | Mindhárom gépre be kell másolni a mentéseket a ''/ | ||
| + | |||
| + | < | ||
| + | # cd / | ||
| + | # tar -xzf / | ||
| + | </ | ||
| + | |||
| + | Ezzel a konfiguráció helyreállítása megtörtént. | ||
| + | |||
| + | ETCD snapshot helyreállításához mindhárom gépre másoljuk be a snapshot állományt a ''/ | ||
| + | |||
| + | < | ||
| + | # (kube01) md5sum / | ||
| + | 6a66ab3ffa291dcb9d199817858b5617 / | ||
| + | |||
| + | # (kube02) md5sum / | ||
| + | 6a66ab3ffa291dcb9d199817858b5617 / | ||
| + | |||
| + | # (kube03) md5sum / | ||
| + | 6a66ab3ffa291dcb9d199817858b5617 / | ||
| + | </ | ||
| + | |||
| + | Gépenként állítsuk helyre a snapshot tartalmát. | ||
| + | |||
| + | == kube01 == | ||
| + | |||
| + | < | ||
| + | etcdutl snapshot restore / | ||
| + | </ | ||
| + | |||
| + | == kube02 == | ||
| + | |||
| + | < | ||
| + | etcdutl snapshot restore / | ||
| + | </ | ||
| + | |||
| + | == kube03 == | ||
| + | |||
| + | < | ||
| + | etcdutl snapshot restore / | ||
| + | </ | ||
| + | |||
| + | Jogosultságok beállítása a ''/ | ||
| + | |||
| + | < | ||
| + | # chown -R root:root / | ||
| + | </ | ||
| + | |||
| + | Minden gépen engedélyezni kell a '' | ||
| + | |||
| + | < | ||
| + | # systemctl enable containerd kubelet | ||
| + | Created symlink '/ | ||
| + | Created symlink '/ | ||
| + | </ | ||
| + | |||
| + | Újra kell indítani a control plane gépeket. | ||
| + | |||
| + | < | ||
| + | # reboot | ||
| + | </ | ||
| + | |||
| + | Amikor a gépek elindultak ellenőrizni kell a k8s klaszter állapotát. | ||
| + | |||
| + | < | ||
| + | # kubectl get nodes -l node-role.kubernetes.io/ | ||
| + | NAME | ||
| + | kube01 | ||
| + | kube02 | ||
| + | kube03 | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # etcdctl --endpoints=https:// | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | | ENDPOINT | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | | https:// | ||
| + | | https:// | ||
| + | | https:// | ||
| + | +---------------------+--------+--------------+-------+ | ||
| + | </ | ||
| + | |||
| + | A helyreállítás sikeres. | ||
| + | |||
| + | ===== Worker ===== | ||
| + | |||
| + | ==== Új worker gép létrehozása ==== | ||
| + | |||
| + | A worker gépek nevei és az IP beállítások egyezzenek meg a korábbi gép azonosítóival. | ||
| + | |||
| + | A telepítés után valamelyik control plane gépen futtassuk a nem működő gép törlését. | ||
| + | |||
| + | < | ||
| + | # kubectl delete node kube04 | ||
| + | node " | ||
| + | </ | ||
| + | |||
| + | A törlés után hozzunk létre új tokent a gép csatlakoztatásához. | ||
| + | |||
| + | < | ||
| + | # kubeadm token create --print-join-command | ||
| + | kubeadm join 192.168.110.160: | ||
| + | </ | ||
| + | |||
| + | Csatlakoztassuk az új worker gépet a klaszterhez. | ||
| + | |||
| + | < | ||
| + | # kubeadm join 192.168.110.160: | ||
| + | [preflight] Running pre-flight checks | ||
| + | [preflight] Reading configuration from the " | ||
| + | [preflight] Use ' | ||
| + | ... | ||
| + | |||
| + | This node has joined the cluster: | ||
| + | * Certificate signing request was sent to apiserver and a response was received. | ||
| + | * The Kubelet was informed of the new secure connection details. | ||
| + | |||
| + | Run ' | ||
| + | </ | ||
| + | Minden további műveletet a telepítési leírás szerint kell végrehajtani. | ||
kubernetes/mentes-helyreallitas.1783583408.txt.gz · legutóbbi módosítás: – Szerkesztő: riba.zoltan
