【Kubernetes】知识点2

15. 什么是Pod的根容器?

**答:**Pod 的根容器是每个 Pod 中默认存在的一个特殊容器pause容器,有时也称为infra容器,它是Pod 启动时创建的第一个容器,也是整个 Pod中所有容器的 "父容器"。其核心作用是为 Pod 内的所有容器提供共享的网络命名空间(Network Namespace)和 PID 命名空间(PID Namespace),并维持Pod的生命周期。

16. 解释Pod的生命周期。

**答:**Pod的生命周期是指从 Pod 被创建到最终被删除的完整过,起始于Pending阶段,如果至少其中有一个主要容器正常启动,则进入Running,之后取决于Pod中是否有容器以失败状态结束而进入succeeded或者Failed.

**-Pending (挂起):**Pod 已被K8s系统接受,但有个或者多个容器镜像尚未创建。等待时间包括调度Pod的时间和通过网络下载镜像的时间。

**-Running(运行中):**该Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建,至少有一个容器正在运行,或者正处于启动或重启状态。

-Succeede(成功): Pod中的所有容器都被成功终止,并且不会再重启。

**-Failed (失败):**Pod中的所有容器都己终止了,并且至少有一个容器是因为失败终止,即容器以非0状态退出或者被系统终止。

**-未知(Unknown):**因为某些原因无法取得 Pod 的状态,通常是因为与Pod所在主机通信失败。

17. Init类型容器有什么特点,主要用途?

**答:特点:**Init容器是一种特殊容器,它在Pod内的应用容器启动之前运行,容器会按定义的顺序依次运行,如果Pod的Init容器失败,则kubelet会不断地重启该Init容器直到成功为止。但如果Pod对应的restartPolicy值为"Never", 同时Pod的Init容器启动失败时,则Kubernetes会将整个Pod状态设置为失败。

**用途:**等待依赖服务就绪;初始化配置;预处理数据;权限与安全隔离等。如业务容器需要连接的数据库、缓存服务等尚未启动时,Init 容器可以循环检测依赖服务的可用性(如通过curl或nc命令),直到依赖就绪后才退出,确保业务容器启动时能正常连接依赖。

18. Sidecar类型容器和Init容器的区别在哪?

答:Sidecar容器 (并排容器)与业务容器并行启动,为业务容器提供 "伴随式" 辅助功能**。**

Init容器仅在业务容器启动之前运行,且严格按定义顺序执行,一旦完成初始化任务就会终止(退出),业务容器才会启动。

19. 什么是静态Pod?

**答:**静态 Pod(Static Pod)是一种由节点上的kubelet守护进程直接管理的特殊 Pod,静态 Pod 严格绑定在某个特定节点上,无法被调度到其他节点,其生命周期与所在节点的 kubelet 进程强关联

20. 说明K8s控制器的作用?

**答:**K8s控制器是集群的核心组件,用来持续监控集群的当前状态,并不断调整以匹配用户定义的期望状态。

21. 什么是ReplicaSet,说明它的主要用途。

**答:**ReplicationController用来确保在任何时候都有特定数量的Pod副本处于运行状态。换句话说, ReplicationController能够确保一个Pod或一组同类的Pod总是可用的。

ReplicaSet的目的是维护一组在任何时候都处于运行状态的Pod副本的稳定集合。因此,它通常用来保证给定数量的、完全相同的Pod的可用性。推荐使用配置了Replica Set的Deployment来建立副本管理机制。

22. Deployment控制器是如何工作的,举例说明其常见用途。

**答:**Deployment 控制通过管理ReplicaSet来间接管理 Pod,实现无状态应用的创建、更新、扩缩容和回滚等全生命周期管理。Deployment 的核心逻辑基于 "声明式配置" 和 "滚动更新策略。

常见用途:1)创建 Deployment 以将 ReplicaSet 上线。

2) 通过更新 Deployment 的 PodTemplateSpec,声明 Pod 的新状态 。

3) 回滚到较早的 Deployment 版本。

4) 扩大 Deployment 规模以承担更多负载。

23. 解释DaemonSet,列举其使用场景。

**答:**DaemonSet 会自动在集群的所有节点上创建 Pod,且每个节点仅运行一个副本。当新节点加入集群时,DaemonSet 会自动在新节点上部署对应的 Pod;当节点从集群移除时,该节点上的 DaemonSet Pod 会被自动删除。

使用场景:节点监控与日志收集;安全代理与审计工具;负载均衡与流量转发等。

24. 什么是StatefulSet,其主要作用是什么?

**答:**StatefulSet控制器用来管理基于相同容器规约的一组Pod。但和Deployment不同的是, StatefulSet为它的每个Pod维护了一个有粘性的ID。这些Pod是基于相同的规约来创建的,但是不能相互替换:无论怎么调度,每个Pod都有一个永久不变的ID。

主要作用:保证实例标识的唯一性与稳定性;确保数据的持久化与一致性;支持有序操作,降低集群风险

相关推荐
遇见火星10 小时前
Docker入门:快速部署你的第一个Web应用
前端·docker·容器
阿里云云原生11 小时前
移动端性能监控探索:iOS RUM SDK 技术架构与实践
云原生
阿里云云原生11 小时前
Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强
微服务·云原生
阿里云云原生11 小时前
Qoder 上线提示词增强功能,将开发者从“提示词”的负担中解放出来
云原生
suknna12 小时前
通过命令模拟pod创建
kubernetes
维诺菌12 小时前
k8s java应用pod内存占用过高问题排查
java·jvm·云原生·容器·性能优化·kubernetes
回忆是昨天里的海12 小时前
k8s安装-kubeadm join,将工作节点加入k8s集群
java·服务器·kubernetes
浪飘12 小时前
k8s device plugin
java·docker·kubernetes
冬夜戏雪12 小时前
milvus容器restart不成功,但docker仍在running问题排查
docker·容器·milvus
m0_5791466512 小时前
docker desktop的容器间通信
docker·容器·php