探针是由kubelet对容器执行的定期诊断。要执行诊断,kubelet调用由容器实现的Handler。有三类处理程序:
- ExecAction:在容器内执行指定命令。如果命令退出时返回码为0认为诊断成功。
- TcpsocketAction:对指定的容器ip:端口号进行TCP检查。如果端口打开则诊断成功。
- HTTPGetAction:对指定的容器ip:端口号/路径执行HTTP Get请求。如果状态码大于等于200且小于400,诊断成功。
探测结果:
- 成功:
- 失败:
- 未知:诊断失败,不会采取任何行动
探测种类:
- livenessProbe:存活检测。探测失败,kubelet会杀死容器,且容器服从其重启策略。不设该字段,默认Success
- readinessProbe:就绪探测。探测失败,端点控制器将从与pod匹配的所有svc端点中删除pod的ip地址。
- startupProbe:探测容器内应用是否已启动。如果启用startupProbe,则禁用其他探测,知道它成功为止。探测失败,kubelet将杀死容器,容器服从重启策略
readinessProbe:
apiVersion: v1 kind: Pod Metadata: name: readiness-httpget-pod namespace: default spec: containers: - name: readiness-httpget-container image: Nginx imagePullPolicy: IfNotPresent readinessProbe: httpGet: port: 80 path: /index1.html initialDelaySecods: 1 periodSeconds: 3
startupProbe:
livenessProbe: httpGet: path: /test port: 80 failureThreshold: 1 initialDelay: 10 periodSeconds: 10 startupProbe: httpGet: path: /test port: 80 failureThreshold: 10 initialDelay: 10 periodSeconds: 10
//只有startupProbe探测成功后才会交给livenessProbe。 startupProbe配置的是10*10s,所以只要应用在100s内启动都是OK的,而应用挂掉10s就会发现问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。