k8s之Pod

什么是Pod

通俗的来讲就是以pause为基础容器,其它容器共享pause容器的网络名称空间、主机名以及进程间通信,组成的一个逻辑的容器集合。

• Kubernetes Pod是Kubernetes的基础单元,一个Pod是一组功能相关的部署到一起的容器的集合。
• 在Kubernetes 中,每个Pod会有自己独立的内部动态IP,在Pod新建或重启时会重新分配新的IP。
• Pod会有自己的Label(元数据)用来标识Pod的服务内容。
• Pod自身不具有高可用等特性,Pod一般不会直接使用,而是通过控制器进行调度使用。
• Pod中默认存在一个基础架构容器pause,创建完成后一直处于暂停状态或者看不到它。
• Pod为逻辑组件,Pod内运行一个和多个容器,这些容器共享同一个底层的(NET)网络名称空间、(UTS)主机名、(IPC)进程间通信,另外三个互相隔离。并且一个Pod内的容器共享Volume。

Pod的生命周期

Pod 生命周期包含三个阶段:

  • 初始化阶段,Pod 的 init 容器运行。
  • 运行阶段,Pod 的常规容器在该阶段运行。
  • 终止阶段,Pod 的容器被终止。

探针是什么

kubelet基于探针机制对容器执行的定期诊断。判断容器的运行状态。

  • 启动探针(Startup Probe)

启动探针是一个相对较新的概念,用于确定容器是否已成功启动。与存活探针不同,启动探针仅在容器启动时执行一次。如果启动探针失败,Kubernetes 不会尝试重新启动容器,但可以用于在容器启动时执行一些初始化任务。这些探针可以采用多种方式来验证容器状态,包括执行HTTP请求、TCP检查或自定义命令。成功或失败的结果将报告给 Kubernetes,允许系统采取适当的措施。

  • 就绪探针(Readiness Probe)

就绪探针用于确定容器是否已准备好接收网络流量。如果就绪探针失败,Kubernetes 将停止将流量发送到容器,以确保不会将流量发送到尚未准备好的容器。这有助于避免将流量发送到正在启动或尚未加载数据的应用程序。

  • 存活探针(Liveness Probe)

存活探针用于确定容器是否正在运行。如果存活探针失败,Kubernetes 将视为容器不健康,尝试重新启动容器。这对于检测应用程序内部的假死情况非常有用,例如,如果 Web 服务器停止响应请求。

基于容器启动的应用程序的配置

1、传统配置应用程序

  • 命令行、选项参数

  • 修改配置文件、进程重载

2、容器化应用

  • 自定义要在容器中运行的命令,及相关选项和参数;

  • 环境变量,容器中进程基于环境变量加载环境变量的值
    传统应用一般对此支持有限(Entrypoint: entrypoint.sh)
    kubernetes原生的应用

  • 卷,传递配置文件
    Kubernetes借助etcd来存储配置,不依赖任何第三方存储
    ConfigMap
    Secret

3、Pod的容器应用如何配置

kubectl explain pods.spec.containers

  • args <[]string>
  • command <[]string>
  • env <[]EnvVar>
  • envFrom <[]EnvFromSource>
posted @ 2024-03-30 16:31  *一炁化三清*  阅读(8)  评论(0编辑  收藏  举报