课程大纲
模块1:微服务设计
• 良好的微服务边界
• 使用领域驱动设计(DDD)
• 业务领域边界的替代方案(波动性、数据、技术、组织)
• 拆分单体应用
• 过早分解
• 按层分解
• 使用分解模式(Strangler、并行运行、功能切换)
• 数据分解问题(性能、完整性、事务)
模块2:优化Docker和运行时
• 选择合适的基础镜像
• 最小化层数
• 使用多阶段构建
• 镜像优化(排序多行参数等)
• 利用构建缓存
• 固定镜像版本
• 微调资源分配
• 安全容器实践
• 运行时配置以优化性能
模块3:Kubernetes与发布策略
Kubernetes部署概述
• 创建和执行初始部署
• Kubernetes部署选项
执行滚动更新部署
• 理解滚动更新
• 创建和执行滚动更新
• 回滚部署
执行金丝雀部署
• 理解金丝雀部署
• 创建和执行金丝雀部署
执行蓝绿部署
• 理解蓝绿部署
• 创建和执行蓝绿部署
运行作业和CronJobs
• 创建作业和CronJob
执行监控和故障排除任务
• 使用kubectl进行故障排除技术
模块4:自动化与操作效率
使用Python自动化Kubernetes中的常见任务
• 使用Python执行Kubernetes中的管理操作
• 使用Python定义配置对象
• 使用Python创建部署对象
• 使用Python监控Kubernetes事件
• 使用Python扩展部署
理解自动化部署的挑战
• 使用Kubernetes进行声明式配置
• 管理配置的完整性
使用GitOps方法自动化部署
• GitOps原则
• 介绍Flux
• 将Flux安装到Kubernetes集群
配置Flux以实现自动化部署
• 使用通知
• 源仓库结构
使用镜像自动化处理应用更新
• 使用Flux更新应用部署
• 扫描容器镜像仓库以获取标签
• 定义最新镜像选择策略
• 配置Flux以执行自动镜像更新
模块5:可观测性与根本原因分析
Kubernetes日志记录和追踪能力
• 为什么日志记录和追踪重要
• 访问Kubernetes日志
• Pod和容器日志
• 控制平面日志
• 节点和Pod的资源使用情况
收集和分析日志
• 日志聚合
• 日志可视化
Kubernetes中的分布式追踪
• 什么是分布式追踪
• 使用OpenTelemetry
• 分布式追踪工具
• 对应用进行插桩
• 使用追踪发现性能问题
使用Prometheus和Grafana进行监控
• 可观测性概念
• 监控工具
• 使用Prometheus插桩
日志记录的高级用例
• 处理日志
• 过滤和丰富日志
• 事件溯源
模块6:集群危机模拟与事件响应
• 理解集群环境中的不同类型故障
• 模拟节点故障
• Pod驱逐与资源耗尽场景
• 网络问题
• DNS故障以处理应用超时
• 模拟API服务器中断
• 模拟高流量以测试系统稳定性
• 存储故障
• 配置错误
• 理解事件报告流程
模块7:AI辅助故障排除
• 生成式AI对Kubernetes的好处
• K8sGPT CLI架构
• 安装K8sGPT CLI
• K8sGPT命令和使用
• 使用K8sGPT分析器(podAnalyzer、pvcAnalyzer、rsAnalyzer等)
• 使用K8sGPT分析集群
• 使用K8sGPT分析实时问题
• K8sGPT的集群内操作员
要求
- Linux命令行的基础知识
- 应用开发或系统管理经验
- 熟悉容器(Docker概念)
- 对Kubernetes概念的基本理解(pod、部署、服务)
- 对软件架构的一般理解(如API、服务)
目标受众:
- DevOps工程师
- 站点可靠性工程师(SREs)
- 后端/软件开发人员,涉及微服务
- 云工程师和平台工程师
-
正在过渡到Kubernetes环境的系统管理员
客户评论 (1)
实际案例
Maria - Fundacja PTA
课程 - Mastering Make: Advanced Workflow Automation and Optimization
机器翻译