我在Google容器引擎上的container-vm上的容器中运行服务。我跟着https://cloud.google.com/compute/docs/containers/container_vms#creating_containers_at_time_of_instance_creation
首先创建containers.yaml
conf:
version: v1beta2
containers:
- name: example-image
image: gcr.io/your_project_name/example-image
然后创建实例:
gcloud compute instances create containervm-example \
--image container-vm \
--metadata-from-file google-container-manifest=containers.yaml \
--zone us-central1-a \
--machine-type f1-micro
如果我的图片更改为gcr.io/your_project_name/example-image:new-tag
,如何更新正在运行的容器?
我是否必须删除该实例并创建另一个具有相同名称但具有更新的conf文件并使用我的新图像名称?这对我来说似乎有些激进。如果我尝试从vm停止正在运行的容器,它会自动重启。如果可能的话我不想在虚拟机上进行任何手动操作,我只想在其上运行我的容器。
在这个video中,我看到要更新正在运行的容器,他使用的命令如下:
cloudcfg.sh -u 15s rollingupdate dataController
但我找不到文档,而是用于在Kubernetes集群中运行容器。如果我正在运行一个container-vm,那么维护我的容器的建议方法是什么?容器仍然具有kublet服务,但我无法在图像更改时找到如何使用它来更新容器。
答案 0 :(得分:1)
容器VM只是完整Kubernetes / Container Engine基础架构的一部分。 Container VM不支持完整的Kubernetes API,我在I / O演示中使用的kubecfg.sh示例使用了完整的Kubernetes API。
这里有关于使用完整容器引擎的更多信息: https://cloud.google.com/container-engine/
来自OSS Kubernetes项目的滚动更新示例: https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/kubectl.md#rollingupdate