20250707-2-第二章:Kubernetes 核心概念-K8s集群架构,生产部署K8s两_笔记

一、Kubernetes集群架构与组件
  1. Master组件

  • API Server:
    • 集群统一入口,提供RESTful API接口服务
    • 各组件协调者,所有对象资源的增删改查和监听操作都需经过API Server处理
    • 处理后的数据会提交给Etcd存储
    • 只有API Server能直接访问Etcd,减轻Etcd压力
  • Controller Manager:
    • 处理集群常规后台任务
    • 采用控制器模式,一个资源对应一个控制器(如Deployment、Service控制器)
    • 负责维护集群中各种资源对象的期望状态
  • Scheduler:
    • 根据调度算法为新创建的Pod选择合适Node节点
    • 考虑因素包括资源需求、策略约束等
    • 可以部署在任意节点,支持高可用部署
  • Etcd:
    • 分布式键值存储系统,保存集群所有状态数据
    • 存储Pod、Service等对象信息
    • 可组建高可用集群,需要定期备份
    • 集群规模大时压力会增大(类似数据库压力)
2. Node组件

  • kubelet:
    • Master在Node节点上的Agent
    • 管理本机运行容器的生命周期(创建容器、挂载数据卷等)
    • 负责将Pod转换成一组容器
    • 获取并上报容器和节点状态
  • kube-proxy:
    • 实现Pod网络代理
    • 维护网络规则和四层负载均衡
    • 保障Service的网络访问
  • 容器引擎:
    • 第三方组件(如docker、containerd、podman)
    • 实际运行容器的引擎
    • Kubernetes本身不包含容器运行时,需额外安装
3. 熟悉官方文档

  • 学习重点:
    • 概念部分:理解Kubernetes核心概念和架构
    • 任务部分:掌握具体操作方法和实践技巧
    • 这两部分是CKA认证考试的主要考点
  • 使用技巧:
    • 不适合新手按顺序学习,更适合针对性查询
    • 遇到问题时直接搜索相关资源名称或关键字
    • 文档会列出相关知识点供查阅
  • 文档特点:
    • 内容全面但缺乏循序渐进的学习路径
    • 更适合作为参考手册而非系统教程
    • 建议结合实践操作来加深理解
二、快速部署一个Kubernetes集群

1. 生产环境部署K8s的2种方式

1)kubeadm

  • 工具特性:官方提供的集群部署工具,提供kubeadm init和kubeadm join命令
  • 优点:
    • 快速部署生产可用集群(2018年后成熟)
    • 官方维护,稳定性高
    • 适合初学者快速上手
  • 缺点:
    • 部署过程自动化程度高,不利于理解底层架构
    • 故障排查时对部署细节掌握不足
  • 参考文档:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
2)二进制

  • 部署方式:手动下载二进制包部署每个组件
  • 历史背景:2017-2018年前企业主流部署方式(占比80%-90%)
  • 优点:
    • 部署过程完全可控,配置透明
    • 便于故障排查和问题定位
    • 深度理解K8s架构和工作原理
  • 缺点:
    • 部署复杂度高(需手动"排雷")
    • 对初学者不友好
  • 资源地址:https://github.com/kubernetes/kubernetes/releases
3)第三方工具或者Web

  • 实现原理:基于kubeadm或二进制方式的封装
  • 典型形式:
    • 脚本化部署工具
    • Web管理系统(图形化操作)
  • 优缺点:
    • 优点:降低使用门槛,集成节点管理功能
    • 缺点:工具层抽象导致问题排查困难
  • 建议:初学者应优先掌握官方推荐方式
2. 服务器硬件配置推荐

  • 实验环境:
    • 单节点:2核CPU/2G内存(最低要求)
    • 笔记本升级建议:优先考虑固态硬盘和内存扩容
  • 测试环境:
    • Master节点:2核/4G内存/20G硬盘
    • Node节点:4核/8G内存/20G硬盘
  • 生产环境:
    • Master节点:8核/16G内存/100G硬盘(最低)
    • Node节点:16核/64G内存/500G硬盘
  • 性能参考:
    • 32核/128G节点:约运行40个容器
    • 16核/64G节点:约运行20个容器
  • 特殊说明:实际容器数量取决于应用负载和资源配额配置
3. 使用kubeadm快速部署一个K8s集群

  • 核心步骤:
    • 安装Docker容器运行时
    • Master节点初始化:kubeadm init
    • Node节点加入:kubeadm join <MasterIP:Port>
    • 部署CNI网络插件:kubectl apply -f calico.yaml
    • 部署Web UI(Dashboard)
  • 工具命令集:
    • kubeadm upgrade:集群版本升级
    • kubeadm token:管理join令牌
    • kubeadm reset:清除集群配置
    • kubeadm version:查看工具版本
    • kubeadm alpha:预览新功能
1)部署Web UI

  • 环境要求:
    • 操作系统:CentOS 7.9_x64(minimal)
    • Docker版本:19-ce
    • Kubernetes版本:1.21
  • 网络要求:
    • 节点需能访问外网以下载镜像
    • 离线环境需提前准备镜像包
  • 资源获取:课程提供完整部署文档和配置文件
三、导航

1. 生产环境可部署Kubernetes集群的两种方式
  • kubeadm方式:
    • 功能:
      • kubeadm init: 初始化Master节点
      • kubeadm join: 将工作节点加入集群
      • kubeadm upgrade: 升级K8s版本
      • kubeadm token: 管理加入集群的令牌
      • kubeadm reset: 卸载K8s安装
      • kubeadm version: 打印版本信息
      • kubeadm alpha: 预览新功能
    • 特点: 官方推荐的快速部署工具,适合初学者
  • 二进制包方式:
    • 方法: 从GitHub下载二进制包,手动部署每个组件
    • 特点: 灵活性高但复杂度高,适合高级用户
  • 选择建议: 课程采用kubeadm方式搭建集群
2. 服务器要求

  • 最小配置:
    • CPU: 2核(实验环境足够使用)
    • 内存: 2GB(实验环境最低要求)
    • 硬盘: 20GB
  • 网络要求:
    • 外网访问: 强烈建议服务器能访问外网以下载镜像
    • 离线方案: 若不能上网需提前下载镜像并导入节点
  • 实验环境建议:
    • 笔记本配置4核8G可虚拟2台2核2G节点
    • 台式机配置i7/16G可虚拟3台2核4G节点
    • 云主机三年约1000元/台性价比高
3. 软件环境

  • 操作系统:
    • 版本: CentOS 7.4-7.9 x64(推荐7.9 mini版)
    • 验证命令: cat /etc/redhat-release
  • Docker: 19-ce版本
  • Kubernetes:
    • 版本: 1.21(当前考试版本)
    • 选择原因: 次新版更稳定,避免最新版的潜在bug
  • 初始化配置:
4. 服务器规划

  • 节点规划:
  • 架构组成:
    • 1个Master节点(包含API Server等控制平面组件)
    • 2个Worker节点(运行实际工作负载)
    • etcd集群自动部署
  • 实验建议:
    • Master节点建议2核4G配置
    • Node节点可适当降低配置
    • 所有节点需保持时间同步(ntpdate命令)
四、知识小结

|--------------------|-----------------------------------------------------------------------------------------|----------------------------|------|
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| K8s集群架构 | Master组件(API Server/Controller Manager/Scheduler) + Node组件(kubelet/kube-proxy) + etcd存储 | etcd高可用配置 vs 单点部署 | ⭐⭐⭐ |
| API Server | 集群统一入口、组件协调者、状态存储至etcd | 仅API Server可直接访问etcd | ⭐⭐ |
| Controller Manager | 维护Deployment/Service等核心资源 | 后台任务处理机制 | ⭐⭐⭐ |
| Scheduler | 为Pod选择运行节点 | 调度策略(资源需求/亲和性) | ⭐⭐ |
| kubelet | Node节点Agent,管理容器生命周期 | 与容器引擎(Docker/containerd)交互 | ⭐⭐ |
| 部署方式对比 | kubeadm(快速部署) vs 二进制(深度可控) | 生产环境推荐kubeadm高可用 | ⭐⭐⭐⭐ |
| 硬件配置 | 测试环境:2C2G;生产环境:Master 8C16G+100G,Node 16C64G+500G | 资源配额对Pod数量的影响 | ⭐⭐ |
| kubeadm功能 | 初始化集群、节点加入、版本升级、Token管理 | kubeadm reset 清理集群 | ⭐⭐⭐ |
| 实验环境准备 | CentOS 7.4-7.9,K8s v1.21,Docker最新版 | 外网访问对镜像拉取的关键性 | ⭐ |
| 学习建议 | 80%实操+20%理论,官方文档"概念与任务"重点查阅 | CKA考题来源 | ⭐⭐ |
| 维度 | kubeadm部署 | 二进制部署 | |
| ---------- | ------------- | ------------ | |
| 复杂度 | 低(自动化) | 高(手动配置) | |
| 适用场景 | 快速搭建/新手友好 | 深度定制/故障排查 | |
| 生产可用性 | ✅ 支持 | ✅ 更灵活 | |
| 学习价值 | 侧重使用 | 深入架构理解 | |

相关推荐
极限实验室1 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
牧天白衣.3 小时前
Docker相关内容
docker·容器·eureka
2401_836836593 小时前
k8s配置管理
云原生·容器·kubernetes
一切顺势而行3 小时前
k8s 使用docker 安装教程
docker·容器·kubernetes
澜兮子3 小时前
k8s-服务发布基础
云原生·容器·kubernetes
小安运维日记3 小时前
CKS认证 | Day4 最小化微服务漏洞
安全·docker·微服务·云原生·容器·kubernetes
2401_836836593 小时前
k8s服务发布进阶
云原生·容器·kubernetes
bigFish啦啦啦5 小时前
docker proxy
docker
果子⌂6 小时前
容器技术入门之Docker环境部署
linux·运维·docker