19. 什么是静态Pod?
答:静态Pod在指定各自节点上由kubelet守护进程直接管理的Pod,它不需要监管,但通过一个镜
像Pod,api-server任然可以监控静态Pod的运行状态。静态Pod的名称连字符开头的节点主机
名作为后缀。静态Pod的创建和销毁方法和由api-server创建的Pod完全不同。
20. 说明K8s控制器的作用?
答:在K8s中,控制器就像K8s的大脑,控制器通过监控集群的公共状态来确保集群的当前状态与期望 状态保持一致,该期望值就是资源对象的spec字段。每个控制器只负责管理某种类型的特定资源。
21. 什么是ReplicaSet,说明它的主要用途。
答:ReplicaSet简称RS,它控制pod的副本数始终与预设的值相等,RS会持续监视这些Pod的运行 状态,并在Pod发生故障时重启Pod。K8s官方建议使用Deployments代替RS来控制Pod副本
的量,因为Deployments支持记录了历史变更的声明式更新,方便进行RS的升级和回退等。
22. Deployment 控制器是如何工作的,举例说明其常见用途。
答:一个Deployment能够为Pod和ReplicaSet提供声明式的更新能力。管理员描述Deployment
中的目标状态,Deployment控制器会以可控的进度更改RS的实际状态使其变为期望状态。
Deployments 的典型用例有: - 创建Deployment以将ReplicaSet上线。 - 通过更新Deployment的PodTemplateSpec,声明Pod的新状态 。 - 回滚到较早的Deployment版本。 - 扩大Deployment规模以承担更多负载。
23. 解释DaemonSet,列举其使用场景。
答:DaemonSet能确保集群全部(或者某些)节点上都运行一个Pod的副本。当有节点加入时,会为其 新增一个Pod。当有节点从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod。
DaemonSet 的一些典型用法:
-
在每个节点上运行集群守护进程。
-
在每个节点上运行日志收集守护进程。
-
在每个节点上运行监控守护进程。
24. 什么是StatefulSet,其主要作用是什么?
答:StatefulSet是用来管理有状态应用工作负载的API对象。和Deployment类似,StatefulSet
可管理基于相同容器规约的一组Pod。但和Deployment不同的是,StatefulSet为它们的每个 Pod 维护了一个有粘性的ID,也就是这些Pod是基于相同的规约来创建的,但是不能相互替换:无
论怎么调度,每个Pod都有一个永久不变的ID。
例如,如果希望使用存储卷为工作负载提供持久存储,就可以引入StatefulSet作为解决方案。
在这种环境中,StatefulSet中的单个Pod一旦出现故障,则启动新Pod替换失败Pod时,持久
的Pod标识符就使得新Pod与持久卷的的匹配变得更加容易。