> For the complete documentation index, see [llms.txt](https://utm-1.gitbook.io/utm-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/resheniya/kubernetes/obsluzhivanie-klastera/obsluzhivanie-uzla-klastera.md).

# Обслуживание узла кластера

## Ссылки

Как правильно перезагрузить узел(ы) k8s: [community.sisense.com](https://community.sisense.com/kb/sisense_administration/how-to-properly-reboot-a-k8s-nodes/21457)

## Общая инструкция

**Перезагрузка узла в кластере Kubernetes (K8s) требует структурированного процесса**, чтобы минимизировать disruption для работающих нагрузок. Это может быть необходимо для обновлений системы, обслуживания оборудования или других причин. [community.sisense.com](https://community.sisense.com/kb/sisense_administration/how-to-properly-reboot-a-k8s-nodes/21457)

### Пошаговая инструкция

* **Определить узлы** в кластере с помощью команды&#x20;

  ```
  kubectl get nodes
  ```

  . Это предоставит список всех узлов и их текущий статус.
* **Завершить работу всех подов**, запущенных на узле, чтобы они были запланированы на другой узел в кластере. Для этого можно использовать команду&#x20;

  ```
  kubectl drain
  ```

  . Например:&#x20;

  ```
  kubectl drain <node_name> --ignore-daemonsets --delete-emptydir-data
  ```

  . Флаг&#x20;

  ```
  --ignore-daemonsets
  ```

  &#x20;гарантирует, что системные демоны (например, агенты мониторинга) не будут удалены.
* **Перезагрузить узел** с помощью стандартной команды перезагрузки системы.
* **После перезагрузки** убедиться, что все сервисы Kubernetes запущены. Например, для RHEL — выполнить команды:&#x20;

  ```
  docker start kubelet kube-proxy kube-scheduler kube-controller-manager etcd kube-apiserver
  ```

  .
* **Отметить узел как планируемый** снова:&#x20;

  ```
  kubectl uncordon <node_name>
  ```

  . Это позволяет планировщику Kubernetes возобновить размещение подов на узле.
* **Проверить статус узла** — убедиться, что он снова в состоянии готовности и доступен для планирования подов:&#x20;

  ```
  kubectl get nodes
  ```

  .

&#x20;[community.sisense.com](https://community.sisense.com/kb/sisense_administration/how-to-properly-reboot-a-k8s-nodes/21457)[stackoverflow.com](https://tr-page.yandex.ru/translate?lang=en-ru\&url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F59572649%2Fhow-to-restart-master-node-in-kubernetes)**Важно**: другой узел нельзя завершать, пока предыдущий не полностью загружен и функционирует. В любой момент должно быть доступно два узла, чтобы поддерживать стабильность кластера. [community.sisense.com](https://community.sisense.com/kb/sisense_administration/how-to-properly-reboot-a-k8s-nodes/21457)

### Ошибки и их решения

* **Ошибка «back-off restarting failed container»** — указывает на цикл перезапуска в пода. Причины: перегрузка ресурсов, ошибки при развёртывании Kubernetes, проблемы с сторонними сервисами и другие. Решение: выявить причину ошибки, отрегулировать ресурсы, разрешить зависимости или обновить конфигурации. [kodekloud.com](https://kodekloud.com/blog/what-is-kubernetes-back-off-restarting-failed-container-error/)[komodor.com](https://komodor.com/learn/how-to-fix-crashloopbackoff-kubernetes-error/)
* **Ошибка CrashLoopBackOff** — означает, что контейнер не может правильно запуститься. Решение: устранить причину ошибки, например, настроить ресурсы, разрешить зависимости или обновить конфигурации. [komodor.com](https://komodor.com/learn/how-to-fix-crashloopbackoff-kubernetes-error/)[slingacademy.com](https://www.slingacademy.com/article/kubernetes-error-crashloopbackoff-back-off-restarting-failed-container/)

## Вывод узла кластера на обслуживание

utm-server3

```bash
kubectl drain utm-k8s-master3-1 --ignore-daemonsets --delete-emptydir-data
kubectl drain utm-k8s-node3-5 --ignore-daemonsets --delete-emptydir-data
kubectl drain utm-k8s-node3-6 --ignore-daemonsets --delete-emptydir-data
```

utm-server4

```bash
kubectl drain utm-k8s-master4-1 --ignore-daemonsets --delete-emptydir-data
kubectl drain utm-k8s-node4-5 --ignore-daemonsets --delete-emptydir-data
kubectl drain utm-k8s-node4-6 --ignore-daemonsets --delete-emptydir-data
```

utm-server5

```bash
kubectl drain utm-k8s-master5-1 --ignore-daemonsets --delete-emptydir-data
kubectl drain utm-k8s-node5-5 --ignore-daemonsets --delete-emptydir-data
kubectl drain utm-k8s-node5-6 --ignore-daemonsets --delete-emptydir-data
```

## Возврат узла в кластер после обслуживания

utm-server3

```bash
kubectl uncordon utm-k8s-master3-1
kubectl uncordon utm-k8s-node3-5
kubectl uncordon utm-k8s-node3-6
```

utm-server4

```bash
kubectl uncordon utm-k8s-master4-1
kubectl uncordon utm-k8s-node4-5
kubectl uncordon utm-k8s-node4-6
```

utm-server5

```bash
kubectl uncordon utm-k8s-master5-1
kubectl uncordon utm-k8s-node5-5
kubectl uncordon utm-k8s-node5-6
```

Список подов с coredns

```
kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o wide
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://utm-1.gitbook.io/utm-docs/dokumentaciya/utm-it/resheniya/kubernetes/obsluzhivanie-klastera/obsluzhivanie-uzla-klastera.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
