k8s学习

一、简单了解

二、Pod的生命周期与拉取、重启策略

1.生命周期

2. 重启策略

适用于pod对象中的所有容器

3. 拉取策略

三、探针

就绪探针不会反复的进行重启,ready会变为0,但运行可能是running

存活探针会根据重启策略,来对pod中的容器进行重启。

mkdir /etc/k8s
kubectl delete -f /etc/k8s/nginx-pod.yaml

cat > /etc/k8s/nginx-pod.yaml <<-'EOF'
apiVersion: v1 
kind: Pod 
metadata: 
  name: pod-nginx
spec: 
  containers: 
  - name: container-nginx
    image: nginx:latest 
    ports: 
    - containerPort: 80
  	#配置存活探针,每五秒钟执行一次探测容器80端口是否准备就绪
    #而第一次探测执行前先等待10秒,留出必要的初始化时间
    livenessProbe:
      tcpSocket:
        #port: 8080
        port: 80
      initialDelaySeconds: 10
      periodSeconds: 5
    readinessProbe:
      httpGet:
        path: /abcde
        #path: /
        port: 80
        httpHeaders:
        - name: Custom-Header
          value: Awesome
      initialDelaySeconds: 3
      periodSeconds: 3      
EOF

kubectl apply -f /etc/k8s/nginx-pod.yaml
kubectl describe pod pod-nginx

在Kubernetes中,利用探针(Probes)检查Pod健康状态是一种标准化的方法,用于确保Pod内的容器处于期望的工作状态。Kubernetes提供了两种类型的探针:

  1. Liveness Probe(存活探针): 用于检测容器是否还在正常运行。如果存活探针检测失败,Kubernetes会认为容器已经进入不健康状态,kubelet会根据容器的重启策略(RestartPolicy)采取相应行动,如重启容器。这有助于自动恢复因内部错误而“卡死”但仍在运行状态的容器。

  2. Readiness Probe(就绪探针): 用于检测容器是否准备好接受流量。只有当就绪探针检测成功时,Kubernetes才会将该容器视为服务的一部分,将其纳入Service的负载均衡池。这对于确保服务只将请求路由到能够正确处理请求的容器至关重要,避免将流量导向尚未初始化完成或正在进行维护的容器。

探针可以通过以下三种方式定义和执行:

  Exec Action: 在容器内执行指定的命令,如果命令退出时返回码为0,则认为探针成功。

例如:

livenessProbe:
  exec:
    command:
    - cat
    - /healthcheck/liveness
readinessProbe:
  exec:
    command:
    - cat
    - /healthcheck/readiness

HTTP GET Action: 向容器内指定的HTTP端点发送GET请求,根据HTTP响应的状态码判断探针是否成功。可以指定超时时间(timeoutSeconds)、重试次数(periodSeconds)和初始延迟(initialDelaySeconds):

livenessProbe:
  httpGet:
    path: /health
    port: 8080
    httpHeaders:
    - name: Custom-Header
      value: Awesome-Value
readinessProbe:
  httpGet:
    path: /ready
    port: 8080

TCP Socket Action: 尝试连接到容器的指定TCP端口,如果能够建立连接,则认为探针成功:

livenessProbe:
  tcpSocket:
    port: 8080
readinessProbe:
  tcpSocket:
    port: 8080

思维导图

相关推荐

  1. k8s学习

    2024-03-31 11:26:07       33 阅读
  2. <span style='color:red;'>学习</span><span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span>

    学习k8s

    2024-03-31 11:26:07      31 阅读
  3. K8S学习

    2024-03-31 11:26:07       31 阅读
  4. k8s学习

    2024-03-31 11:26:07       33 阅读
  5. <span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span><span style='color:red;'>学习</span>

    k8s学习

    2024-03-31 11:26:07      23 阅读
  6. <span style='color:red;'>k</span><span style='color:red;'>8</span><span style='color:red;'>s</span><span style='color:red;'>学习</span>

    k8s学习

    2024-03-31 11:26:07      19 阅读
  7. <span style='color:red;'>K</span><span style='color:red;'>8</span><span style='color:red;'>S</span><span style='color:red;'>学习</span>

    K8S学习

    2024-03-31 11:26:07      12 阅读
  8. k8s学习路线

    2024-03-31 11:26:07       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 11:26:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 11:26:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 11:26:07       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 11:26:07       20 阅读

热门阅读

  1. Mybatis相关面试题详细总结

    2024-03-31 11:26:07       14 阅读
  2. 采药采药~

    2024-03-31 11:26:07       14 阅读
  3. linux redis 快速安装

    2024-03-31 11:26:07       15 阅读
  4. 2952. 需要添加的硬币的最小数量

    2024-03-31 11:26:07       19 阅读
  5. springcloud第4季 远程调用openfegin的介绍4

    2024-03-31 11:26:07       14 阅读