K8s环境下如何指定待执行健康检查的Pod的IP地址
- 不需要额外部署第三方Pod来执行健康检查。Kubernetes的liveness、readiness、startup三类探针都是由节点上的
kubelet组件原生负责执行的,kubelet本身就管理当前节点上所有运行的Pod,不需要额外的探针服务。 - 你不需要手动指定待检查Pod的IP地址。健康探针配置是直接写在你的微服务工作负载(Deployment/StatefulSet等)的Pod模板里的,每一个Pod副本创建后,对应节点的kubelet会自动获取该Pod的IP,按照你配置的端口、路径发起HTTP检查请求。
你只需要把探针配置添加到Pod模板中对应容器的配置段即可,参考配置示例:
apiVersion: apps/v1 kind: Deployment metadata: name: your-microservice spec: replicas: 2 selector: matchLabels: app: your-microservice template: metadata: labels: app: your-microservice spec: containers: - name: your-microservice-container image: your-microservice-image:tag ports: - containerPort: 8080 # 存活探针配置 livenessProbe: httpGet: path: /health/liveness # 替换为你的服务实际存活检查接口路径 port: 8080 # 替换为你的服务实际监听的端口 initialDelaySeconds: 5 periodSeconds: 10 failureThreshold: 3 # 就绪探针配置 readinessProbe: httpGet: path: /health/readiness # 替换为你的服务实际就绪检查接口路径 port: 8080 initialDelaySeconds: 10 periodSeconds: 5 failureThreshold: 2
如果需要查看单个Pod的探针执行情况,可以执行kubectl describe pod <具体Pod名称>,在Events段可以看到探针的执行记录和结果。
内容的提问来源于stack exchange,提问作者Marcin Gemra
相关产品推荐
相关产品推荐

