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
value
Pod资源创建过程

Pod对象的终止过程

默认情况下,所有删除操作的宽限期都是30秒,不过kubectl delete命令可以使用--grace-period=