как остановить/приостановить стручок в кубернетес - программирование
Подтвердить что ты не робот

как остановить/приостановить стручок в кубернетес

В моем кластере запущен модуль MySQL.
Мне нужно временно приостановить работу модуля, не удаляя его, что-то похожее на Docker, где docker stop container-id cmd остановит контейнер, не удаляя контейнер.
Есть ли в kubernetes какие-либо команды для приостановки/остановки модуля?

4b9b3361

Ответ 1

Таким образом, как уже отмечали другие, Kubernetes не поддерживает остановку/паузу текущего состояния модуля и возобновление при необходимости. Однако вы все равно можете добиться этого, не имея рабочих развертываний, для которых число реплик установлено равным 0.

kubectl scale --replicas=0 deployment/<your-pod>

см. справку

# Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet.
kubectl scale --help

Шкала также позволяет пользователям указывать одно или несколько предварительных условий для действия шкалы.

Если указано --current-replicas или --resource-version, оно проверяется перед попыткой масштабирования и гарантируется, что предварительное условие выполняется при отправке шкалы на сервер.

Примеры:

  # Scale a replicaset named 'foo' to 3.
  kubectl scale --replicas=3 rs/foo

  # Scale a resource identified by type and name specified in "foo.yaml" to 3.
  kubectl scale --replicas=3 -f foo.yaml

  # If the deployment named mysql current size is 2, scale mysql to 3.
  kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

  # Scale multiple replication controllers.
  kubectl scale --replicas=5 rc/foo rc/bar rc/baz

  # Scale statefulset named 'web' to 3.
  kubectl scale --replicas=3 statefulset/web

Ответ 2

Нет. Остановить модуль и возобновить его позже, когда это необходимо, невозможно. Тем не менее, вы можете рассмотреть следующий подход.

В k8s пакеты извлекаются с помощью службы. Один из способов, которым я могу подумать об изоляции модуля (-ов), - обновить селектор модуля в определении сервиса. Таким образом, вы можете контролировать трафик на pod (s), используя определение сервиса. Всякий раз, когда вы хотите восстановить трафик, обновите значение селектора pod до того, которое было в определении сервиса.