文章目录
- 深入Pod 创建Pod:配置文件详解
- 写个pod的yaml 文件
- 深入Pod 探针:探针技术详解
深入Pod 创建Pod:配置文件详解
资源清单参考链接:https://juejin.cn/post/6844904078909128712
写个pod的yaml 文件
apiVersion: v1
kind: Pod
metadata:name: my-podlabels:type: apptest: "1.0.0"namespace: default
spec:containers:- name: nginximage: nginx:1.7.9imagePullPolicy: IfNotPresentcommand:- nginx- -g- 'daemon off;'workingDir: /usr/share/nginx/htmlports:- name: httpcontainerPort: 80protocol: TCP env:- name: JVM_OPTSvalue: '-Xms128m -Xmx128m'resources:requests:cpu: 100mmemory: 128Milimits:cpu: 200mmemory: 256MirestartPolicy: OnFailure以下是对每个字段的解释:apiVersion: 这个字段用来指定你要使用的 Kubernetes API 的版本。在这个例子中,你使用的是 v1 版本的 API。
kind: 这个字段用来指定你要创建的 Kubernetes 对象的类型。在这个例子中,你要创建的是一个 Pod。
metadata: 这个字段包含了一些元数据,比如 Pod 的名字、标签和命名空间。
spec: 这个字段定义了 Pod 的规格,比如包含的容器、重启策略等。
containers: 这个字段定义了 Pod 中包含的容器。每个容器都有一些字段,比如名字、镜像、命令等。
resources: 这个字段定义了每个容器的资源需求和限制。requests 定义了容器需要的最小资源,limits 定义了容器可以使用的最大资源。
restartPolicy: 这个字段定义了 Pod 中的容器在退出时应该如何重启。在这个例子中,如果容器失败,Kubernetes 将会尝试重新启动它。
深入Pod 探针:探针技术详解
重启,为啥能重启? 因为探针的存在在 Kubernetes 中,Pod 的容器可以使用探针(Probes)来检查其运行状态。探针有三种类型:Liveness Probe:用来检查容器是否还在运行。如果 Liveness Probe 失败,Kubernetes 会杀掉容器,然后根据其重启策略来处理。Readiness Probe:用来检查容器是否已经准备好接受请求。如果 Readiness Probe 失败,Kubernetes 不会将流量转发到该Pod。Startup Probe:用于检查容器应用程序是否已启动。如果设置了这个探针,其他探针将被禁用,直到这个探针成功为止。每种探针的状态可以是成功(Success)、失败(Failure)或者未知(Unknown)。Kubernetes 中的 Pod 容器可以使用三种类型的探针来检查其状态:Liveness Probe、Readiness Probe 和 Startup Probe。它们可以告诉 Kubernetes 容器是否还在运行,是否准备好接受请求,以及应用程序是否已启动。每种探针都有三种可能的状态:成功、失败和未知Kubernetes 提供了三种方式来进行探测:HTTP GET、TCP Socket 和 Exec。HTTP GET 会向容器的指定路径发送 GET 请求,如果响应状态码在 200 到 399 之间,那就视为探测成功。TCP Socket 探测会试图在指定端口上打开一个 TCP 连接,如果连接成功,那就视为探测成功。Exec 探测则会在容器内执行一个指定的命令,如果命令的退出状态为 0,那就视为探测成功。initialDelaySeconds: 容器启动后,等待多少秒开始进行健康检查。在这个例子中,容器启动后 60 秒开始健康检查。
timeoutSeconds: 健康检查请求的超时时间。在这个例子中,健康检查请求超过 2 秒没有响应,就被视为超时。
periodSeconds: 健康检查的频率。在这个例子中,每 5 秒进行一次健康检查。
successThreshold: 健康检查连续成功多少次后,容器被视为健康。在这个例子中,健康检查连续成功 1 次后,容器就被视为健康。
failureThreshold: 健康检查连续失败多少次后,容器被视为不健康。在这个例子中,健康检查连续失败 2 次后,容器就被视为不健康。