Kubernetes-2.镜像

it2024-10-09  41

何为容器镜像(Image)? ①容器镜像承载了 封装了应用程序及其所有软件依赖的二进制数据。 ②其同时也是可执行的软件包,可以单独运行; ③该软件包对所处的runtime环境具有 Well Defined(无歧义,不会导致矛盾)的假定。

通常创建应用对应的容器镜像后将其推送至仓库,然后在Pod中引用它。

容器镜像中的概念

镜像名称, 镜像名称被赋予pause、example/mycontainer、kube-apiserver 也可以包含仓库所在的主机名,比如 fictional.registry.example/imagename 也可以包含端口号,fictional.registry.example:10443/imagename 若不指定主机名,Kubernetes默认使用Docker公共仓库。 在镜像名称之后可以添加Tag(标签),用于辨识同一镜像序列中的不同版本。若不指定Tag,Kubernetes默认使用latest PS:在生产环境中使用latest标签会使得跟踪所运行的镜像版本难度上升,也难以回滚。 所以一般使用 v1.42.0 这种有意义的TAG

更新镜像, 默认的镜像拉取策略:IfNotPresent:镜像已经存在的情况下,kubelet将不再拉取镜像。 若希望强制总是拉取镜像,可以执行: 设置容器的imagePullPolicy 为Always

使用清单(manifest)构建多架构镜像, 容器仓库不仅提供二进制的镜像,也提供容器镜像清单。Manifest可以为特定于体系结构的镜像版本引用镜像清单。使得在给镜像命名的同时,允许不同的系统基于他们所使用的机器体系取回正确的二进制镜像。 Kubernetes通常在命名容器镜像时添加后缀 -$(ARCH) 为了向前兼容,生成较老的镜像时也提供后缀。 为某镜像生成针对所有平台适用的清单时,生成XXXX-amd64 这类镜像,以便较老的配置文件或者将镜像后缀编码到其中的YAML文件也能兼容

使用私有仓库 从私有仓库取镜像时需要密钥。凭证有以下形式:

配置节点向私有仓库进行身份验证 预拉镜像 Pod中设置ImagePullSecrets(只有提供自己密钥的Pod才能访问私有仓库) 特定于厂商的扩展或本地扩展(厂商实现节点向仓库认证的机制)

最新回复(0)