如何强制 Kubernetes 重新拉取镜像?

2024-02-16

我在 GKE 上的 Kubernetes 中有以下复制控制器:

apiVersion: v1
kind: ReplicationController
metadata:
  name: myapp
  labels:
    app: myapp
spec:
  replicas: 2
  selector:
    app: myapp
    deployment: initial
  template:
    metadata:
      labels:
        app: myapp
        deployment: initial
    spec:
      containers:
      - name: myapp
        image: myregistry.com/myapp:5c3dda6b
        ports:
        - containerPort: 80
      imagePullPolicy: Always
      imagePullSecrets:
        - name: myregistry.com-registry-key

现在,如果我说

kubectl rolling-update myapp --image=us.gcr.io/project-107012/myapp:5c3dda6b

执行滚动更新,但不重新拉取。为什么?


如果出现以下任一情况,Kubernetes 将拉动 Pod 创建(请参阅更新图像文档 https://kubernetes.io/docs/concepts/containers/images/#updating-images):

  • 使用标记的图像:latest
  • imagePullPolicy: Always已指定

如果你想一直拉的话,这非常棒。但如果你想这么做怎么办一经请求: 例如,如果你想使用some-public-image:latest但只想在您要求时手动获取较新的版本。目前您可以:

  • Set imagePullPolicy to IfNotPresent or Never and pre-pull https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images:在每个集群节点上手动拉取映像,以便缓存最新的映像,然后执行kubectl rolling-update或类似于重新启动 Pod(丑陋且容易损坏的黑客!)
  • 暂时地 change imagePullPolicy, do a kubectl apply,重新启动 Pod(例如kubectl rolling-update), 恢复imagePullPolicy,重做一个kubectl apply (ugly!)
  • 拉和推 some-public-image:latest到您的私人存储库并执行kubectl rolling-update(重的!)

按需拉取没有好的解决方案。如果有变化,请发表评论;我会更新这个答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制 Kubernetes 重新拉取镜像? 的相关文章

随机推荐

  • 什么是 YUV 格式? (从一个不会玩的初学者的角度来看)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 视频质量指标称为VMAF https github com Netflix vmaf由 Netflix 评估 YUV 格式的视频 但什么是
  • Web 套接字会让 ajax/CORS 过时吗?

    在所有 Web 浏览器中使用 Web 套接字会使 Ajax 过时吗 因为如果我可以使用 Web 套接字来实时获取数据和更新数据 为什么还需要 ajax 即使我在应用程序启动时使用 ajax 只获取一次数据 我仍然可能想看看该数据在一段时间后
  • 如何从 iOS 上的音频文件中提取元数据

    我正在尝试使用 AVFoundation 框架从 mp3 和 m4a 文件中提取元数据 这是测试代码 void printMetadataForFileAtPath NSString path NSURL url NSURL fileURL
  • 使用 SQL 检查列是否包含文本

    我有一个名为studentID 但我有millions记录 并且应用程序以某种方式输入了一些任意文本在专栏中 我如何搜索 SELECT FROM STUDENTS WHERE STUDENTID CONTAINS TEXT 将数据库建模问题
  • 为什么 CSS 中引入了边距折叠规则?

    这套巧妙的规则什么时候可以发挥作用 它们打破了盒子模型的简单性 当您将不同的布局组合在一起时 它们会带来无限的麻烦 那么原因是什么呢 Rules http www w3 org TR css3 box collapsing margins供
  • ftp_ssl_connect 和 ftp_nlist

    我需要连接到远程系统以获取一些文件 远程系统的规格提到 所需的协议是 SFTP SSH 文件传输协议 端口号是22 首先 我使用 FTP 客户端应用程序尝试使用给定的凭据登录新服务器 起初我 遵循系统的规格 使用了通过 SSH 进行 SFT
  • JOptionPane 变灰一键

    我需要使用一个JOptionPane给用户两个选择 根据之前的操作 可能需要禁用其中一个按钮 是否可以与JOptionPane能够将其中一个按钮设置为禁用或启用吗 我怎样才能做到这一点 如果您使用 JButtons 这很容易 public
  • 在 PowerShell 中将控制台设置为最顶层

    因此 虽然有很多关于如何设置的建议forms最上面 我找不到任何可以让我的控制台在最上面运行的东西 所以我的问题是 如何让我的控制台在脚本期间运行在最上面 这需要一些 NET 互操作 如本博客中所述 TechEd 2012 中的脚本 第 1
  • worklight ant 任务应用程序部署 - WL 控制台安全性处于活动状态时出现未经授权的错误

    我正在尝试使用提供的 ant 任务 app deployer 将应用程序部署到 WL Server v5 0 5 这是我使用的简单构建文件
  • Pandas - 将内存中作为字符串存储的csv读取到数据帧

    将逗号分隔的文本存储在如下所示的 var 中 data Class Name Long Lat A ABC11 139 6295542 35 61144069 A ABC20 139 630596 35 61045559 A ABC03 1
  • Pandas 层次排序

    我有一个类别和金额的数据框 可以使用冒号分隔的字符串将类别无限嵌套到子类别中 我希望按金额降序排序 但以分层类型的方式如图所示 我需要如何排序 CATEGORY AMOUNT Transport 5000 Transport Car 490
  • 为什么 emma 不完全覆盖 finally 块?

    我不明白为什么艾玛没有为 finally 块提供完整的代码覆盖率 我制作了一个简短的示例程序来演示这一点 当我执行该程序时 它显示 try finally 所以我不明白为什么finally被标记为红色 未执行 而 finally print
  • 更改项目目标框架后应用程序设置错误

    在我的应用程序中 我正在使用用户设置 如下所述here http msdn microsoft com en us library aa730869 28v vs 80 29 aspx 然后我意识到在 VS 2010 中我使用的是 NET
  • 混合文件和循环[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在编写一个脚本 该脚本记录另一个程序的错误 并在遇到错误时从中断处重新启动该程序 无论出于何种原因 该程序的开发人员
  • 如何在 EF 查询中执行日期比较?

    请帮忙 我试图弄清楚如何在 linq 查询中使用 DATE 或 DATETIME 进行比较 例子 如果我想要今天之前开始的所有员工姓名 我会在 SQL 中执行以下操作 SELECT EmployeeNameColumn FROM Emplo
  • 如何从 proguard 构建中排除 R*.class 文件

    我距离制定此处描述的方法仅一步之遥 使用 Scala 2 8 Trunk 构建面向 Android https stackoverflow com questions 2761443 targeting android with scala
  • Django - 反向查询名称冲突

    我在 Django 中放置了一个循环外键 这导致了名称冲突 我不明白为什么会发生冲突或如何最好地补救 这是我第一次在模型中进行循环引用 所以我不确定这是否是问题的根本原因 对于以下情况 class Supplier models Model
  • 在 Node.js 中使用 node-soap 通过 Soap 发送参数

    我刚刚开始使用 NodeJS 并且正在深入研究使用 SOAP 服务milewise 的节点肥皂 https github com milewise node soap readme 我使用基本的电子邮件地址验证 SOAP API 作为我的测
  • 用于重命名/重构的 Eclipse 键盘快捷键将于 2022 年 3 月解除绑定

    我最近将 Eclipse IDE 从 2021 12 更新到 2022 03 我发现重命名 重构 alt shift r 的快捷方式被删除了 这是一个错误吗 稍后会修复吗 这是故意删除的吗 这是一个非常有用的键盘快捷键 但我不明白 为什么
  • 如何强制 Kubernetes 重新拉取镜像?

    我在 GKE 上的 Kubernetes 中有以下复制控制器 apiVersion v1 kind ReplicationController metadata name myapp labels app myapp spec replic