IBM Cloud Private — остановленный контейнер перезапускается автоматически

В IBM Cloud Private при остановке контейнера Docker он автоматически перезапускается. Как это можно остановить?


person RMarra    schedule 05.10.2017    source источник


Ответы (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 будет удален вместе со всеми связанными модулями.

person Michael Elder    schedule 05.10.2017

Вам нужно сначала остановить kubelet, иначе он автоматически запустит завершенные контейнеры. Вы можете запустить «systemctl stop kubelet».

person RMarra    schedule 05.10.2017

kubernetes перезапускает неисправные контейнеры (модули), вам следует масштабировать развертывание до 0 экземпляров или удалить развертывание, и то, и другое можно выполнить с помощью kubectl (kubectl scale --replicas=0 ...) или с помощью консоли ICP.

person Johann Medina    schedule 01.05.2018

Вы должны изменить количество реплик на ноль.

person Dockers    schedule 22.05.2018