k8s基础之二 Pod
什么是pod?
pod是kubernetes中最小的单元,他由一组、一个或者多个容器组成,每个pod还包含了一个pause容器是pod的父容器。主要负责僵尸进程的回收管理,通过通过pause容器可以使同一个pod里面的多个容器共享存储网络pid、ipc等
pod探针
startupProbe:k8s1.16 后新加的探测方式,用于判断容器内程序是否启动,如果配置了startupProbe就会先禁止其他探测,直到他成功为止,成功后startupProbe将不在探测,不成功就根据策略做相应的处理
LivenssProbe
ReadinessProbe:一般用于探测容器内的程序是否健康,他的返回值如果为success,那么就代表这个容器完全启动。并且程序已经是可以接收流量的状态。
# startupProbe: # 可选,检测容器内进程是否完成启动 # httpGet: # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。 # path: /api/successStart # 检查路径 # port: 80 readinessProbe: # 可选,健康检查 httpGet: # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。 path: / # 检查路径 port: 80 # 监控端口 livenessProbe: # 可选,健康检查 #exec: # 执行容器命令检测方式 #command: #- cat #- /health #httpGet: # httpGet检测方式 # path: /_health # 检查路径 # port: 8080 # httpHeaders: # 检查的请求头 # - name: end-user # value: Jason
探针的检测方式:
ExecAction:在容器内执行一个命令,如果返回值为0,则容器健康
TCPSockerAction: 通过tcp链接检车容器内的端口是否是通的,如果是通的就认为容器健康
HTTPGetAction: 通过应用程序暴露的api地址来检查程序是否是正常的,如果状态码为200-400之间则认为容器健康
pod退出流程:
首先是用户执行删除操作--------->pod变成terminating(终止)
同时Endpoint删除该pod ip地址
PreStop的指令
用命令启动一个busybox镜像
kubectl run busybox --image=busybox:1.28 -n kube-publi