写点什么

13 K8S 之 Pod 资源操作

  • 2021 年 11 月 13 日
  • 本文字数:945 字

    阅读完需:约 3 分钟

13 K8S之Pod资源操作

一个 Pod 对象的核心职责在于以主容器形式运行单个应用,因而定义 API 资源的关键配置就在于定义该容器,它以对象形式定义在 Pod 对象的 spec.containers 字段中。


Kubernetes 系统支持用户自定义容器镜像文件的获取策略,例如在网络资源较为紧张时可以禁止从仓库中获取镜像文件,或者不允许使用工作节点本地镜像等。容器的 imagePullPolicy 字段用于为其指定镜像获取策略,它的可用值包括如下几个:

Always:每次启动 Pod 时都要从指定的仓库下载镜像。

IfNotPresent:仅本地镜像缺失时方才从目标仓库 wp 下载镜像。

Never:禁止从仓库下载镜像,仅使用本地镜像。


对于标签为 latest 的镜像文件,其默认的镜像获取策略为 Always其他标签的镜像,默认策略则为 IfNotPresent


若删除后 Pod 一直处于 Terminating 状态,则可再一次执行删除命令,并同时使用--force 和--grace-period=0 选项进行强制删除。


kubectl describe:显示资源的详情,包括运行状态、事件等信息,但不同的资源类型输出内容不尽相同。


kubectl logs:查看 Pod 对象中容器输出到控制台的日志信息;当 Pod 中运行有多个容器时,需要使用选项-c 指定容器名称。日志查看命令仅能用于打印存在于 Kubernetes 系统上的 Pod 中容器的日志,对于已经删除的 Pod 对象,其容器日志信息将无从获取。


kubectl exec:在 Pod 对象某容器内运行指定的程序,其功能类似于 docker exec 命令,可用于了解容器各方面的相关信息或执行必需的设定操作等,具体功能取决于容器内可用的程序。有时候需要打开容器的交互式 shell 接口以方便多次执行命令,为 kubectl exec 命令额外使用-it 选项,并指定运行镜像中可用的 shell 程序就能进入交互式接口。


向 Pod 对象中容器环境变量传递数据的方法有两种:env 和 envFrom。通过环境变量的配置容器化应用时,需要在容器配置段中嵌套使用 env 字段,它的值是一个由环境变量构成的列表。每个环境变量通常由 name 和 value 字段构成。

name <string>:环境变量的名称,必选字段。

value <string>:传递给环境变量的值,通过 $(VAR_NAME)引用,逃逸格式为 $$(VAR_NAME)默认值为空。

Pod 资源创建过程


Pod 对象的终止过程

默认情况下,所有删除操作的宽限期都是 30 秒,不过 kubectl delete 命令可以使用--grace-period=<seconds>选项自定义其时长,使用 0 值则表示直接强制删除指定的资源,不过此时需要同时为命令使用--force 选项。


发布于: 刚刚阅读数: 4
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
13 K8S之Pod资源操作