[转帖]k8s镜像拉取策略 - imagePullPolicy

k8s,镜像,策略,imagepullpolicy · 浏览次数 : 0

小编点评

**镜像拉取方式选择 k8s-imagePullPolicy & containers:** * **Always:** 容器每次都从仓库上拉镜像,即使本地镜像已存在。 * **IfNotPresent:** 容器如果本地镜像已存在,则 skip 下载镜像。 * **Never:** 容器永远 skip 下载镜像。 * **latest:** 使用与容器同版本的最新镜像。 * **none:** 容器仅从 Kubernetes 仓库中拉取镜像。 **k8s 的配置文件中 imagePullPolicy 属性的默认值为 IfNotPresent。** **图像拉取总结:** 1. **本地镜像存在时:** 容器将从本地镜像仓库中拉取镜像。 2. **本地镜像不存在时:** 容器将从 Kubernetes 仓库中拉取镜像。 3. **镜像仓库已更新时:** 容器将从仓库中拉取更新后的镜像。 4. **imagePullPolicy 值设置为 Never 或 None:** 容器永远 skip 下载镜像。

正文

镜像拉取方式选择
k8s-imagePullPolicy

  1.   containers:
  2.     - name: uses-private-image
  3.       image: $PRIVATE_IMAGE_NAME
  4.       imagePullPolicy: Always
  5.       command: [ "echo", "SUCCESS" ]

k8s的配置文件中经常看到有imagePullPolicy属性,这个属性是描述镜像的拉取策略

  • Always 总是拉取镜像
  • IfNotPresent 本地有则使用本地镜像,不拉取
  • Never 只使用本地镜像,从不拉取,即使本地没有
  • 如果省略imagePullPolicy,  策略为always 

官方文档:https://kubernetes.io/docs/concepts/containers/images

The default pull policy is IfNotPresent which causes the kubelet to skip pulling an image if it already exists. If you would like to always force a pull, you can do one of the following:

set the imagePullPolicy of the container to Always.
omit the imagePullPolicy and use :latest as the tag for the image to use.
omit the imagePullPolicy and the tag for the image to use.
enable the AlwaysPullImages admission controller.
When imagePullPolicy is defined without a specific value, it is also set to Always.

 

k8s镜像拉取总结

1. docker images 本地的镜像确实有,但是kubectl apply 时一直提示pull fail:

   我这边情况是,刚开始没有使用镜像仓库(也不懂),在masters上docker images时,master节点上确实有这个镜像,但是部署时是部署到node节点的,node节点上并没有这个镜像,所以会报错

    解决这个问题有两个方法:

        1. 在node节点上也做一份镜像,问题是节点多了麻烦

        2. 使用镜像仓库(建议)

2. 当我使用镜像仓库时,更新了某个镜像之后,重新apply镜像还是没变,这个问题跟第一个问题一样,都是node节点上的镜像跟预期的不一样,解决这个问题就一个思路,让它从仓库拉镜像:

       1. 删除node节点镜像

       2. 容器的imagePullPolicy值设置为Always,让它每次都从仓库上面拉镜像。

</article>

与[转帖]k8s镜像拉取策略 - imagePullPolicy相似的内容:

[转帖]k8s镜像拉取策略 - imagePullPolicy

镜像拉取方式选择k8s-imagePullPolicy containers: - name: uses-private-image image: $PRIVATE_IMAGE_NAME imagePullPolicy: Always command: [ "echo", "SUCCESS" ] k

[转帖]【k8s】二、containerd的安装

目录 前言 安装containerd 解压安装 配置成systemd任务 安装runc ​编辑 安装cni 配置containerd镜像源 containerd基本使用 拓展阅读 nerdctl工具安装及使用 整体脚本 总结 写在后面 前言 上一篇文章,我们介绍了虚拟机的基础环境以及基础的网络配置,

[转帖]k8s对接ceph,ceph-csi方式

1.上传ceph-csi-yaml和ceph-csi-image 两个文件夹到服务器 2.加载 ceph-csi-image里面的镜像 3.将加载好的镜像上传到本地harbor上。 4.修改ceph-csi-yaml文件夹里面的 yaml文件内容 k8s对接ceph离线安装包 #csi-config

[转帖]用buildkit和containerd构建镜像

https://zhuanlan.zhihu.com/p/366671300 最近因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://gith

[转帖]用buildkit和containerd构建镜像

https://zhuanlan.zhihu.com/p/366671300 最近因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://gith

[转帖]kubelet 原理解析六: 垃圾回收

https://segmentfault.com/a/1190000022163856 概述 在k8s中节点会通过docker pull机制获取外部的镜像,那么什么时候清除镜像呢?k8s运行的容器又是什么时候清除呢? api-server: 运行在master,无状态组件,go自动内存垃圾回收 co

[转帖]k8s发布Spring cloud+eureka架构服务优雅启动停止方案

本文转载自昆仑枫的简书https://www.jianshu.com/p/6d393cbb694a Spring cloud+eureka是目前微服务主流解决方案之一,kubernetes则是广泛应用的发布工具,两者结合使用很常见。而两者结合时如何优雅启停从而实现无感发布很关键。下面将从不做特殊处理

[转帖]K8S部署Redis Cluster集群(三主三从模式) - 部署笔记

https://www.cnblogs.com/cheyunhua/p/15619317.html 一、Redis 介绍 Redis代表REmote DIctionary Server是一种开源的内存中数据存储,通常用作数据库,缓存或消息代理。它可以存储和操作高级数据类型,例如列表,地图,集合和排序

[转帖]k8s部署有状态应用redis-cluster集群踩坑总结

https://segmentfault.com/a/1190000039196137 redis-cluster集群的部署网上一堆,用k8s部署也不在少数,但都是抄来抄去,问题不少,实际操作分享出来的还是太少。 1、redis启动配置文件,使用CofigMap来管理比较方便,redis-confi

[转帖]k8s-mtu设置不当引发的线上故障

https://www.cnblogs.com/zisefeizhu/p/16611626.html 背景 在部署新的paas平台线上环境时,突发consul和es中间件无法创建。 排查过程 以consul 通过查询k8s集群中pod状态发现原来3pod的consul集群,其中2个pod一直重启。