概述
Kubelet是运行在每个节点上面,接收Api server 发来的pod修改/新增/删除等操作,并且监听节点状态、pod的状态、管理镜像等等。
按照上面描述,那我们看一下节点上kubelet监听的端口。
netstat -anp | grep kubelet
可以看到kubelet是监听了10250和10248端口。
图解
下面图片展示了Kubelet管理的对象。
ProbeManager
介绍摘自官网配置存活、就绪和启动探针 | Kubernetes
kubelet 使用存活探针来确定什么时候要重启容器。 例如,存活探针可以探测到应用死锁(应用程序在运行,但是无法继续执行后面的步骤)情况。 重启这种状态下的容器有助于提高应用的可用性,即使其中存在缺陷。
kubelet 使用就绪探针可以知道容器何时准备好接受请求流量,当一个 Pod 内的所有容器都就绪时,才能认为该 Pod 就绪。 这种信号的一个用途就是控制哪个 Pod 作为 Service 的后端。 若 Pod 尚未就绪,会被从 Service 的负载均衡器中剔除。
kubelet 使用启动探针来了解应用容器何时启动。 如果配置了这类探针,你就可以控制容器在启动成功后再进行存活性和就绪态检查, 确保这些存活、就绪探针不会影响应用的启动。 启动探针可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀掉。
1、通过HTTP方式做健康探测
2、通过exec方式做健康探测
3、通过TCP方式做探针
4、定义 gRPC 存活探针 1.24beta版新增
下面演示用HTTP方式
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-http
spec:
containers:
- name: liveness
image: registry.k8s.io/liveness
args:
- /server
livenessProbe:
httpGet:
path: /healthz
port: 8080
httpHeaders: