深入Pod 创建Pod:配置文件详解
资源清单参考链接:https://juejin.cn/post/6844904078909128712

飞天使-k8s知识点16-kubernetes实操1-pod-LMLPHP
飞天使-k8s知识点16-kubernetes实操1-pod-LMLPHP
飞天使-k8s知识点16-kubernetes实操1-pod-LMLPHP

写个pod的yaml 文件
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    type: app
    test: "1.0.0"
  namespace: default
spec:
  containers:
  - name: nginx
    image: nginx:1.7.9
    imagePullPolicy: IfNotPresent
    command:
    - nginx
    - -g
    - 'daemon off;'
    workingDir: /usr/share/nginx/html
    ports:
    - name: http
      containerPort: 80
      protocol: TCP 
    env:
    - name: JVM_OPTS
      value: '-Xms128m -Xmx128m'
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 200m
        memory: 256Mi
  restartPolicy: OnFailure

以下是对每个字段的解释:

apiVersion: 这个字段用来指定你要使用的 Kubernetes API 的版本。在这个例子中,你使用的是 v1 版本的 API。
kind: 这个字段用来指定你要创建的 Kubernetes 对象的类型。在这个例子中,你要创建的是一个 Pod。
metadata: 这个字段包含了一些元数据,比如 Pod 的名字、标签和命名空间。
spec: 这个字段定义了 Pod 的规格,比如包含的容器、重启策略等。
containers: 这个字段定义了 Pod 中包含的容器。每个容器都有一些字段,比如名字、镜像、命令等。
resources: 这个字段定义了每个容器的资源需求和限制。requests 定义了容器需要的最小资源,limits 定义了容器可以使用的最大资源。
restartPolicy: 这个字段定义了 Pod 中的容器在退出时应该如何重启。在这个例子中,如果容器失败,Kubernetes 将会尝试重新启动它。


飞天使-k8s知识点16-kubernetes实操1-pod-LMLPHP

深入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 次后,容器就被视为不健康。


02-07 14:30