当前位置: 首页 > news >正文

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部署

二进制部署

----------

-------------

------------

复杂度

低(自动化)

高(手动配置)

适用场景

快速搭建/新手友好

深度定制/故障排查

生产可用性

✅ 支持

✅ 更灵活

学习价值

侧重使用

深入架构理解

http://www.dtcms.com/a/268522.html

相关文章:

  • 环路滤波:精密ADC时钟系统的相位噪声净化器
  • 源码推送到gitee码云仓库
  • stm32--SPI原理应用W25Q64(二)
  • 国产时序数据库 TDengine:Docker 部署、协议端口及 DBeaver 连接全攻略
  • JVM系列五:字节码与执行引擎深度解析
  • uniapp运行项目到ios基座
  • WebRTC 双向视频通话
  • LeetCode 面试题 02.02. 返回倒数第 k 个节点
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频质量评估与智能修复(337)
  • Kettle + 大数据实战:从数据采集到分布式处理的完整流程指南
  • Kafka生产者的初始化
  • Angular V20 新特性
  • QML TextEdit组件
  • 【BFS】 P10864 [HBCPC2024] Genshin Impact Startup Forbidden II|普及+
  • 使用3.20.3版本的protoc编译proto2和proto3
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(四十一) -> 获取自定义编译参数
  • 百度开源文心 4.5 系列开源大模型 GitCode 本地化部署,硅基流动:文心 vs. DeepSeek vs. Qwen 3.0 深度测评
  • 【apply from: “$flutterRoot/packages/flutter_tools/gradle/flutter.gradle“作用】
  • 云计算领域“XaaS”是什么?
  • 使用CocoaPods集成第三方SDK - 从零开始完整指南
  • 开源 C# .net mvc 开发(七)动态图片、动态表格和json数据生成
  • H3初识——入门介绍之路由、路由元数据
  • Maven 依赖管理中的 <optional> 与 <scope>标签
  • 管道机器人手臂机械结构设计cad【8张】+三维图+设计说明书+绛重
  • PDF 上传并保存到 MinIO 数据库
  • 基于Python实现LSTM对股票走势的预测
  • 机器学习知识
  • 医疗AI底层能力全链条工程方案的深度分析:从技术突破到临床应用
  • Mask机制​​中的​​Padding Mask​​ 和 ​​Sentence Mask
  • DCL-2-权限控制