Kubernetes – Images
容器镜像用于表示用于封装应用程序及其所有软件依赖项的二进制数据。容器镜像可以表示为可执行软件包,这些软件包可以独立运行,并对其运行时环境做出非常明确的假设。通常,我们会创建应用程序的容器镜像并将其推送到注册表,然后再将其称为 pod。
Image Names
这些镜像可以包含诸如 pause、Kube-API server 或 example/mycontainer 之类的名称。它们还可以具有类似注册表主机名的名称。例如fictional.registry.example/imagename。它们甚至可以是端口号,如fictional.registry.example:10443/imagename。如果我们未能指定注册表主机名,Kubernetes 将假定我们将其作为 Docker 公共注册表。在镜像名称之后,我们可以添加标签。标签的主要目的是让我们识别同一镜像系列的不同版本。标签可以由小写和大写字母、句点、破折号和下划线组成。如果我们不指定标签,则默认将其视为最新标签。
Image Config File
apiVersion: v1 kind: pod metadata: name: GeeksforGeeks spec: containers: - name: gfg-image image: <docker_image_name> imagePullPolicy: Always command: ["echo", "SUCCESS"] ------------------->
让我们了解完整的配置文件
- name:GeeksforGeeks:这是从注册表中提取图像后创建的容器的名称
- name:gfg-image:这是我们想要创建的容器的名称。
- image: <docker_image_name>:-这是我们需要从 Docker Registry 中提取的镜像的名称
- imagePullPolicy:Always:此拉取策略定义,每当我们运行此文件来创建容器时,它都会再次拉取相同的名称。
- command:[“echo”,“SUCCESS”]:-如果容器成功创建,那么当我们访问该容器时它将显示一条成功消息。
Image Commands
- 拉取映像并创建容器
$ kubectl create –f <container_name>
- 检查日志
$ kubectl log Tesing_for_Image_pull
Image Updating
当我们创建 StatefulSet、pod Deployment 或任何其他包含 Pod 模板的对象时,如果未明确指定,则该 pod 中所有容器的拉取策略将默认设置为 IfNotPresent。此特定策略使 Kubelet 跳过拉取已存在的镜像。
任何容器的 imagePullPolicy 和与镜像关联的标签都会影响 kubelet 尝试下载或拉取特定镜像的时间。它们甚至可以将 imagePullPolicy 的值设置为 IfNotPresent、Always 或 Never。
当我们使用图像标签时,如果图像注册表要更改该特定图像表示上的标签代码,我们最终可能会得到混合运行新旧代码的 Pod。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了