• K8S学习记录


    K8S学习记录 - 健康检查

    进程健康检查

    健康检查最简单的方式就是检查进程的状态。

    Kubelet 不断的询问 Docker daemon 这个容器进程是否还在运行,如果没有,这个容器就会被重启。

    目前在所有 Kubernetes 的案例中,这种健康检查是一直开启的。对与 Kubernetes 中所有运行的容器都是生效的。

    然而,在很多场景中这个低级别的健康检查是没有作用的:比如进程也一直在运行,但是从应用的角度看,代码已经死锁,而且不会有正确的响应。

    一、Readiness Probe

    就绪检查:旨在让Kubernetes知道您的应用何时准备好其流量服务。

    二、Liveness Probe

    存活检查:

    让Kubernetes知道你的应用程序是活着还是死了。

    如果你的应用程序还活着,那么Kubernetes就不管它了。

    如果你的应用程序已经死了,Kubernetes将删除Pod并启动一个新的替换它。

    三、探针类型

    HTTP

    HTTP探针可能是最常见的自定义Liveness探针类型。 即使您的应用程序不是HTTP服务,您也可以在应用程序内创建轻量级HTTP服务以响应Liveness探针。

    Kubernetes去ping一个路径,如果它得到的是200或300范围内的HTTP响应,它会将应用程序标记为健康。 否则它被标记为不健康。

    Command

    对于Command探针,Kubernetes则只是在容器内运行命令。 如果命令以退出代码0返回,则容器标记为健康。

    否则,它被标记为不健康。 当您不能或不想运行HTTP服务时,此类型的探针则很有用,但是必须是运行可以检查您的应用程序是否健康的命令。

    TCP

    最后一种类型的探针是TCP探针,Kubernetes尝试在指定端口上建立TCP连接。 如果它可以建立连接,则容器被认为是健康的;否则被认为是不健康的。

    如果您有HTTP探针或Command探针不能正常工作的情况,TCP探测器会派上用场。 例如,gRPC或FTP服务是此类探测的主要候选者。

    四、示例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: web
      name: web
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: web
      template:
        metadata:
          labels:
            app: web
        spec:
          restartPolicy: Always
          containers:
          - image: nginx
            imagePullPolicy: IfNotPresent
            name: web
            ports:
            - containerPort: 80
            livenessProbe:
              tcpSocket:
                port: 80
              initialDelaySeconds: 5
              periodSeconds: 5
            readinessProbe:
              httpGet:
                path: /index.html
                port: 80
              initialDelaySeconds: 5
              periodSeconds: 5
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: web
      name: web
    spec:
      ports:
      - port: 80
        protocol: TCP
      selector:
        app: web
      type: NodePort

    参考资料

    Kubernetes集群健康检查最佳实践

    Kubernetes 集群健康检查最佳实践

    Kubernetes中Pod的健康检查

    k8s deployment健康检查

    K8S配置健康检查

  • 相关阅读:
    merge sorted array
    Remove Duplicates from Sorted List
    climbing stairs(爬楼梯)(动态规划)
    点击事件加不上,换个位置调用
    The file couldn’t be opened because you don’t have permission to view it
    网络——性能调优
    SDWebImage缓存图片的机制(转)
    本地推送 简单代码演示
    UILable点击事件
    点击背景键盘退下
  • 原文地址:https://www.cnblogs.com/wangwangfei/p/14491282.html
Copyright © 2020-2023  润新知