【Kubernetes知识点问答题】Pod
目录
1. 请解释 Pod 是什么?
2. 什么是 Pod 的根容器?
3. 解释 Pod 的生命周期。
4. Init 类型容器有什么特点,主要用途?
5. Sidecar 类型容器和 Init 容器的区别在哪?
6. 什么是静态 Pod?
1. 请解释 Pod 是什么?
Pod 是 K8s 能够创建、管理和部署的最小计算单元。
Pod
包含一个或多个容器,这些容器共享存储、网络、以及如何运行这些容器的声明。
2. 什么是 Pod 的根容器?
每个
Pod
都有一个特殊的被称为“根容器”的
pause
容器,
pause 容器有时候也称为 infra 容器,被当作 Pod
中所有容器的“父容器”。
pause 容器在 Pod 中作为共享 Linux Namespace
的基础,同时提供 PID Namespace
共享,为每个
Pod
提供
1
号进程,并收集
Pod
内的僵停进程。
3. 解释 Pod 的生命周期。
Pod
遵循预定义的生命周期,起始于
Pending
阶段, 如果至少其中有一个主要容器正常启动,则进入 Running
,之后取决于
Pod
中是否有容器以失败状态结束而进入
Succeeded
或者
Failed
。
① Pending
(挂起):
Pod
已被
K8s
系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度 Pod
的时间和通过网络下载镜像的时间。
② Running
(运行中):
该
Pod
已经绑定到了一个节点上,
Pod
中所有的容器都已被创建,至少有一个容器正在运行,或者正处于启动或重启状态。
③ Succeeded
(成功):
Pod
中的所有容器都被成功终止,并且不会再重启。
④ Failed
(失败):
Pod
中的所有容器都已终止了,并且至少有一个容器是因为失败终止,即容器以非 0
状态退出或者被系统终止。
⑤
未知(Unknown):
因为某些原因无法取得
Pod
的状态,通常是因为与
Pod
所在主机通信失败。
4. Init 类型容器有什么特点,主要用途?
Init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。
Init
容器需要在
Pod
规约中添加 initContainers 字段来声明。
Init
容器可以包括一些应用镜像中不存在的实用工具和安装脚本。
5. Sidecar 类型容器和 Init 容器的区别在哪?
① Sidecar
容器用来提供辅助功能以增强主容器应用,最经典的是日志跟踪,它与主容器并行运行。
② Init
容器是在主容器启动前提前执行一些准备工作,运行完就处于
pause
状态。
6. 什么是静态 Pod?
静态 Pod 在指定各自节点上由 kubelet 守护进程直接管理的 Pod
,它不需要监管,但通过一个镜像 Pod
,
api-server
任然可以监控静态
Pod
的运行状态。
静态
Pod
的名称连字符开头的节点主机名作为后缀。
静态 Pod
的创建和销毁方法和由
api-server
创建的
Pod
完全不同。