Pod 是 Kubernetes 中最小的管理单位,可以认为 Pod 是一组(一个或多个)应用程序的容器,这些容器共享存储、网络等。
一、基本使用
1. 创建Pod
pod和其它Kubernetes中的资源通常是通过向Kubernetes REST API提供JSON或YAML描述文件来创建的,接下来以定义YAML文件的形式来创建pod。
# 描述文件遵循v1版本的Kubernetes API
apiVersion: v1
# 描述的是一个pod资源
kind: Pod
metadata:
name: 【pod名称】
spec:
containers:
- image: 【镜像名称】
name: 【容器名称】
ports:
- containerPort: 【监听的端口号】
protocol: TCP
通过命令行从YAML文件(pod-demo.yaml)创建pod
kubectl create -f pod-demo.yaml
2. 查看pod
查看新创建的pod,默认列出命名空间下的pod列表
kubectl get pods
获取pod的完整定义,以YAML格式展示。这里也可以将yaml换成json
kubectl get po pod-demo -o yaml
获取pod详情
kubectl describe pod 【pod名称】
3. 查看pod的日志
kubectl logs 【pod名称】
4. 停止和移除pod
kubectl delete po pod-demo
如果是通过Deployment或者其它方式创建的pod,需要删除对应的pod创建规则,否则pod会被重新创建
二、pod概况
1. pod的生命周期
Pod在整个生命周期中,一共会有5种状态,会体现在pod的status字段上,状态值分别如下:
- Pending:已被kubenetes接受,但是处于未创建未运行状态;
- Running:pod中的容器已被创建;
- Succeeded:pod中的容器已成功终止,且不会重启;
- Failed:pod中的容器,异常退出或被系统终止;
- Unknown:无法获取pod状态。
2. pod的重启策略
Pod 的 spec 中包含一个 restartPolicy 字段,该字段定义了pod内容器的重启策略,其可能取值包括:
- Always:容器失效时自动重启,默认值
- OnFailure:容器异常终止时重启
- Never:不重启
kubelet 会按指数回退方式计算容器重启的延迟(10s、20s、40s、...),其最长延迟为 5 分钟。当容器成功执行10分钟后,重置计时器。
pod的调度、扩容缩容等,后续内容补充