gpt4 book ai didi

docker - 如何从 minikube 中删除现有的已下载 docker 镜像

转载 作者:行者123 更新时间:2023-12-01 23:16:44 25 4
gpt4 key购买 nike

我正在使用 DevSpace tool 将多项服务部署到我的本地集群 (minikube) .一旦有人对其中一项服务进行了更改并将图像推送到我们的私有(private)存储库,我需要这些更改才能在我的本地可用。我现在要做的是完全删除 minikube 集群并启动一个新集群。在这种情况下,所有具有相同标签的图像都只是更新为最新版本,而不是缓存的版本。

但我相信有一些更优雅的方法可以克服这个问题。因此,在重新部署服务之前,我需要以某种方式从我的本地集群中清理/删除/删除过时的图像。

有人可以指出它们的存储位置吗?我如何查看和删除它们?谢谢。

最佳答案

这里是 DevSpace 维护者。你需要的是两件事:

  1. 每次运行 devspace dev 时都会强制重新创建 pod。因此,如果您使用的是 Deployment 或 StatefulSet,则可以添加类似标签的内容,例如包含 DevSpace 内置时间戳变量作为 Pod 模板的值。
  2. imagePullPolicy: Always 在您的 pod 规范中以确保 Kubernetes 始终为每个新创建的 pod 拉取最新的图像。否则 Kubernetes 将使用已经缓存的图像。

结合起来,这在您的 devspace.yaml 文件中可能如下所示(如果您使用的是组件图表部署):

deployments:
- name: my-component
helm:
componentChart: true
values:
labels:
timestamp: $!{DEVSPACE_TIMESTAMP} # here is 1.
containers:
- image: "YOUR_IMAGE:latest" # specify any tag here that you want
imagePullPolicy: Always # here is 2.

$!{DEVSPACE_TIMESTAMP} = $!{} 强制将此 var 的值作为字符串放置(因为 k8s 只允许标签的字符串值)和 DEVSPACE_TIMESTAMP 是 DevSpace 中预定义变量的名称。更多详情:https://devspace.sh/cli/docs/configuration/variables/basics#predefined-variables

关于docker - 如何从 minikube 中删除现有的已下载 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68721928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com