Инструменты пользователя

Инструменты сайта


kubernetes:обслуживание_кластера

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
kubernetes:обслуживание_кластера [2022/02/14 15:12] – создано rootkubernetes:обслуживание_кластера [2024/12/21 19:00] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
-====== Обслуживание кластера ======+====== 19. Обслуживание кластера ====== 
 +===== Освобождение нод от нагрузки =====
 Выгнать поды с ноды и запретить планирование новых подов: Выгнать поды с ноды и запретить планирование новых подов:
 <code bash> kubectl drain node-1 </code> <code bash> kubectl drain node-1 </code>
-Вернуть ноду в рабочее состанияе:+Вернуть ноду в рабочее состояние:
 <code bash> kubectl uncordon node-1 </code> <code bash> kubectl uncordon node-1 </code>
 Запретить планирование новых подов на ноду: Запретить планирование новых подов на ноду:
 <code bash> kubectl cordon node-2 </code> <code bash> kubectl cordon node-2 </code>
 +===== Обновление кластера =====
 +  * Поддерживаются последние 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
 +</code>
 +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
 +</code>
 +3. Обновление kubelet на worker нодах.
 +<code bash>
 +kubectl drain node node-01 --ignore-daemonsets#on master
 +</code>
 +<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>
 +<code bash>
 +kubectl uncordon node-01 #on master
 +</code>
 +===== Резервное копирование ETCD =====
 +Утилита для работы с базой etcd: etcdctl \\ 
 +Перед началом работы необходимо указать версию API, через переменную окружения ETCDCTL_API
 +<code bash>
 +export ETCDCTL_API=3
 +etcdctl version
 +</code>
 +Снять снапшот с базы:
 +<code bash>
 +etcdctl \
 +snapshot save snapshot.db \
 +--endpoints=https://127.0.0.1:2379 \
 +--cacert=/etc/etcd/ca.crt \
 +--cert=/etc/etcd/etcd-server.crt \
 +--key=/etc/etcd/etcd-server.key
 +</code>
 +Восстановить снапшот базы:
 +<code bash>
 +systemctl stop kube-apiserver # or service kube-apiserver stop
 +etcdctl \
 +snapshot restore snapshot.db \
 +--data-dir /var/lib/etcd-from-backup \
 +--endpoints=https://127.0.0.1:2379 \
 +--cacert=/etc/etcd/ca.crt \
 +--cert=/etc/etcd/etcd-server.crt \
 +--key=/etc/etcd/etcd-server.key
 +</code>
 +Изменить в файле манифеста /etc/kubernetes/manifests/etcd.yaml путь hostPath etcd-data на новый:
 +<code yaml>
 +  volumes:
 +  - hostPath:
 +      path: /var/lib/etcd-from-backup
 +      type: DirectoryOrCreate
 +    name: etcd-data
 +</code>
 +<code bash>
 +systemctl restart etcd
 +systemctl start kube-apiserver
 +</code>
 +
kubernetes/обслуживание_кластера.1644840760.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)