Kubernetes – это программное обеспечение для оркестрации контейнеров, которое позволяет нам развертывать, управлять и масштабировать контейнерные приложения.
Несмотря на то, что Kubernetes имеет репутацию высоконадежной системы, необходимость в ее перезапуске может возникнуть, как это иногда происходит с любым другим приложением или сервисом.
Kubernetes разделен на различные компоненты, которые можно перезапускать по отдельности, чтобы другие части могли продолжать работу без перебоев.
В идеале следует перезапускать только тот компонент, с которым вы устраняете неполадки.
В этом руководстве мы рассмотрим пошаговые инструкции по перезапуску Kubernetes в системе Linux.
Это включает перезапуск мастер ноды (службы kubelet), воркер нод и подов в кластере.
Далее вы увидите, как перезапустить и проверить состояние каждого из этих компонентов Kubernetes.
Как перезапустить Kubernetes на Linux
Ознакомьтесь с различными примерами ниже, чтобы увидеть, как перезапустить различные компоненты Kubernetes.
Чтобы перезапустить службу kubelet на мастер ноде или воркер, используйте следующую команду systemctl:
$ sudo systemctl restart kubelet
После этого проверьте текущее состояние службы kubelet:
$ sudo systemctl status kubelet
Вы также можете перезапустить слой контейнеризации, что иногда помогает при устранении ошибок.
В большинстве случаев это Docker, но в вашем кластере может использоваться другая технология:
$ sudo systemctl restart docker
Чтобы полностью перезапустить воркер ноду, мы можем использовать типичную команду reboot на Linux.
Сначала мы должны использовать команду kubectl cordon, чтобы убедиться, что Kubernetes не пытается запланировать новые поды на ноде в это время.
Войдите на ноду по SSH и выполните команду:
$ kubectl cordon [ip address] $ sudo reboot
После завершения перезагрузки:
$ kubectl uncordon [ip address]
Когда речь идет о перезапуске подов, одним из способов может быть установка реплик на 0, а затем их повторное увеличение через несколько минут, когда все они успеют отключиться.
Например:
$ kubectl scale deployments/nginx-server --replicas=0
Еще лучший способ перезапустить ваши поды – это позволить сделать это rollout restart.
Таким образом, каждй под перезапускается по очереди, и клиенты не заметят никакого простоя.
$ kubectl rollout restart deployment [deployment_name] -n [namespace]
Заключение
В этом руководстве мы рассмотрели, как перезапустить Kubernetes в системе Linux.
Поскольку Kubernetes состоит из нескольких компонентов, мы рассмотрели перезапуск службы kubelet, мастер ноды узла, воркер нод, слоя контейнеризации и всех подов двумя различными методами.
При возникновении новой ошибки иногда простой перезапуск одного или нескольких из этих компонентов может быть самым простым решением.
см. также:
- ☸️ Понимание архитектуры Kubernetes
- ☸️ Установка и использование Helm 3 в кластере Kubernetes
- ☸️ Как создать в Kubernetes службу / аккаунт пользователя и ограничить его одним пространством имен с помощью RBAC
- ☸️ Kubernetes – введение для начинающих
- ☸️ Простое управление несколькими кластерами Kubernetes с помощью kubectl & kubectx