Kubernetes提供了探针(Probe)对容器的衰弱性进行检测。实际上咱们不仅仅要对容器进行衰弱检测,还要对容器内安排的利用进行衰弱性检测。

Probe有以下两种类型:

  • livenessProbe:存活探针,如果查看失败,将杀死容器,依据Pod的restartPolicy重启策略操作。
  • readinessProbe:就绪探针,如果查看失败,Kubernetes会把Pod从service endpoints中剔除。

Probe反对以下三种查看办法:

  • httpGet:发送HTTP申请,返回200-400范畴状态码为胜利。
  • exec:执行Shell命令返回状态码是0为胜利。
  • tcpSocket:发动TCP Socket建设胜利。

上面咱们给出每种查看办法的配置:

  • exec查看
apiVersion: v1kind: Podmetadata:  labels:    test: liveness  name: liveness-execspec:  containers:  - name: liveness    image: busybox    args:    - /bin/sh    - -c    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600    livenessProbe:  ##  livenessProbe查看类型      exec:    ##exec查看办法        command:        - cat        - /tmp/healthy      initialDelaySeconds: 5   ##容器启动5秒后才做查看      periodSeconds: 5    ## 每隔5秒查看一次
  • httpGet查看
apiVersion: v1kind: Podmetadata:  labels:    test: liveness  name: liveness-httpspec:  containers:  - name: liveness    image: k8s.gcr.io/liveness    args:    - /server    livenessProbe:   ## livenessProbe类型      httpGet:   ## httpGet查看办法        path: /healthz        port: 8080        httpHeaders:        - name: Custom-Header          value: Awesome      initialDelaySeconds: 3      periodSeconds: 3
  • tcpSocket查看
apiVersion: v1kind: Podmetadata:  name: goproxy  labels:    app: goproxyspec:  containers:  - name: goproxy    image: k8s.gcr.io/goproxy:0.1    ports:    - containerPort: 8080    readinessProbe:   ##readinessProbe查看类型      tcpSocket:  ##tcpSocket查看办法        port: 8080      initialDelaySeconds: 5      periodSeconds: 10    livenessProbe:   ##livenessProbe查看类型      tcpSocket:   ##tcpSocket查看办法        port: 8080      initialDelaySeconds: 15      periodSeconds: 20