乐趣区

关于docker:赵强老师Kubernetes的探针

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

Probe 有以下两种类型:

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

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

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

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

  • exec 查看
apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec
spec:
  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: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-http
spec:
  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: v1
kind: Pod
metadata:
  name: goproxy
  labels:
    app: goproxy
spec:
  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

退出移动版