32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
---
|
||
title: "tini"
|
||
type: entity
|
||
tags: [Container, Kubernetes, Security, Open Source, Init System]
|
||
last_updated: 2026-04-24
|
||
---
|
||
|
||
## Basic Information
|
||
- **Type:** Product / Open Source Tool
|
||
- **Category:** Container Init System
|
||
- **Website:** https://github.com/krallin/tini
|
||
- **Language:** C
|
||
|
||
## Description
|
||
tini 是 Docker 和 Kubernetes 容器中最广泛使用的轻量级 Init 系统,用于:
|
||
1. **信号处理**:正确接收并转发 SIGTERM/SIGINT 等信号到子进程,确保容器可优雅停止
|
||
2. **僵尸进程收割**:防止已终止但父进程尚未 wait() 的子进程(Zombie Process)占用系统资源
|
||
3. **单进程容器**:在无 systemd 的容器环境中替代 PID 1 职责
|
||
|
||
在 [[ctp-topic-49-container-lifecycle-hardening-standards]] 中,Ashish 通过 Demo 展示了 tini 如何在 Kubernetes 环境中阻止僵尸进程——当容器不运行 Init 系统时,僵尸进程会耗尽系统资源;引入 tini 后僵尸进程被正确收割。
|
||
|
||
## Relationship to Kubernetes
|
||
- Kubernetes Pod 默认使用容器镜像的 PID 1 作为 Init 进程
|
||
- 在 Kubernetes 中可通过 Pod Security Context 或 Init Container 方式集成 tini
|
||
|
||
## Aliases
|
||
- tini
|
||
- teeny(CTP Topic 49 Demo 中提到的替代名称,指同一机制)
|
||
|
||
## Sources
|
||
- [[ctp-topic-49-container-lifecycle-hardening-standards]]
|