【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。

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

相关推荐
人生苦短1286 小时前
k8s常用命令
linux·容器·kubernetes
我真的是大笨蛋9 小时前
K8S笔记-容器和镜像
笔记·云原生·容器·kubernetes
qq_3391911411 小时前
docker 启动一个clickhouse , docker 创建ck数据库
clickhouse·docker·容器
吐个泡泡v17 小时前
Portainer:Docker可视化管理神器部署与使用攻略
运维·docker·容器·portainer
逾非时18 小时前
nacos微服务介绍及环境搭建
docker·微服务·云原生·架构
Britz_Kevin18 小时前
从零开始的云计算生活——第五十六天,临深履薄,kubernetes模块之etcd备份恢复和集群升级指南
kubernetes·生活·etcd
only_Klein18 小时前
etcd自动备份以及恢复
云原生·kubernetes·etcd
北纬34度停留19 小时前
K8s服务日志收集方案文档
云原生·容器·kubernetes