目录
Pod问题及答案
#pod是什么
#pod重启策略有哪些
#pod的原理
#pod的创建过程
#pod镜像拉取策略
#pod的存活探针有哪几种
#pod的就绪探针有哪几种
#pod就绪探针与存活探针的区别
#kubenetes针对pod资源对象的健康监测机制
#pod的生命周期
#pod一直处于pending状态有哪些情况,怎么排查
Pod问题及答案
#pod是什么
pod是k8s中可以创建和管理的最小单元,使用多个容器共存的理念,这组容器就叫做pod,k8s不会直接处理容器,而是处理pod
#pod重启策略有哪些
pod重启容器策略是指针对pod内所有容器的重启策略,不是重启pod
1,always:当容器终止退出后,总是重启容器(默认)
2,onfailure:当容器异常退出后,退出状态码非0时,重启容器
3,never:当容器终止退出,不管退出状态码是什么,从不重启容器。
#pod的原理
一个容器运行一个进程,若想要多个进程不能汇聚同一容器中,这时就要一种更高级的结构将容器绑定在一起,并将它们作为一个单元进行管理,这就是pod产生的原理
#pod的创建过程
1,用户利用kubectl命令发起创建pos容器的需求,此需求经过apiserver存储值etcd数据库
1,Etcd数据库存储完毕后,此需求再次经过apiserver发送到scheduler,scheduler决定即将创建的容器都存放到那几台k8s节点上
3,Scheduler将容器的分配偶策略经过apiserver存储到etcd数据库
4,将创建容器的执行发给对应的node节点机上的kubelet
5,Kubelet接收到创建容器的
#pod镜像拉取策略
Ifnotpresent:默认值,若本地不存在所需镜像则联网拉取
Always:总是重新拉取,每次创建都会从仓库拉取
Never:总使用本地镜像,若本地没有则失败
#pod的存活探针有哪几种
httpGet:通过容器的IP、端口、路径发送http 请求,返回200-400内的状态码表示成功。
exec:容器内执行shell命令,退出状态码是否为0进行判断,0表示健康,非0表示不健康。
TCPSocket:与容器的IP、端口建立TCP Socket链接,能建立探测成功,不能建立探测失败。
#pod的就绪探针有哪几种
在pod中的容器定义一个就绪探针,就绪探针周期性检查容器,如果就绪探针检查失败了,说明该pod还未准备就绪,不能接受客户端链接,则该pod将从endpoint列表中移除,被剔除了service就不会把请求分发给该pod,然后就绪探针继续检查,如果随后容器就绪,则再重新把pod加回endpoint列表。
httpGet:通过容器的IP、端口、路径发送http 请求,返回200-400内的状态码表示成功。
exec:容器内执行shell命令,退出状态码是否为0进行判断,0表示健康,非0表示不健康。
TCPSocket:与容器的IP、端口建立TCP Socket链接,能建立探测成功,不能建立探测失败。
#pod就绪探针与存活探针的区别
作用不一样,存活探针是将检查失败的容器杀死,创建新的容器保持pod运行。
就绪探针是当检测失败,不重启容器,而是移除endpoint,就绪探针确保service中的pod都是可用的,确保客户端只与正常pod交互,并且客户端永远不知道系统是否存在问题。
#kubenetes针对pod资源对象的健康监测机制
1,livenessProbe(存活探针):可以根据用户自定义规则来判定pod是否健康,用于判断容器是否处于Running状态,如果不是,kubelet就会杀掉该容器,并根据重启策略做相应的处理。如果容器不包含该探针,那么kubelet就会默认返回值都是success(成功);
2,ReadinessProbe(就绪探针):同样是可以根据用户自定义规则来判断pod是否健康,容器服务是否可用(Ready),如果探测失败,从此不再将任何请求调度到此Pod上,直到下次探测成功;
3,startupProbe(启动探针):启动检查机制,应用一些启动缓慢的业务,避免业务长时间启动而被上面两类探针kill掉,这个问题也可以换另一种方式解决,就是定义上面两类探针机制时,初始化时间定义的长一些即可;
#pod的生命周期
Pending(挂起)-running(运行中)-succeed(成功)-failed(失败)-unknown(未知)
#pod一直处于pending状态有哪些情况,怎么排查
1,可能是正在拉取镜像,正在创建容器的过程。
2,调度器调度失败,(定义了新的资源请求,没有node节点满足)(node节点正处于cpu内存压力过大,无资源调度)
3,Pvc,pv无法动态创建(若storageClassName名称写错了就会造成无法创建pvc)(pvc正常创建了,但是由于某些异常原因导致动态供应存储无法正常创建pv)