首页 > 技术文章 > 深入解析Pod对象

syavingcs 2021-02-17 20:17 原文

命令

kubectl get pods ## 查看默认ns内的pod
kubectl get pods -n ns ## 查看指定ns内的pod
kubectl get pods -o wide 
kubectl get pods -o yaml
kubectl exec -it mypod --/bin/sh
kubectl exec -it mypod --/bin/sh -n ns
kubectl top pod
kubectl describe pod mypod
kubectl describe pod mypod -n ns
kubectl exec mypod -- netstat -ntl

概念

Pod 最重要的一个事实是:它只是一个逻辑概念。
Kubernetes 真正处理的,还是宿主机操作系统上 Linux 容器的 Namespace 和 Cgroups,而并不存在一个所谓的 Pod 的边界或者隔离环境。
Pod 里的所有容器,共享的是同一个 Network Namespace,并且可以声明共享同一个 Volume。

引用 极客时间-张磊-深入剖析Kubernetes

•最小部署单元
•一组容器的集合
•一个Pod中的容器共享网络命名空间
•Pod是短暂的

Pod为亲密性应用而存在。
亲密性应用场景:
•两个应用之间发生文件交互
•两个应用需要通过127.0.0.1或者socket通信(典型组合:nginx+php)
•两个应用需要发生频繁的调用

annotations
与label不同的地方在于 它不能用于挑选资源对象,仅用于为对象提供“元数据”

Pod生命周期
状态: Pending,Running,Failed,Succeeded,Unknown

Pod生命周期中的重要行为
1、初始化容器
2、容器探测:liveness、readiness

restartPolicy
Always、onFailure、Never、Default to Always

推荐阅读