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 容器与主应用程序容器共享同一网络命名空间和存储卷,因此它们可以访问相同的资源。
相关推荐
鹤落晴春2 小时前
【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
运维·云原生·容器·kubernetes
汇智信科2 小时前
基于 Jmis 框架的制度与流程管控系统设计与应用|项目全生命周期管理
大数据·人工智能·微服务·云原生·汇智信科
名字还没想好☜6 小时前
Docker 镜像瘦身进阶:用 distroless/scratch 把 Go 服务打到 10MB,以及没 shell 怎么调试
运维·docker·容器·golang·kubernetes
JavaPub-rodert6 小时前
Docker 深入理解:从容器原理到生产环境最佳实践
运维·docker·容器
陈聪.8 小时前
Kubernetes 集群网络插件迁移:从 Flannel 到 Calico 实战总结
云原生·kubernetes
暖核8 小时前
Docker 入门|吃透容器生态与底层原理
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户8 小时前
Docker常用命令
运维·docker·容器
wdfk_prog9 小时前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
33三 三like10 小时前
安装并启动Docker
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户10 小时前
进入Docker容器内的命令行界面
运维·docker·容器