为了账号安全,请及时绑定邮箱和手机立即绑定

【赵渝强老师】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
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消