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