Kubernetes学习笔记:搭建与关键组件详解

需积分: 10 4 下载量 167 浏览量 更新于2024-07-16 收藏 1.88MB DOCX 举报
本篇文档是关于Kubernetes实验的学习笔记,记录了作者在学习和实践Kubernetes过程中积累的经验和心得。Kubernetes(简称k8s)是一种开源的容器编排系统,用于自动化容器部署、扩展和管理。文章主要关注以下几个核心概念和组件: 1. **Master与Node**: - Master节点是k8s的核心组成部分,主要包括API server(API服务器,处理所有客户端请求并维护集群状态)、Scheduler(调度器,根据策略决定Pod在哪些节点上运行)和Controller Manager(控制器管理器,管理各种控制器如ReplicationController、Deployment等)。 - Node节点则是实际运行Pod的地方,包含kubelet(管理Pod生命周期、与Master通信)和kube-proxy(负责节点内部的网络代理)。 2. **Pod、Label和LabelSelector**: - Pod是k8s中最基本的可执行单元,可以包含多个容器。每个Pod都有一个或多个Label,它们以key=value的形式表示,用于标记Pod以便进行筛选和组织。 - LabelSelector用于匹配具有特定标签的Pod,这是资源配额、服务发现和副本集等操作的基础。 3. **控制器与工作负载**: - ReplicationController和ReplicaSet是早期版本中的控制器,用于确保某个Pod副本的数量恒定。新版本推荐使用Deployment,它更强大,可实现滚动更新等功能。 - StatefulSet用于管理具有确定顺序和持久存储需求的Pod。 - Job和CronJob则用于执行一次性或定期的任务。 4. **附加组件(Add-Ons)**: - Kubernetes提供了很多附加组件,如Harbor,这是一个私有容器镜像仓库,用于安全地存储和管理镜像。 5. **环境准备**: - 文档指定了集群的物理架构,包括Master和Node的具体IP地址。强调了时间同步的重要性,因为时间问题可能导致各种错误。 - 需要关闭防火墙服务(firewall和iptables.service)以允许k8s的通信。 6. **安装与配置步骤**: - 包括设置Etcd集群(存储k8s的状态信息),配置Flannel网络插件以实现集群内的网络互通,以及在Master和Node上安装和配置Kubernetes服务(如kube-apiserver、kube-scheduler、kube-controller-manager)和kubelet、kube-proxy等核心组件。 - 提供了具体的版本信息(docker 18.09和k8s 1.15.3),并指导读者设置yum源以获取对应版本的软件包。 通过本文档,读者可以了解到Kubernetes的基础搭建过程、关键组件的作用以及如何在实践中管理和调度容器化应用。对于想要深入学习和实践k8s的人来说,这是一份宝贵的参考资料。