Kubernetes入门:Master与Node节点详解

0 下载量 17 浏览量 更新于2024-08-03 收藏 3.68MB DOC 举报
"Kubernetes学习笔记,包括K8s的核心组件和单机版搭建配置" 在Kubernetes(K8s)的世界中,我们探讨的是一个强大的容器编排平台,它使得管理和部署容器化应用程序变得简单而高效。K8s的设计灵感来源于Google的Borg系统,现在已经成为全球范围内云原生应用的基础设施。它允许中小型公司也能拥有处理大规模计算节点的能力,实现了"云计算"的普惠。 K8s架构的核心组件主要包括以下几个部分: 1. **APIServer** - 这是K8s集群的神经中枢,它对外提供RESTful API服务,用于其他组件进行交互。APIServer执行验证、授权任务,并作为所有操作的单一入口点。 2. **Controller-manager** - 这个组件是K8s的控制中心,负责监控并保持集群内资源(如Pods、Services等)的状态。它执行各种控制器逻辑,如复制控制器(处理Pod副本数量)、节点控制器(处理节点故障)等。 3. **Scheduler** - 调度器负责决定哪个Pod应该在哪个Node上运行。它根据预定义的策略评估每个Node的资源状况,确保最佳的Pod分配。 4. **Etcd** - 作为K8s的基础数据存储,etcd是一个高可用的Key-Value数据库,保存了集群的状态和配置信息。apiserver通过它来读取或更新集群状态。 5. **Node节点** - Node是K8s集群中的工作机器,包含Kubelet和Kube-proxy两个关键组件。 - **Kubelet** 是Master与Node之间的桥梁,负责执行apiserver的指令,管理Node上的Pods、容器及数据卷。 - **Kube-proxy** 在每个Node上运行,提供网络代理和负载均衡功能,确保Pod间的网络通信正常。 6. **Container-runtime** - 容器运行时环境,如Docker、containerd或podman,它们负责实际的容器启动、停止和管理,受Kubelet控制。 搭建一个单机版的K8s集群通常用于学习和测试,对于基础环境的要求包括至少2核CPU、2GB内存以及50GB硬盘空间。在准备工作中,我们需要关闭防火墙(如firewalld)、禁用SELinux,设置主机名,配置hosts文件,并关闭swap分区,以确保K8s能够顺利运行。 以上内容概述了Kubernetes的基本原理和单机版部署的初步准备,对于深入理解K8s的运作机制以及后续的实践操作具有重要的指导意义。