Endpoint Health Checker
目录
Overview
Endpoint Health Checker 是一个集群插件,旨在监控和管理服务端点的健康状态。它会自动将不健康的端点从负载均衡器中移除,确保流量仅路由到健康的实例,从而提升整体服务的可靠性和可用性。
Key Features
- 自动健康监控:持续监控服务端点的健康状态
- 负载均衡器集成:自动将不健康的端点从负载均衡轮换中移除
- 服务可用性:确保流量仅导向健康且可用的端点
Installation
Install via Marketplace
-
进入 管理员 > Marketplace > 集群插件。
-
在插件列表中搜索“Alauda Container Platform Endpoint Health Checker”。
-
点击 安装,打开安装配置页面。
-
等待插件状态变为“Ready”。
How It Works
Health Check Mechanism
Endpoint Health Checker 是一个专用的健康监控组件,确保只有健康的端点接收流量。它通过监控服务端点并自动管理其可用状态来实现。
Core Functionality
Endpoint Health Checker 的工作原理:
- 服务发现:识别配置了健康监控的服务和 Pod
- Pod 健康监控:监控支撑服务端点的 Pod 的就绪和存活探针状态
- 主动健康检查:使用可配置的标准执行主动健康评估:
- TCP 连接检查:建立 TCP 连接以验证端口可访问性
- HTTP/HTTPS 响应验证:发送 HTTP 请求并验证响应码和内容
- 端点管理:自动将不健康的端点从服务端点列表中移除,防止流量路由到故障实例
Health Check Process
健康检查流程包括:
- 探针集成:利用 Kubernetes 的就绪和存活探针结果作为初步健康指标
- 网络连通性:向目标端点端口发送 TCP 或 HTTP 数据包以验证可访问性
- 响应验证:评估响应状态、时长和内容以判断端点健康状况
- 自动故障转移:将无响应或失败的端点从负载均衡轮换中移除
Activation Methods
健康检查可通过两种方式激活:
-
Pod 级注解(推荐):
在 Deployment 的 Pod 模板中添加注解:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-demo
spec:
replicas: 10
selector:
matchLabels:
app: nginx-demo
template:
metadata:
labels:
app: nginx-demo
annotations:
endpoint-health-checker.io/enabled: "true"
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 5
periodSeconds: 5
-
Pod 级 readinessGates(旧版):
为旧版本配置 Pod 的 readinessGates:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-demo-legacy
spec:
replicas: 5
selector:
matchLabels:
app: nginx-demo-legacy
template:
metadata:
labels:
app: nginx-demo-legacy
spec:
readinessGates:
- conditionType: "endpointHealthCheckSuccess"
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
livenessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 80
initialDelaySeconds: 5
periodSeconds: 5
注意:readinessGates 配置来自旧版本。建议新部署使用 Pod 注解 endpoint-health-checker.io/enabled: "true"
。
Uninstallation
卸载 Endpoint Health Checker:
-
进入 管理员 > Marketplace > 集群插件。
-
找到已安装的“Endpoint Health Checker”插件。
-
点击选项菜单,选择 卸载。
-
按提示确认卸载。