如何使用kubernetes启动停止的容器?

时间:2019-07-01 04:04:29

标签: docker kubernetes

业务要求如下:

  1. 停止运行的容器
  2. 修改环境(例如,更改DEBUG_LEVEL环境变量的值)
  3. 启动容器

使用Docker CLI可以轻松实现

docker create/docker stop/docker start

如何使用kubernetes做到这一点?

其他信息: 我们正在从Cloud Foundry迁移到Kubernetes。在CF中,您部署应用停止应用设置环境变量启动应用。需要相同的功能。 对于那些不了解CF应用程序的人。就像具有单一运行(微)服务的Docker容器。

3 个答案:

答案 0 :(得分:3)

通常,您将应用程序作为“部署”或“ StatefulSet”运行。在这种情况下,只需更改模板中环境变量的值,然后重新应用Deployment(或StatefulSet)。 Kubernetes将为您完成其余的工作。

点击此处引用documentation

答案 1 :(得分:0)

假设您正在使用以下命令创建pod /部署/状态集。

kubectl apply -f blueprint.yaml

blueprint.yaml是YAML文件,其中包含您的pod / deployment / statefulset对象的蓝图。

方法1-如果在YAML文件中指定环境变量

然后,您可以更改blueprint.yaml以修改环境变量的值。 https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/

然后再次执行同一命令以应用更改。

方法2-如果您在dockerfile中指定了环境变量

您应使用新标签构建docker映像。然后在blueprint.yaml文件中更改docker image标签,并再次执行同一命令以应用更改。

方法3

您还可以再次删除并创建广告连播/部署/状态集。

kubectl delete -f blueprint.yaml
kubectl apply -f blueprint.yaml

答案 2 :(得分:0)

还有另一种可能性:

  1. 定义容器环境变量using configmap data
  2. 让Kubernetes对ConfigMap的更改做出反应。

    默认情况下,它不会触发Pod重新启动,除非您以某种方式更改Pod规范。
    Here是一篇文章,描述了如何使用由ConfigMap生成的SHA-256哈希来实现它。