В IBM Cloud Private при остановке контейнера Docker он автоматически перезапускается. Как это можно остановить?
IBM Cloud Private — остановленный контейнер перезапускается автоматически
Ответы (4)
Вот еще немного информации:
Когда вы работаете с контейнерами в IBM Cloud Private, вы фактически развертываете отдельные модули или, что более вероятно, развертывания.
Когда под управляется ReplicaSet, DaemonSet или StatefulSet, существует семантика, которая применяется для изменения расписания пода в случае его неожиданного сбоя. Удаление модуля не отличается от других сбоев внутри модуля (сбой приложения или сбой рабочего узла).
Вы должны использовать kubectl
для работы с модулями. Вы можете настроить kubectl
, выбрав «Пользователь» > «Настроить клиент» в правом верхнем углу веб-интерфейса. Скопируйте и вставьте команды для вашей среды в консоль. Убедитесь, что IP-адрес или сетевой адрес разрешается с вашего клиентского компьютера (контролируйте это значение при установке cluster/config.yaml
с помощью cluster_access_ip
).
Пример kubectl
шагов настройки (Копировать из пользователя > Настроить клиент в веб-интерфейсе):
kubectl config set-cluster mycluster.icp --server=https://[NETWORK_ADDRESS]:8001 --insecure-skip-tls-verify=true
kubectl config set-context mycluster.icp-context --cluster=mycluster.icp
kubectl config set-credentials mycluster.icp-user --token=[TOKEN]
kubectl config set-context mycluster.icp-context --user=mycluster.icp-user --namespace=default
kubectl config use-context mycluster.icp-context
Затем просмотрите запущенные модули:
kubectl get pods [--namespace default]
Эти модули представляют собой базовую единицу развертывания: контейнеры + тома + метки + ссылки на ConfigMaps и секреты.
Эти модули обычно развертываются из других «наборов» управления:
kubectl get deployments [--namespace default]
kubectl get daemonsets [--namespace default]
kubectl get statefulsets [--namespace default]
Эти коллекции представляют политику + модули; поведение о том, как восстановиться, встроено в каждую конструкцию.
Вероятно, у вас есть развертывание, поэтому для удаления контейнера --
kubectl get deployments -o wide [--namespace default]
Найдите интересующее развертывание и удалите его:
kubectl delete deployments my-deployment [--namespace default]
Теперь deployment
будет удален вместе со всеми связанными модулями.
Вам нужно сначала остановить kubelet, иначе он автоматически запустит завершенные контейнеры. Вы можете запустить «systemctl stop kubelet».
kubernetes перезапускает неисправные контейнеры (модули), вам следует масштабировать развертывание до 0 экземпляров или удалить развертывание, и то, и другое можно выполнить с помощью kubectl (kubectl scale --replicas=0 ...) или с помощью консоли ICP.
Вы должны изменить количество реплик на ноль.