kubernetes:обслуживание_кластера
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
kubernetes:обслуживание_кластера [2022/02/14 15:25] – root | kubernetes:обслуживание_кластера [2024/12/21 19:00] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Обслуживание кластера ====== | + | ====== |
+ | ===== Освобождение нод от нагрузки | ||
Выгнать поды с ноды и запретить планирование новых подов: | Выгнать поды с ноды и запретить планирование новых подов: | ||
<code bash> kubectl drain node-1 </ | <code bash> kubectl drain node-1 </ | ||
Строка 6: | Строка 7: | ||
Запретить планирование новых подов на ноду: | Запретить планирование новых подов на ноду: | ||
<code bash> kubectl cordon node-2 </ | <code bash> kubectl cordon node-2 </ | ||
+ | ===== Обновление кластера ===== | ||
+ | * Поддерживаются последние 3 версии kubernetes. | ||
+ | * Компоненты kubernetes могут быть разных версий: | ||
+ | * kube-apiserver - **X** | ||
+ | * Control-manager и kube-scheduler - **X-1** | ||
+ | * kubelet и kube-proxy - **X-2** | ||
+ | |||
+ | 1. Обновление kubeadm | ||
+ | <code bash> | ||
+ | apt upgrade -y kubeadm=1.12.0-00 | ||
+ | kubeadm upgrade plan | ||
+ | kubeadm upgrade apply v1.12.0 | ||
+ | </ | ||
+ | 2. Обновление kubelet на мастере | ||
+ | <code bash> | ||
+ | kubectl drain node master-01 --ignore-daemonsets | ||
+ | apt-mark unhold kubelet kubectl | ||
+ | apt upgrade -y kubectl=1.12.0-00 | ||
+ | apt upgrade -y kubelet=1.12.0-00 | ||
+ | apt-mark hold kubelet kubectl | ||
+ | systemctl daemon-reload | ||
+ | systemctl restart kubelet.service | ||
+ | </ | ||
+ | 3. Обновление kubelet на worker нодах. | ||
+ | <code bash> | ||
+ | kubectl drain node node-01 --ignore-daemonsets# | ||
+ | </ | ||
+ | <code bash> | ||
+ | apt-mark unhold kubelet | ||
+ | apt upgrade -y kubelet=1.12.0-00 | ||
+ | apt-mark hold kubelet | ||
+ | kubeadm upgrade node config --kubelete-version v1.12.0 #on master | ||
+ | systemctl daemon-reload | ||
+ | systemctl restart kubelet.service | ||
+ | </ | ||
+ | <code bash> | ||
+ | kubectl uncordon node-01 #on master | ||
+ | </ | ||
+ | ===== Резервное копирование ETCD ===== | ||
+ | Утилита для работы с базой etcd: etcdctl \\ | ||
+ | Перед началом работы необходимо указать версию API, через переменную окружения ETCDCTL_API | ||
+ | <code bash> | ||
+ | export ETCDCTL_API=3 | ||
+ | etcdctl version | ||
+ | </ | ||
+ | Снять снапшот с базы: | ||
+ | <code bash> | ||
+ | etcdctl \ | ||
+ | snapshot save snapshot.db \ | ||
+ | --endpoints=https:// | ||
+ | --cacert=/ | ||
+ | --cert=/ | ||
+ | --key=/ | ||
+ | </ | ||
+ | Восстановить снапшот базы: | ||
+ | <code bash> | ||
+ | systemctl stop kube-apiserver # or service kube-apiserver stop | ||
+ | etcdctl \ | ||
+ | snapshot restore snapshot.db \ | ||
+ | --data-dir / | ||
+ | --endpoints=https:// | ||
+ | --cacert=/ | ||
+ | --cert=/ | ||
+ | --key=/ | ||
+ | </ | ||
+ | Изменить в файле манифеста / | ||
+ | <code yaml> | ||
+ | volumes: | ||
+ | - hostPath: | ||
+ | path: / | ||
+ | type: DirectoryOrCreate | ||
+ | name: etcd-data | ||
+ | </ | ||
+ | <code bash> | ||
+ | systemctl restart etcd | ||
+ | systemctl start kube-apiserver | ||
+ | </ | ||
+ |
kubernetes/обслуживание_кластера.1644841529.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)