4.2.1 镜像及其获取策略

各工作节点负责运行Pod对象,而Pod的核心功用在于运行容器,因此工作节点上必须配置容器运行引擎,如Docker等。启动容器时,容器引擎将首先于本地查找指定的镜像文件,不存在的镜像则需要从指定的镜像仓库(Registry)下载至本地,如图 4-5 所示。

Docker及其Registry
图 1.6.2.1 - Docker及其Registry

Kubernetes 系统支持用户自定义镜像文件的获取策略,例如在网络资源较为紧张的情况下可以禁止从仓库中获取镜像文件等。容器的“imagePullPolicy”字段用于为其指定镜像获取策略,它的可用值包括如下几个。

  • Always:镜像标签为“latest”或镜像不存在时总是从指定的仓库中获取镜像。
  • ifNotPresent:仅当本地镜像缺失时方才从目标仓库下载镜像。
  • Never:禁止从仓库下载镜像,仅使用本地镜像。

下面的资源清单中的容器定义了如何使用 nginx:latest 镜像,其获取策略为 Always,这意味着每次启动容器时,他都会到镜像仓库中获取最新版本的镜像文件:

apiVersion: v1
kind: Pod
metadata:
    name: nginx-pod
spec:
    containers:
    - name: nginx
      image: nginx:latest
      imagePullPolicy: Always

对于标签为“latest”的镜像文件,其默认的镜像策略即为“always”,而对于其他标签的镜像,其默认策略则为“IfNotPresent”。需要注意的是,使用私有仓库中的镜像时通常需要由 Registry 服务器完成认证后才能进行。认证过程要么需要在相关节点上交互式执行 docker login 命令来进行,要么就是将认证信息定义为专有的 Secret 资源,并配置 Pod 通过“imagePullSecrets”字段调用此认证信息完成。后面 8.5 节会详细介绍此功能及其实现。

results matching ""

    No results matching ""