probe有4种检测方式:exec,grpc,http,tcp 最终的初始化代码 // pkg/kubelet/prober/prober.go:56 func newProber( runner kubecontainer.CommandRunner, recorder record.EventRecorder) *prober { const followNonLocalRedirects = false return &prober{ exec: execprobe.New(), http: httpprobe.New(...
gRPC 探针是一个 alpha 特性,只有在你启用了 "GRPCContainerProbe" 特性时才能使用。 三、探测结果 (1)Success(成功),容器通过了诊断。 (2)Failure(失败),容器未通过诊断。 (3)Unknown(未知),诊断失败,因此不会采取任何行动。 四、容器探测案例 apiVersion: v1 kind: Pod metadata: name: myhello-pod name...
一、探针类型 1.1livenessProbe存活探针 用于判断容器是否存活(running状态),如果LivenessProbe探针探测到容器不健康,则kubelet杀掉该容器,并根据容器的重启策略做相应的处理。如果一个容器不包含LivenessProbe探针,则kubelet认为该容器的LivenessProbe探针返回的值永远是“Success”。 1.2readinessProbe就绪探针 用于判断容器...
gRPC 探针是一个 alpha 特性,只有在你启用了"GRPCContainerProbe" 特性门控时才能使用。 httpGet:对容器的IP和URL进行HTTP的GET请求,当响应码为大于等于200且小于400,表示容器正常运行。 tcpSocket:对容器内的端口或socket进行TCP检查,如果端口成功打开,证明容器正常运行。 探针的返回结果: Success(成功):容器通过了...
使用gRPC 执行一个远程过程调用。了解一下即可。 探针类型 看deploy coredns 的yaml kubectl get deploy coredns -n kube-system -oyaml 后面的为截取的内容 livenessProbe 存活探针,指示容器是否正在运行。如果存活状态探测失败,则 kubelet 会杀死容器, 并且容器将根据其重启策略决定何时重启。如果容器不提供存活探针...
gRPC:gRPC远程过程调用实现方式 容器探针 | 探测结果 不管是那种每次探测都将获得以下三种结果之一: Success(成功)容器通过了诊断。 Failure(失败)容器未通过诊断。 Unknown(未知)诊断失败,因此不会采取任何行动. 方式一:exec |命令实现方式: 在容器内执行特定命令。如果命令退出时返回码为 0 则认为诊断成功。
选择您喜欢的语言找到gRPC“health”模块并开始使用它(例如Go库)。 将grpc_health_probe二进制文件打到容器中。 配置Kubernetes“exec”探针以调用容器中的“grpc_health_probe”工具。 或者参考:https://github.com/americanexpress/grpc-k8s-health-check
name: grpc livenessProbe: httpGet: path: /-/healthy port: http --- apiVersion: v1 kind: Service metadata: labels: app: thanos-query name: thanos-query spec: type: LoadBalancer ports: - name: http port: 10901 targetPort: http
spec:containers:-name:xxximage:xxxports:-containerPort:8090name:gRPCprotocol:TCP# 就绪检查readinessProbe:initialDelaySeconds:30# 延迟探测时间(秒)【在k8s第一次探测前等待秒 】periodSeconds:2# 执行探测频率(秒) 【 每隔秒执行一次 】timeoutSeconds:1# 超时时间successThreshold:1# 健康阀值failureThreshold:3...
➢ Custom Components(CSI存储插件):主要包含CSI Identity、CSI Controller、CSI Node三个部分,是需要开发者通过编码来实现的,并以gRPC的方式对外提供服务。 CSI Identity:用于对外暴露这个插件本身的信息,确保插件的健康状态。 service Identity { // 返回插件的名称和版本 ...