pod探针和状态

发布于:2024-08-12 ⋅ 阅读:(156) ⋅ 点赞:(0)

探针

3种探针:探测pod里的容器是否存放、就绪、启动

  • 优先级顺序: startupProbe--》readinessProbe--》livenessProbe

4种检测方式:

    exec    httpget           grpc   tcpsocket

  • startupProbe能和其他的探针共存,如果startupProbe执行失败,就不再执行其他的探针了,如果执行成功,还是会执行其他探针

当探针发现pod没有运行的时候,kubelet会根据pod的重启策略,重启pod,提升了app的稳定性

探测结果:success dailure unknown

  • 1.执行命令 exec 2.扫描端口 tcpSocket -->nc nmap 3.访问你的网站(适合跑web程序的容器) httpget --》使用http协议访问 4. gRPC 远程调用访问某个端口--》使是grpc协议去访问

容器的状态:waiting  running terminated

pod状态

  1. Pending:
    • Pod正在被调度或者容器正在创建或拉取镜像。调度器没有找到合适的节点服务器去运行pod
    • 等待资源(如节点,cpu,内存不足)可用、镜像拉取失败、有污点,安全策略阻止启动等。
  2. Running:
    • 所有容器都在运行,至少有一个容器还没有终止。
    • 这通常意味着Pod正常运行,但是也可能是某些容器重启后再次运行。
  3. Succeeded:
    • Pod的所有容器都成功终止,且不会重启。
    • 例如,一个Job类型的Pod完成了它的工作并成功退出。
  4. Failed:
    • Pod的所有容器都已终止,并且至少有一个容器以失败状态退出。
    • 原因可能包括应用程序错误、资源耗尽、网络问题或其他运行时故障。
  5. Unknown:
    • 无法从Kubernetes API服务器获取Pod的状态信息。
    • 这可能是因为节点宕机、网络分区或Kubelet服务不可用。

除了上述状态,还有几个与Pod相关的子状态,可以通过kubectl describe pod <pod_name>命令查看,这些子状态提供了更详细的健康和性能信息。例如:

  • ContainerCreating: 正在为Pod创建容器。
  • CrashLoopBackOff: 容器在短时间内多次失败并重启,触发了重试机制。死循环 启动杀死
  • ErrImagePull: 在尝试拉取容器镜像时遇到错误。网络问题
  • ImagePullBackOff: 镜像拉取失败,网络不通或网速慢正在等待重试。
  • Terminating: Pod正在被删除,容器正在停止。

   6.init:0/2:  初始化容器失败 initialize

  • completed
    • pod里的容器主进程已经退出,容器没有退出   死而不僵
  • OOMKilled
    • 使用的内存超过范围被杀死  out of memory

生命周期:

& 放后台挂起

pcb进程控制块:pid status address进程存在的唯一凭证

zombie 僵尸进程: 进程已经退出,但是还占用内存空间

                进程由pcb(进程控制块)+ code程序代码  + data数据

                pcb(进程控制块):pid  、status、address: 进程存在的唯一凭证--》

                杀死僵尸进程的父进程

pstree -p 查看到僵尸进程的信息

nc 是端口扫描(嗅探),探测别人的服务器开放了哪些端口

[root@k8s-master-1 probe]# netstat -anplut|grep -i listen  netstat  查看自己的服务器开放了哪些端口

tcp        0      0 127.0.0.1:10257         0.0.0.0:*               LISTEN      2500/kube-controlle

[root@k8s-master-1 probe]# nc -z -w 1  192.168.205.141 22

-z  不发送数据  -w  指定超时时间

[root@k8s-master-1 probe]# echo $?    0

[root@k8s-master-1 probe]# nc -z -w 1  www.baidu.com 22

[root@k8s-master-1 probe]# echo $?     1