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 选项。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/8cf314b468c8be72ca25a1a22】。文章转载请联系作者。
评论