提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- [一、Pod 进阶配置](#一、Pod 进阶配置)
-
- [1.1 Pod 资源限制](#1.1 Pod 资源限制)
-
- [1.1.1 核心概念](#1.1.1 核心概念)
- [1.1.2 资源单位](#1.1.2 资源单位)
- [1.2 Pod 资源限制案例](#1.2 Pod 资源限制案例)
- [1.3 健康检查(探针 Probe)](#1.3 健康检查(探针 Probe))
-
- [1.3.1 探针类型(重点)](#1.3.1 探针类型(重点))
- [1.3.2 检查方法](#1.3.2 检查方法)
- 1.3.3每次探测都将获得以下三种结果之一:
- [二、Kubernetes 探针(Probe)实践](#二、Kubernetes 探针(Probe)实践)
-
- [2.1 存活探针(Liveness Probe)实践](#2.1 存活探针(Liveness Probe)实践)
-
- [示例1:Exec 方式核心配置](#示例1:Exec 方式核心配置)
- [案例1:Exec 方式实操配置与结果](#案例1:Exec 方式实操配置与结果)
- 总结
前言

一、Pod 进阶配置
1.1 Pod 资源限制
为避免容器过度占用集群资源,K8s 支持为容器的 CPU 和内存资源设置资源请求(requests)和限制(limits)。这些设置确保了容器的资源分配和限制,避免资源争用和过度使用。
1.1.1 核心概念
请求(requests):容器启动时所需的最小资源,K8s 调度器根据此值选择有足够资源的节点;
限制(limits):容器运行时允许使用的最大资源,超出则会被限制(CPU 节流、内存 OOM 杀死)
1.1.2 资源单位
- CPU:以"毫核(m)"为单位,1 CPU = 1000m(如 500m 表示 0.5 核);
- 内存:支持二进制单位(Gi、Mi、Ki,1Gi=1024Mi)和十进制单位(GB、MB,1GB=1000MB),推荐使用二进制单位(如 64Mi、1Gi)。
1.2 Pod 资源限制案例
以下是两个常见的 Kubernetes Pod 配置示例,展示了如何为容器指定资源请求和限制:
1.3 健康检查(探针 Probe)
K8s 通过 探针 定期诊断容器状态,确保应用健康运行。探针由 kubelet 执行,分为三类:
1.3.1 探针类型(重点)
- ivenessProbe(存活探针):用于检测容器是否正常运行,若探测失败则根据重启策略重启容器。若容器未配置存活探针,默认状态为Success;
- readinessProbe(就绪探针):用于检测容器是否准备好接收请求,若探测失败则将该Pod的IP从匹配Service的endpoints中移除。在初始延迟期前,默认就绪状态为Failure。若容器未配置就绪探针,默认状态为Success;
- startupProbe(启动探针,1.17+):用于检测应用是否完成启动。若配置了启动探针,在该探针成功前其他探针均不生效(适用于启动较慢的应用)。若启动探针失败,kubelet将终止容器并根据restartPolicy进行重启。若容器未配置启动探针,默认状态为Success。
1.3.2 检查方法
- exec:在容器内执行指定命令,返回状态码 0 表示成功;
- tcpSocket:对容器 IP 地址的指定端口执行 TCP 握手检查,端口连通即判定为成功;
- httpGet:向容器 IP 地址的指定端口和路径发送 HTTP GET 请求,响应状态码在 200 至 399 范围内即视为成功。
1.3.3每次探测都将获得以下三种结果之一:
成功:容器通过了诊断。
失败:容器未通过诊断。
未知:诊断失败,因此不会采取任何行动

二、Kubernetes 探针(Probe)实践
2.1 存活探针(Liveness Probe)实践
存活探针用于检测容器是否运行正常,若探测失败,kubelet会杀死容器并根据重启策略重启容器。以下是三种常见的存活探针实现方式。
示例1:Exec 方式核心配置
java
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 60
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
failureThreshold: 1
initialDelaySeconds: 5
periodSeconds: 5
- 核心逻辑:容器启动后先创建
/tmp/healthy文件,30秒后删除该文件;
探针每5秒执行cat /tmp/healthy命令,文件存在则探测成功,文件删除后探测失败,触发容器重启。 - 关键参数说明:
initialDelaySeconds:容器启动后等待5秒再执行第一次探测(默认0秒,最小值0)。
periodSeconds:每5秒执行一次探测(默认10秒,最小值1)。
failureThreshold:探测失败1次后即触发容器重启(默认3次,最小值1)。
timeoutSeconds:探测超时时间(默认1秒,最小值1;1.20版本前exec探针忽略此参数)
案例1:Exec 方式实操配置与结果
bash
vim exec.yaml
apiVersion: v1
kind: Pod
metadata:
name: liveness-exec
namespace: default
spec:
containers:
- name: liveness-exec-container
image: busybox
imagePullPolicy: IfNotPresent
command: ["/bin/sh","-c","touch /tmp/live ; sleep 10; rm -rf /tmp/live; sleep 3600"]
livenessProbe:
exec:
command: ["test","-e","/tmp/live"]
initialDelaySeconds: 1
periodSeconds: 3
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。