kubernetes:обслуживание_кластера
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| kubernetes:обслуживание_кластера [2022/02/14 15:12] – создано 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 </ | ||
| - | Вернуть ноду в рабочее состанияе: | + | Вернуть ноду в рабочее состояние: |
| <code bash> kubectl uncordon node-1 </ | <code bash> kubectl uncordon node-1 </ | ||
| Запретить планирование новых подов на ноду: | Запретить планирование новых подов на ноду: | ||
| <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/обслуживание_кластера.1644840760.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)
