微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

k8s探针

探针是由kubelet对容器执行的定期诊断。要执行诊断,kubelet调用由容器实现的Handler。有三类处理程序:

  1. ExecAction:在容器内执行指定命令。如果命令退出时返回码为0认为诊断成功。
  2. TcpsocketAction:对指定的容器ip:端口号进行TCP检查。如果端口打开则诊断成功。
  3. 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] 举报,一经查实,本站将立刻删除。

相关推荐