Docker 库伯内特斯没有拿出最新的图片

Docker 库伯内特斯没有拿出最新的图片,docker,kubernetes,Docker,Kubernetes,令我困惑的事情 我已经编写了一个docker文件v1,其中包含我的代码v1 例如: const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, () => console.log(`Example app listening on port ${port

令我困惑的事情

我已经编写了一个docker文件v1,其中包含我的代码v1

例如:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
我正在用标签开发(leexha/sample:development)构建我的图像并将其推送到DockerHub。例如,我的代码的v2如下所示

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello EARTH!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
我可以确认我的最新代码在docker运行时被推送到docker hub,并且工作正常

然而,当我尝试在kubernetes中运行最新的docker映像时,执行
kubectl run sample--image=leexha/sample:development
,它奇怪地获取了我代码的v1(Hello World)


这有什么原因吗?

是的,性能。根据默认的拉动策略是
IfNotPresent
,除非图像使用标记
update
。通过将
imagePullPolicy
设置为
始终
进行覆盖


编辑:您不希望在生产中检查和提取更新的图像,因为标记的图像永远不会更改。即使是支票也可能很昂贵。在开发中,您可以使用
latest
或使用
imagePullPolicy
覆盖,您可以在部署文件中定义
imagePullPolicy:Always
。 对于生产环境,不要使用
latest
docker图像标记