docker - 为什么不存在的图像在 Kubernetes 部署中起作用
问题描述
首先,我创建了两个不同版本的图像,如下所示
泊坞窗图像 ls
REPOSITORY | TAG | IMAGE ID
isaac88/posts | 0.0.1 | xxx
isaac88/posts | 0.0.5 | yyy
然后我创建了一个 Kubernetes 部署文件,如下所示
post-depl.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: posts-depl
spec:
replicas: 1
selector:
matchLabels:
app: posts
template:
metadata:
labels:
app: posts
spec:
containers:
- name: posts
image: isaac88/posts:0.0.1
如果您注意到,我在部署 yaml 文件中指定了映像的版本。通过在和之间交换版本0.0.1
并0.0.5
执行以下命令以查看差异
kubectl apply -f posts-depl.yaml
kubectl get pods
kubectl logs xxxxxxxxx
到目前为止一切正常。
现在我尝试0.0.1
从部署中删除 yaml,我想知道它的行为方式,因为我没有将最新版本标记到我的 docker 映像。我已经验证使用docker image ls
下面是我最新的yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: posts-depl
spec:
replicas: 1
selector:
matchLabels:
app: posts
template:
metadata:
labels:
app: posts
spec:
containers:
- name: posts
image: isaac88/posts
删除版本后,我运行了kubectl apply -f posts-depl.yaml
,令人惊讶的是它能够成功创建部署,我继续在kubectl logs xxxxx
创建的最新 pod 上执行,我看到属于 version 的日志0.0.1
。我不明白背后的原因
解决方案
推荐阅读
- image - 在 ImageJ 中批量测量曲线的面积和长度
- javascript - 如何在firebase云函数中正确地将signInWithEmailAndPassword()转换为createCustomToken()-Node js
- ios - How can I count the documents from a firestore query in swift?
- javascript - 使用chart.js,当只有几条要显示的条形图时,如何对齐条形而不是居中?
- javascript - 状态更改后如何使用 immer 更新 HTML DOM?
- python - 多维numpy数组变成可变数量的几个一维数组用于函数scipy函数参数
- javascript - VueJs SPA 在单击按钮上执行功能
- c# - 有没有办法像 Visual Studio 那样“安装”nuget 包,但是在部署服务器上
- python - Django如何将JsonResponse函数调用到其他函数
- python - 样式表元素适用于 Windows,但不适用于 raspberry-pi