K8s中的Namespace、Pod、ReplicaSet
K8s中的Namespace、Pod、ReplicaSet
K8s中的Namespace、Pod、ReplicaSet
1. kube-apiserver, etcd, kube-controller-manager, kube-scheduler 的作用。
kube-apiserver:是 Kubernetes 系统的前端控制层,大脑,负责处理所有的 API 请求,是集群内各个组件通信的枢纽。
etcd:作为可靠的分布式键值存储,用于保存整个集群的状态和配置信息。
kube-controller-manager:负责管理各种控制器,例如副本控制器、节点控制器等,以确保集群的状态符合预期。
kube-scheduler:负责为新创建的 Pod 选择合适的节点进行部署,考虑节点的资源可用性、负载等因素
2. kubelet, kube-proxy 作用。
kubelet 是在每个节点上运行的主要“节点代理”。它负责确保节点上的容器运行状况良好,执行诸如从 API 服务器接收 Pod 配置信息、启动和停止容器、监控容器的资源使用情况以及向 API 服务器报告节点和容器的状态等任务。
kube-proxy 主要负责为 Kubernetes 服务提供网络代理和负载均衡功能。它实现了虚拟 IP 到后端 Pod 的流量转发规则,使得服务能够被稳定访问
3. 什么是 K8s 的 namespace?
Namespace(命名空间) 是 Kubernetes 中用于逻辑隔离资源的机制。
它可以将一个 Kubernetes 集群划分为多个虚拟的分区,不同的命名空间可以有各自独立的资源对象,如 Pod、Service 等。
4. 系统默认创建了哪几个 namespace?
default:默认的命名空间,如果在创建资源时未指定命名空间,则会被放置在此处。
kube-system:用于运行 Kubernetes 系统组件相关的对象,例如 kube-proxy、kube-dns 等。
kube-public:此命名空间中的资源可以被所有用户(包括未经过身份验证的用户)读取。
5. Pod 是什么?
一组一个或多个容器的集合,这些容器共享网络和存储资源,并且被共同调度和部署在同一节点上。
6. 什么是 Pod 的根容器?
Pause容器,其他容器基于此环境运行和协作
7. Pod 的生命周期。
Pending(挂起):Pod 已被创建,但资源尚未完全准备好。
Running(运行中):Pod 中的所有容器都已被创建,并且至少有一个容器正在运行。
Succeeded(成功):Pod 中的所有容器都已成功终止,并且不会再重新启动。
Failed(失败):Pod 中的所有容器都已终止,并且至少有一个容器以失败状态终止。
Unknown(未知):无法获取 Pod 的状态,通常是由于与 Pod 所在节点的通信问题。
8. Init 类型容器有什么特点,主要用途?
先于应用容器启动。按顺序逐一启动,只有当前 Init 容器成功退出,才会启动下一个。
用于做初始化设置,例如等待依赖的服务可用、处理前置的配置工作等。可以确保应用容器启动时所需的前置条件都已满足。
9. Sidecar 类型容器和 Init 容器的区别?
Init 容器先于应用容器按顺序依次启动。Sidecar 容器与应用容器同时启动。
Init 容器用于初始化工作,为应用容器准备好所需的环境或条件。Sidecar 容器用于辅助主应用容器,提供额外的功能,如日志收集、监控等。
Init 容器完成任务后即结束。Sidecar 容器会与应用容器一起持续运行。
Sidecar容器其实就是一个普通容器
10. 什么是静态 Pod?
静态 Pod 是一种特殊的 Pod,不由 Kubernetes API 服务器创建和管理。它直接由节点上的 kubelet 进程监控和管理,通常通过节点上的配置文件来定义。
11. K8s 控制器的作用?
K8s 控制器的作用是持续监控集群的状态,并使实际状态趋向于期望状态。它们确保资源按照预定的规则和策略运行和管理,例如保证副本数量的正确、处理节点故障等。
12. 什么是 ReplicaSet,它的主要用途。
Kubernetes 中的一种控制器。它的主要用途是确保指定数量的 Pod 副本在集群中持续运行。
13. Deployment 控制器是如何工作的,举例说明其常见用途。
通过定义期望的 Pod 副本数量、版本等配置,持续监控实际状态,并进行相应的更新和调整操作。
实现应用的无中断更新,例如在更新应用版本时,逐步替换旧的 Pod 。轻松扩缩容 Pod 副本数量,以应对不同的流量需求。
更多推荐
所有评论(0)