在Google云端平台中更新Docker镜像

我以为我已经想出了如何在Google容器引擎中更新Docker镜像,但现在它只是恢复到原始版本的图像。 以下是我所做的:

原始图像

docker build -t gcr.io/jupiter-1068/jupiter . gcloud docker push gcr.io/jupiter-1068/jupiter kubectl create -f rc.yaml 

V2

 docker build -t gcr.io/jupiter-1068/jupiter:2 . gcloud docker push gcr.io/jupiter-1068/jupiter:2 kubectl rolling-update staging --image=gcr.io/jupiter-1068/jupiter:2 

这工作。 但后来我尝试更新到v3与v2相同的方式,它似乎是运行原始图像代码。 这是怎么回事?

更新

再次尝试:latestkubectl describe rc stagingkubectl describe rc staging输出:

 Name: staging Namespace: default Image(s): gcr.io/jupiter-1068/jupiter:latest Selector: app=jupiter,deployment=f400f87308696febbe567614f3cc3428,version=1 Labels: run=staging Replicas: 1 current / 1 desired Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed No events. 

kubectl describe pod <podname>输出kubectl describe pod <podname>

 Name: staging-b4c7103521d97ef91f482db729da9584-0va8i Namespace: default Image(s): gcr.io/jupiter-1068/jupiter:latest Node: gke-staging-4adcf7c5-node-ygf7/10.240.251.174 Labels: app=jupiter,deployment=f400f87308696febbe567614f3cc3428,version=1 Status: Running Reason: Message: IP: 10.8.0.24 Replication Controllers: staging (1/1 replicas created) Containers: jupiter: Image: gcr.io/jupiter-1068/jupiter:latest Limits: cpu: 100m State: Running Started: Tue, 15 Sep 2015 21:08:32 -0500 Ready: True Restart Count: 1 Conditions: Type Status Ready True Events: FirstSeen LastSeen Count From SubobjectPath Reason Message Tue, 15 Sep 2015 21:07:05 -0500 Tue, 15 Sep 2015 21:07:05 -0500 1 {scheduler } scheduled Successfully assigned staging-b4c7103521d97ef91f482db729da9584-0va8i to gke-staging-4adcf7c5-node-ygf7 Tue, 15 Sep 2015 21:07:05 -0500 Tue, 15 Sep 2015 21:07:05 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} implicitly required container POD pulled Pod container image "gcr.io/google_containers/pause:0.8.0" already present on machine Tue, 15 Sep 2015 21:07:05 -0500 Tue, 15 Sep 2015 21:07:05 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} implicitly required container POD created Created with docker id 13cd80e199a4 Tue, 15 Sep 2015 21:07:05 -0500 Tue, 15 Sep 2015 21:07:05 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} implicitly required container POD started Started with docker id 13cd80e199a4 Tue, 15 Sep 2015 21:07:05 -0500 Tue, 15 Sep 2015 21:07:05 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} spec.containers{jupiter} created Created with docker id 724fdedd11be Tue, 15 Sep 2015 21:07:05 -0500 Tue, 15 Sep 2015 21:07:05 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} spec.containers{jupiter} started Started with docker id 724fdedd11be Tue, 15 Sep 2015 21:08:32 -0500 Tue, 15 Sep 2015 21:08:32 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} spec.containers{jupiter} created Created with docker id 2022b9f5f054 Tue, 15 Sep 2015 21:08:32 -0500 Tue, 15 Sep 2015 21:08:32 -0500 1 {kubelet gke-staging-4adcf7c5-node-ygf7} spec.containers{jupiter} started Started with docker id 2022b9f5f054 

标签:docker中的最新版本有点令人困惑。 这并不意味着最新的上传,当你不指定标签时,它是一个默认的名字。

在你的场景中,最新的点是你的原始图像,因为这是你唯一没有指定标签的上传。

为了弄清楚发生了什么,尝试运行kubectl describe rc staging ,它将向您显示复制控制器的详细信息,包括它认为正在运行的映像以及与之相关的任何事件。 如果输出显示rc正在运行新映像,则检查该pod(使用kubectl describe pods <pod-name> )以查看它们正在运行的映像以及是否有任何事件。

这两个命令应该可以让你知道发生了什么,但是如果没有的话,输出回应!

我手动删除并重新创buildrc / pod,现在一切正常,包括滚动更新。 从支持:

容器registry中出现了一个问题,它阻止了图像的v2被拖动,但是由于图像和pod被删除,我们将无法进一步调查。

如果遇到此问题,请考虑与他们联系,以便他们在删除您的群组之前调查问题。