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

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


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

19. Обслуживание кластера

Освобождение нод от нагрузки

Выгнать поды с ноды и запретить планирование новых подов:

 kubectl drain node-1 

Вернуть ноду в рабочее состояние:

 kubectl uncordon node-1 

Запретить планирование новых подов на ноду:

 kubectl cordon node-2 

Обновление кластера

  • Поддерживаются последние 3 версии kubernetes.
  • Компоненты kubernetes могут быть разных версий:
    • kube-apiserver - X
    • Control-manager и kube-scheduler - X-1
    • kubelet и kube-proxy - X-2

1. Обновление kubeadm

apt upgrade -y kubeadm=1.12.0-00
kubeadm upgrade plan
kubeadm upgrade apply v1.12.0

2. Обновление kubelet на мастере

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 нодах.

kubectl drain node node-01 --ignore-daemonsets#on master
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
kubectl uncordon node-01 #on master

Резервное копирование ETCD

Утилита для работы с базой etcd: etcdctl
Перед началом работы необходимо указать версию API, через переменную окружения ETCDCTL_API

export ETCDCTL_API=3
etcdctl version

Снять снапшот с базы:

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

Восстановить снапшот базы:

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

Изменить в файле манифеста /etc/kubernetes/manifests/etcd.yaml путь hostPath etcd-data на новый:

  volumes:
  - hostPath:
      path: /var/lib/etcd-from-backup
      type: DirectoryOrCreate
    name: etcd-data
systemctl restart etcd
systemctl start kube-apiserver
kubernetes/обслуживание_кластера.txt · Последнее изменение: 2024/12/21 19:00 — 127.0.0.1