用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

haay    -  云代码空间

——

Kubernetes探针使用介绍

2022-08-16|343阅||

摘要:一、基本介绍当我们在 k8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这是很难判断出应用是否处于运行状态的;因为在某些时候,容器正常运行并不能代表应用

一、基本介绍

当我们在 k8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这是很难判断出应用是否处于运行状态的;因为在某些时候,容器正常运行并不能代表应用健康,所以我们可以通过 kubernetes 提供的探针。

使用探针来判断容器内运行的应用是否运行正常。官方文档

kubernetes 的探针有三种类型:

就绪探针(readiness probe):判断容器是否已经就绪,若未就绪,容器将会处于未就绪。

存活探针(liveness probe):判断容器内的应用程序是否正常,若不正常,k8s 将会重新重启容器。

启动探针(startup probe):判断容器内的应用是否启动完成(在启动探针判断成功前,就绪探针和存活探针将不会执行)

探针方式:

exec:通过在容器内执行指定命令,来判断命令退出时返回的状态码,如果为 0 表示正常。

httpget:通过对容器的 ip 地址、端口和 url 路径来发送 get 请求;如果响应的状态码在 200 ~ 399 间,表示正常。

tcpsocket:通过对容器的 ip 地址和指定端口,进行 tcp 检查,如果端口打开,表示正常。

配置项:

initialdelayseconds:等待我们定义的时间 结束后便开始探针检查;

periodseconds:探针的 间隔时间;

timeoutseconds:探针的 超时时间,当超过我们定义的时间后,便会被视为失败;

successthreshold:探针的 最小连续成功数量;

failurethreshold:探针的 最小连续失败数量;

下面我们分别对这三种探针使用了不同的探针方式,主要是为了方便给大家做一个简单的介绍,并不是固定写法;同时,这三种探针是可以配合使用的;像一般比较常见的便是 就绪探针和存活探针配合使用(启动探针是在 k8s 1.6 版本后增加的)

二、k8s 探针使用介绍

1)就绪探针:

[root@k8s-master01 ~]# vim tomcat-service.yaml
apiversion: v1
kind: pod
metadata:
  name: tomcat-service
spec:
  containers:
  - name: tomcat-service
    image: tomcat:8.5.32
    ports:
    - containerport: 8080
    readinessprobe:
      failurethreshold: 3
      tcpsocket:
        port: 8080
      initialdelayseconds: 20
      periodseconds: 3
      successthreshold: 1
      timeoutseconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-service.yaml

在这里插入图片描述

我们可以通过 describe 来查看 pod 的信息

[root@k8s-master01 ~]# kubectl describe pod tomcat-service

2)存活探针:

[root@k8s-master01 ~]# vim tomcat-web-server.yaml
apiversion: v1
kind: pod
metadata:
  name: tomcat-web-server
spec:
  containers:
  - name: tomcat-web-server
    image: tomcat:8.5.32
    ports:
    - containerport: 8080
    livenessprobe:
      failurethreshold: 3
      httpget:
        path: /
        port: 8080
        scheme: http                        # 可以使用 http 或 https 方式
      initialdelayseconds: 20
      periodseconds: 3
      successthreshold: 1
      timeoutseconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-web-server.yaml

上面重启是因为,当存活探针或启动探针判断不成功时,便会将容器关闭;后面将牵扯到容器的重启策略。

容器默认的重启策略为 always(即,当容器退出时,将要退出的容器进行重启)

3)启动探针:

[root@k8s-master01 ~]# vim tomcat-async-service.yaml
apiversion: v1
kind: pod
metadata:
  name: tomcat-async-service
spec:
  containers:
  - name: tomcat-async-service
    image: tomcat:8.5.32
    ports:
    - containerport: 8080
    startupprobe:
      failurethreshold: 3
      exec:
        command: ['/bin/sh','-c','echo hello world']
      initialdelayseconds: 20
      periodseconds: 3
      successthreshold: 1
      timeoutseconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-async-service.yaml

以上就是kubernetes探针使用介绍的详细内容,更多关于kubernetes探针的资料请关注云代码其它相关文章!



顶 5踩 5收藏
文章评论
    发表评论

    个人资料

    • 昵称: haay
    • 等级: 中级程序员
    • 积分: 110
    • 代码: 0 个
    • 文章: 2 篇
    • 随想: 0 条
    • 访问: 0 次
    • 关注

    人气代码

      最新提问

        站长推荐