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