k8s之pod
k8s pod
pod是k8s中最小的单元
pod有哪些状态
Pending:未完成调度或资源准备(等待分配节点、下载容器镜像、等待持久卷绑定、资源不足)
Running:正在运行或启动中(正常运行、崩溃重启中)
Succeeded:成功终止,且不会重启(批处理任务成功完成)
Failed:所有容器均已终止,且至少有一个容器异常退出(应用程序错误、配置错误、资源不足、镜像问题)
Unknow:无法获取pod状态,pod所在节点的kubelet通信失败(节点宕机、网络分区、kubelet进程异常)
Terminating:pod正在删除中,清理未完成
CrashLoopBackOff:容器不断崩溃并重启(应用程序配置错误、依赖缺失、资源限制、持续启动失败)
ContainerCreating:pod已被调度到节点,kubelet正在创建容器(拉取容器镜像、创建网络、存储资源)
ImagePullBackOff:拉取容器镜像失败
创建一个名为
my-pod
的 Pod,使用 nginx
镜像,并生成 YAML 文件kubectl create pod my-pod --image=nginx --dry-run=client -o yaml > my-pod.yaml
参数解析:
--dry-run=client:只模拟执行,不实际创建资源
-o yaml:输出 YAML 格式
> pod.yaml:将输出重定向到文件
文件内容如下:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: my-nginx
name: my-nginx
spec:
containers:
- image: nginx:1.23
name: my-nginx
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
启动pod
kubectl apply -f my-pod.yaml
查看pod
kubectl get pod -n 命令空间 -o wide
查看pod详情
kubectl describe pod my-pod
查看pod日志
kubectl logs my-pod
删除pod
kubectl delete pod my-pod
或者
kubectl delete -f my-pod.yaml
其他pod示例:
apiVersion: v1
kind: Pod #类型
metadata:
labels: #标签
app: web01
name: web01
spec:
containers:
- image: docker.io/library/nginx:1.28 #镜像
env:
- name: system
value: centos8.4
imagePullPolicy: IfNotPresent #镜像拉取策略:Always(总是拉取最新镜像)IfNotPresent(仅当本地不存在时拉取)Never(仅使用本地镜像,从不拉取)
name: web01 #容器名
ports:
- containerPort: 80 #容器端口
dnsPolicy: ClusterFirst
restartPolicy: Never #容器启动策略
affinity: #亲和性
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution: #硬策略
nodeSelectorTerms:
- matchExpressions:
- key: disk
operator: NotIn
values:
- sata
posted on 2025-10-11 17:42 achangleilei 阅读(9) 评论(0) 收藏 举报