【发布时间】:2019-03-08 21:24:08
【问题描述】:
我有一个 JupyterHub 笔记本服务器,我在 aws (EKS) 上的托管 kubernetes 上运行。我的 docker 存储库是 AWS ECR。
我正在迭代开发我的 docker 镜像以进行测试。
我的工作流程是:
- 更新 docker 镜像
- 更新 helm release 配置中的 docker 镜像标签
config.yaml - 升级 helm release
helm upgrade jhub jupyterhub/jupyterhub --version=0.7.0 --values config.yaml - 测试对 docker 映像的更改
但是,旧的 docker 镜像还在使用吗?
我必须如何更改我的开发工作流程,以便我可以简单地更新 docker 映像并进行测试?
附加信息:
编辑:
采取的其他故障排除步骤:
尝试删除 helm 版本并重新安装:
helm delete --purge jhub && helm upgrade --install jhub jupyterhub/jupyterhub --namespace jhub --version=0.7.0 --values config.yaml
尝试删除 helm release AND 命名空间,然后重新安装:
helm delete --purge jhub && kubectl delete namespace jhub && helm upgrade --install jhub jupyterhub/jupyterhub --namespace jhub --version=0.7.0 --values config.yaml
还尝试将 imagePullPolicy 值覆盖为 Always(根据 Mostafa 在他的回答中的建议)
hub:
imagePullPolicy: Always
这些都不起作用。仍在使用旧的原始 docker 映像。
奇怪的是,当我检查当前在我的 kubernetes 集群中使用的 docker 镜像时,我看到了新的 docker 镜像。但它不是正在使用的那个。
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"
# output:
...
<AWS_ACCOUNT>.dkr.ecr.eu-west-1.amazonaws.com/<REPO>:NEW_TAG # <-- not actually being used in jupyerhub
...
编辑(2): 我检查了 pod 描述,发现了奇怪的事件消息: 我检查了我的一个 pod 描述并看到一条奇怪的事件消息
Normal Pulled 32m kubelet, <<REDACTED>> Container image "<AWS_ACCOUNT>.dkr.ecr.eu-west-1.amazonaws.com/<REPO>:NEW_TAG" already present on machine
上面提到的图像是我刚刚上传到图像存储库的新图像。镜像不可能已经下载到集群上。不知何故,原始图像和新图像的哈希值相同,或者这是一个错误?
【问题讨论】:
-
对于每个 docker 映像更改,您需要创建一个新的 docker 容器以使用新映像并查看反映的更改
-
舵图中的
imagePullPolicy值是多少? -
@MostafaHussein -- 图表不是我的,它是公开的:
https://jupyterhub.github.io/helm-chart/。我检查了图表,值是IfNotPresent——所以,这就解释了为什么 docker 图像没有更新。现在,我想问题是:我可以覆盖这个值吗?还是我必须直接 fork 和修改图表? -
@MostafaHussein 如果您知道我如何做到这一点,请随时将其发布为答案
-
@JamesWierzba 我会发布它
标签: amazon-web-services docker jupyter-notebook kubernetes-helm