k8s-pod

发布时间 2023-10-22 18:45:23作者: 村尚chun叔
Pod是Kubernetes最小的管理单位,一个Pod可以封装一个容器或多个容器
一个Pod里的多个容器可以共享存储和网络, 可以看作一个逻辑的主机

获取pod帮助方法:
kubectl explain pod

查看pod信息:
kubectl get pod -n namespace -o wide

查看pod的yaml文件:kubectl get pod pod名 -n namespace -o yaml > pod名.yaml  
不会写yaml可以用这样方法去改写yaml

查看全部namespace的pod信息:
kubectl get pods --all-namespace

删除pod:
kubectl delete pod memory-demo

删除test命名空间下的全部pod:
kubectl delete pod --all -n test

描述pod详细信息:
kubectl describe pod pod名

pod状态:
Pending --> pod创建已经提交到Kubernetes。但是,因为某种原因而不能顺利创建。例如下载镜像慢,调度不成功。
Running --> pod已经绑定到一个节点,并且已经创建了所有容器。至少有一个容器正在运行中,或正在启动或重新启动。
completed --> Pod中的所有容器都已成功终止,不会重新启动。
Failed --> Pod的所有容器均已终止,且至少有一个容器已在故障中终止。也就是说,容器要么以非零状态退出,要么被系统终止。
Unknown --> 由于某种原因apiserver无法获得Pod的状态,通常是由于Master与Pod所在主机kubelet通信时出错。
CrashLoopBackOf --> 多见于CMD语句错误或者找不到container入口语句导致了快速退出,可以用kubectl logs 查看日志进行排错

k8s获取命名空间下的所有资源
kubectl get all -n namespace

查看pod的标签:
kubectl get pods --show-labels

给pod打标签:
kubectl label pod pod名 region=huanai zone=A env=test bussiness=game

显示pod的指定标签:
kubectl get pods -L region,zone,标签名

通过等值关系标签查询:
kubectl get pods -l zone=A

通过集合关系标签查询:
kubectl get pods -l "zone in (A,B,C)"

删除pod标签:
kubectl label pod pod名 region- zone- env- bussiness- 标签名-

通过标签选择删除test命名空间下的pod:kubectl delete pod -l app1=nginx1.25 -n test