k8s中的容器

目录

容器

容器的状态

  1. Running(运行中):容器正在运行并且正常工作。
  2. Waiting(等待中):容器正在等待某些条件满足,例如等待其他容器就绪、等待网络连接等。
  3. Terminated(已终止):容器已经完成工作并终止。这可能是正常的完成,也可能是出现错误导致终止。

容器的重启策略

Pod 的 spec 中包含一个 restartPolicy 字段,其可能取值包括 Always、OnFailure 和 Never。默认值是 Always。

restartPolicy 适用于 Pod 中的所有容器。restartPolicy 仅针对同一节点上 kubelet 的容器重启动作。当 Pod 中的容器退出时,kubelet 会按指数回退方式计算重启的延迟(10s、20s、40s、...),其最长延迟为 5 分钟。 一旦某容器执行了 10 分钟并且没有出现问题,kubelet 对该容器的重启回退计时器执行重置操作。

pause容器

启动一个pod最先会创建一个pause,pause容器会把所有需要的namespace都创建好,业务app会直接跟他共享

"pause" 容器是一个特殊的辅助容器,它在每个 Pod 内隐式地存在。"pause" 容器没有实际的应用程序逻辑,它的存在是为了管理 Pod 的网络命名空间和共享存储卷。

每个 Kubernetes Pod 都有一个共享的网络命名空间,其中包括网络接口和 IP 地址。为了实现这种网络隔离,Kubernetes 使用了 "pause" 容器。这个容器负责维护 Pod 的网络设置,并在其他容器之间共享网络命名空间,使它们可以相互通信。

此外,"pause" 容器还为 Pod 提供了共享存储卷。其他容器可以挂载这个共享存储卷,以在 Pod 内部共享文件。

以下是一些关于 "pause" 容器的重要信息:

  • 镜像: "pause" 容器使用一个特殊的轻量级镜像,通常是 "k8s.gcr.io/pause"。
  • 进程: "pause" 容器没有运行的实际进程,它的存在只是为了保持网络命名空间和存储卷的隔离。
  • 网络命名空间: 每个 Pod 的其他容器都会与 "pause" 容器共享同一个网络命名空间,使它们可以在同一网络中通信。
  • 存储卷: "pause" 容器为 Pod 提供了一个文件系统,使其他容器可以在其中创建文件,以实现在 Pod 内部的共享存储。
  • 资源消耗: "pause" 容器的资源消耗非常小,因为它没有实际运行的进程。

总的来说,"pause" 容器是 Kubernetes 中的一个关键概念,它为 Pod 提供了网络隔离和共享存储卷的功能。在大多数情况下,开发人员不需要直接操作 "pause" 容器,因为 Kubernetes 会在创建 Pod 时自动添加它。

init容器

Init 容器(Initialization Container)是在主应用程序容器启动之前运行的特殊类型的容器。它们用于执行初始化任务,为主应用程序容器提供必要的环境、配置或数据。Init 容器可以确保主应用程序容器在启动之前满足一些前置条件。

以下是一些关于 Init 容器的重要信息:

  1. 运行顺序: Init 容器首先会依次启动,直到它们全部完成或其中一个失败。然后,主应用程序容器才会启动。这有助于确保主应用程序容器在合适的环境下运行。
  2. 环境设置: Init 容器可以在主应用程序容器之前设置环境变量、配置文件或其他资源。这有助于准备主应用程序容器所需的运行环境。
  3. 数据准备: Init 容器可以从外部数据源(如持久卷、配置映射等)获取数据,并将其准备好供主应用程序容器使用。
  4. 依赖解决: 如果主应用程序容器需要等待某些外部服务或资源就绪,Init 容器可以负责等待这些资源准备就绪,然后才启动主应用程序容器。
  5. 单一进程: Init 容器通常只执行一个任务,以确保它们的运行时间较短,不会影响主应用程序容器的正常启动。
  6. 容器共享资源: Init 容器与主应用程序容器共享同一网络命名空间和存储卷,因此它们可以访问相同的资源。
相关推荐
阿里云云原生6 分钟前
Java版Manus实现来了,Spring AI Alibaba发布开源OpenManus实现
云原生
阿里云云原生10 分钟前
当实时消费遇到 SPL:让数据处理更高效、简单
云原生
碣石潇湘无限路2 小时前
【云原生】Kubernetes CEL 速查表
容器·贪心算法·kubernetes
阿里云云原生2 小时前
大模型 Token 的消耗可能是一笔糊涂账
云原生
mingyuewu4 小时前
MAC安装docker 后提示com.docker.vmnetd”将对您的电脑造成伤害
macos·docker·容器
企鹅侠客6 小时前
Prometheus operator怎么添加targets和告警规则
运维·云原生·kubernetes·prometheus·pod
专注代码七年7 小时前
Docker运维篇
运维·docker·容器
一杯敬朝阳 一杯敬月光8 小时前
WIN11 企业版 部署Dify+Docker
运维·docker·容器
Leo Han8 小时前
k8s常用命令(持续更新中)
docker·容器·kubernetes
KubeSphere 云原生8 小时前
云原生周刊:Kubernetes v1.33 要来了
云原生·容器·kubernetes