首页 > 其他分享 >在K8S中,镜像的拉取策略有哪些?

在K8S中,镜像的拉取策略有哪些?

时间:2024-08-13 21:20:42浏览次数:4  
标签:容器 场景 策略 拉取 本地 镜像 K8S

在Kubernetes中,镜像拉取策略(Image Pull Policy)定义了何时从容器镜像仓库拉取或更新容器镜像。这些策略对于管理容器化应用的部署和更新非常重要。Kubernetes提供了以下几种镜像拉取策略:

  1. Always

    • 无论本地是否存在该镜像,总是尝试从远程仓库拉取最新的镜像。这可以确保使用的是最新的镜像,但可能会增加部署的时间和网络负载。
  2. IfNotPresent

    • 如果本地没有该镜像,则从远程仓库拉取。如果本地已经存在同名的镜像,则直接使用本地镜像,不会尝试拉取更新。这是默认的拉取策略。
  3. Never

    • 永远不会尝试从远程仓库拉取镜像,总是使用本地镜像。如果本地没有该镜像,容器创建将失败。使用这个策略时,需要确保所有节点上都有所需的镜像。
  4. OnFailure(Kubernetes 1.19引入,Beta特性):

    • 如果本地镜像存在,首先尝试使用本地镜像启动容器。如果容器启动失败(例如,因为镜像损坏或不兼容),则尝试从远程仓库拉取镜像。

选择哪种拉取策略取决于你的具体需求和部署环境。以下是一些使用场景:

  • Always:适用于需要确保总是使用最新镜像的场景,例如持续集成和持续部署(CI/CD)流程中。
  • IfNotPresent:适用于大多数场景,因为它提供了一个平衡点,既可以使用本地镜像以减少网络负载,又可以在没有本地镜像时拉取最新镜像。
  • Never:适用于镜像不需要频繁更新的场景,或者在所有节点上预先加载了所需镜像的集群。
  • OnFailure:适用于希望减少网络请求,但同时希望在本地镜像存在问题时能够回退到远程镜像的场景。

综上所述,镜像拉取策略是在Pod定义的容器级别设置的,而不是在Service或Deployment级别。这样可以为不同的容器选择不同的策略,以满足不同容器的需求。

标签:容器,场景,策略,拉取,本地,镜像,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18357698

相关文章

  • 在K8S中,Service的类型有哪几种,请说⼀下他们的用途?
    在Kubernetes(K8s)中,Service是一种抽象,它定义了一组逻辑上相同的服务实例(即Pod)以及访问它们的策略。Service可以将外部客户端的流量路由到后端的一个或多个Pod。Kubernetes提供了几种不同类型的Service,每种都有其特定的用途:ClusterIP描述:这是默认的Service类型。Cl......
  • 在K8S中,Jenkins如何集成K8S集群?
    在Kubernetes(K8s)中集成Jenkins是一个常见场景,尤其是在持续集成/持续部署(CI/CD)流程中。以下是详细的步骤和说明,介绍如何在Kubernetes集群中部署和配置Jenkins。1.准备Kubernetes集群确保你有一个运行良好的Kubernetes集群,并且你有权限在这个集群上执行操作。如果你还......
  • 使用Github Action来拉取docker镜像
    前提只需一个github账号即可注意:免费版Action每天能使用1小时,每个月33小时(基本上够用)国内网络访问github网速并不稳定,但是用来应急还是可以的拉取逻辑GitHubAction来拉取和打包镜像从github上下载压缩包上传到自己的服务器上解压加载镜像到自己的服务器上这种......
  • 如何使用镜像源安装python库?【pip安装太慢怎么办?】
    如何使用镜像源安装python库?【pip安装太慢怎么办?】当我们使用pip安装一些python库时,会发现下载速度慢得可怜!使用国内的镜像源可以解决这个问题,让下载速度达到正常的网速。如何修改pip的默认源呢?以清华镜像源为例:pipinstallxxx-ihttps://pypi.tuna.tsinghua.edu.cn/sim......
  • k8s设置某台机器不调度
    在Kubernetes中,你可以通过给节点打上NoSchedule或NoExecute污点(taint)来阻止新的Pod调度到该节点上。以下是如何设置某台机器不调度的具体步骤:1.查看节点列表首先,查看当前的节点列表,确定你想要设置为不可调度的节点的名称:kubectlgetnodes2.给节点打污点(Tain......
  • electron 镜像
    解压node-v20.15.1-linux-x64.tar.gz到/home/cnki/vm;;环境变量~/.bashrcexportNODE_HOME=/home/cnki/vm/node-v20.15.1-linux-x64exportPATH=$NODE_HOME/bin:$PATH;;npmnpmconfigsetregistryhttp://mirrors.cloud.tencent.com/npm/electron(x64,arm)修改.......
  • macOS Sequoia 15 beta 6 (24A5320a) Boot ISO 原版可引导镜像下载
    macOSSequoia15beta6(24A5320a)BootISO原版可引导镜像下载iPhone镜像、Safari浏览器重大更新、备受瞩目的游戏和AppleIntelligence等众多全新功能令Mac使用体验再升级请访问原文链接:https://sysin.org/blog/macOS-Sequoia-boot-iso/,查看最新版。原创作品,转载请保......
  • containerd配置镜像加速器
    目录Containerd配置镜像加速器1.旧版本配置方法1.1生成containerd配置文件1.2修改配置文件2.新版本配置方法2.1创建目录2.2配置加速器3.测试拉取镜像Containerd配置镜像加速器为什么要给containerd配置镜像加速器?因为k8s1.24以后的容器运行时是containerd,也就是说k8s会......
  • 在K8S中,陈述⼀下Pod的声明周期?
    在Kubernetes(K8S)中,Pod的声明周期是指Pod从创建到终止的整个过程,它涵盖了Pod的多个状态和阶段。以下是Pod声明周期的详细解释:一、Pod的声明周期概述Pod的声明周期通常包括以下几个主要阶段:创建、初始化(可选)、运行、终止。在这些阶段中,Pod会经历不同的状态和事件,这些状态和事件共......
  • 在K8S中,陈述⼀下创建Pod的流程?
    创建Pod是Kubernetes集群管理的基本操作之一。创建Pod的流程涉及多个组件和步骤,包括APIserver、ControllerManager、Scheduler等核心组件的交互和协作。以下是创建Pod的一般流程:发起创建Pod请求认证授权:用户通过kubectl命令向APIServer发起创建Pod的请求,APIServer对请求进......