【跟我学K8S】45天入门到熟练详细学习计划
目录
一、什么是K8S
核心功能
架构组件
使用场景
二、入门到熟练的学习计划
第一周:K8s基础和概念
第二周:核心对象和网络
第三周:进阶使用和管理
第四周:CI/CD集成和监控
第五周:实战模拟和案例分析
第六周:综合练习和准备面试
一、什么是K8S
Kubernetes(常简称为K8s)是一个开源的容器编排平台,用于自动化容器应用的部署、扩展和管理。它最初由Google设计并捐赠给Cloud Native Computing Foundation(CNCF)来维护和发展。Kubernetes 成为了容器化应用部署和管理的事实标准,广泛支持跨主机的容器协调。
核心功能
- 自动化容器部署与回滚:Kubernetes 能够确保应用部署按照用户定义的状态进行,自动替换任何失败的实例。
- 服务发现和负载均衡:Kubernetes 可以自动发布服务IP和DNS名给容器组,并能够负载均衡网络流量以实现高效的服务。
- 水平扩缩:根据 CPU 使用情况或其他选择标准自动扩展或收缩应用容器的数量。
- 自我修复:它能够重新启动失败的容器、替换和重新调度容器到其他节点、杀死不响应用户定义的健康检查的容器。
- 密钥与配置管理:Kubernetes 允许你存储和管理敏感信息,如密码、OAuth 令牌和ssh密钥,可以在不重构应用程序镜像的情况下更新应用配置和密钥。
架构组件
- Master节点:控制平面的组成部分,负责管理集群的状态,包括调度应用、维护应用的所期望的状态、扩展应用以及滚动更新。
- 工作节点:这些节点包含运行应用容器的机器,每个节点都有一个 Kubelet,用于管理节点并与 Kubernetes master 节点通信。
- etcd:可靠的分布式数据存储,用于保存所有集群数据,实现集群的状态备份和恢复。
- Pod:Kubernetes 的基本构建块,是一组一个或多个容器,这些容器共享存储和网络资源,规定了如何运行这些容器。
使用场景
Kubernetes 非常适合微服务架构,因为它支持服务的自动发现和负载均衡。此外,它也支持CI/CD实践,自动化测试和部署。
由于其强大的功能和灵活性,Kubernetes 已经成为云环境中部署容器化应用的重要平台。
二、入门到熟练的学习计划
本专栏假定你是一个对计算机运维技术有一定的了解的初级运维开发人员,我将花45天时间带大家完成从K8S入门到熟练使用。我们需要将K8S的学习内容分解到每天的学习任务中,这个计划假设你每天能够投入大约3-4小时进行学习和实践。请根据个人情况灵活调整。
第一周:K8s基础和概念
Day 1
- 了解K8s的背景和优势
- 安装和配置K8s学习环境(Minikube,Docker等)
Day 2
- 学习Pods和Nodes的基本概念和功能
- 使用Minikube启动第一个Pod
Day 3
- 学习Services和Deployments的基本概念
- 用kubectl创建和管理Deployments
Day 4
- 学习K8s的架构和主要组件(Master, etcd, kubelet等)
- 实践:查看Minikube集群状态和组件
Day 5
- 学习使用kubectl命令行工具进行集群管理
- 实践:使用kubectl运行不同的命令查看和管理资源
Day 6
- 学习K8s的Labels和Selectors
- 实践:给Pods和Deployments添加Labels
Day 7
- 复习本周学习的内容
- 完成一个小项目:部署一个简单的多Pod应用
第二周:核心对象和网络
Day 8
- 学习K8s的Networking模型
- 实践:创建一个Service并连接几个Pods
Day 9
- 深入理解Volumes和Persistent Volumes
- 实践:为Pods添加Volumes
Day 10
- 学习ConfigMaps和Secrets
- 实践:使用ConfigMap配置应用
Day 11
- 学习K8s的Namespaces
- 实践:创建和管理不同的Namespaces
Day 12
- 学习Ingress资源和Ingress Controllers
- 实践:配置简单的Ingress规则
Day 13
- 学习StatefulSets和DaemonSets
- 实践:部署一个StatefulSet应用
Day 14
- 复习本周学习的内容
- 实践:搭建一个具有前端、后端和数据库的多层应用
第三周:进阶使用和管理
Day 15
- 学习K8s的日志和监控基础
- 实践:查看Pod日志和集群事件
Day 16
- 学习K8s的Autoscaling
- 实践:配置Horizontal Pod Autoscaler
Day 17
- 学习Helm的基本用法
- 实践:用Helm部署一个chart
Day 18
- 学习K8s的安全,RBAC
- 实践:设置RBAC权限控制
Day 19
- 学习K8s的网络策略
- 实践:配置NetworkPolicies
Day 20
- 学习K8s的高级调度(Affinity, Taints, Tolerations)
- 实践:配置Pod的调度偏好
Day 21
- 复习本周学习的内容
- 实践:用学到的知识优化之前的多层应用部署
第四周:CI/CD集成和监控
Day 22
- 学习CI/CD的概念以及如何与K8s集成
- 实践:了解Jenkins或其他CI/CD工具
Day 23
- 实践:使用CI/CD工具自动化部署应用到K8s
Day 24
- 学习Prometheus和Grafana进行监控
- 实践:为K8s集群设置监控
Day 25
- 学习ELK Stack或Elasticsearch进行日志管理
- 实践:集成日志收集和分析工具
Day 26
- 学习备份和恢复策略
- 实践:备份K8s集群资源和数据
Day 27
- 学习集群维护和升级策略
- 实践:尝试升级K8s集群的版本
Day 28
- 复习本周学习的内容
- 实践:模拟CI/CD流程,从代码提交到部署
第五周:实战模拟和案例分析
Day 29
- 研究并分析一个成功的K8s案例研究,例如高流量的web应用迁移到K8s的案例
- 实践:尝试重现案例中提到的K8s配置和部署策略
Day 30
- 研究关于K8s在机器学习和大数据处理中的应用案例
- 实践:模拟一个小型的机器学习应用部署在K8s上
Day 31
- 分析一个复杂的多层应用在K8s上的部署案例(包括前端、后端服务和数据库)
- 实践:构建并部署一个类似的多层应用到你的Minikube或云环境中
Day 32
- 研究K8s在不同行业(如金融、医疗、零售)中的实际使用案例
- 实践:根据行业特定需求设计一个K8s部署方案
Day 33
- 研究K8s的灾难恢复案例
- 实践:设置并测试K8s集群的备份和恢复流程
Day 34
- 准备面试题目,尤其是相关案例研究中可能提到的问题
- 实践:和同伴或朋友进行模拟面试,专注于K8s的实际应用和问题解决
Day 35
- 参与K8s社区,例如Kubernetes论坛、Slack频道或本地用户组
- 实践:提出你的疑问并尝试帮助解答他人的问题
第六周:综合练习和准备面试
Day 36
- 复习K8s基础架构和核心概念
- 实践:检查你的集群状态,确保你理解每个组件的作用和状态
Day 37
- 复习Pods、Deployments、Services和其他K8s对象
- 实践:尝试设计一个复杂的部署,包括多个服务和网络配置
Day 38
- 复习K8s的存储和持久化选项
- 实践:部署一个需要持久化存储的应用,如数据库
Day 39
- 复习K8s的安全特性,如RBAC、Secrets、Network Policies
- 实践:审计你的集群安全设置,确保没有不安全的配置
Day 40
- 复习CI/CD与K8s的集成以及监控和日志管理
- 实践:优化现有CI/CD流程,确保监控和日志收集的有效性
Day 41
- 总结学习笔记,准备面试常见问题
- 实践:在一个真实的环境中,从零开始部署一个复杂的项目
Day 42
- 参与开源项目,寻找可以贡献的K8s相关任务
- 实践:为开源项目提交一个PR(Pull Request),无论是文档改进还是代码贡献
每天完成学习和实践后,都应该留出时间进行反思和总结,考虑哪些地方理解得不够深入,哪些操作还不够熟练,并根据这些反馈调整后续的学习计划。记住,实战经验是非常宝贵的,尽可能地将学到的知识应用到实际问题中去。同时,准备面试不仅是为了回答问题,更是一个巩固知识、发现盲点的过程。通过这个专栏45天的学习,你将成为一个能熟练应用K8S于实战的运维开发工程师。
相关文章:
【跟我学K8S】45天入门到熟练详细学习计划
目录 一、什么是K8S 核心功能 架构组件 使用场景 二、入门到熟练的学习计划 第一周:K8s基础和概念 第二周:核心对象和网络 第三周:进阶使用和管理 第四周:CI/CD集成和监控 第五周:实战模拟和案例分析 第六周…...

ubuntu下载Nginx
一、Nginx下载安装(Ubuntu系统) 1.nginx下载 sudo apt-get install nginx2.nginx启动 启动命令 sudo nginx重新编译(每次更改完nginx配置文件后运行): sudo nginx -s reload3.测试nginx是否启动成功 打开浏览器访问本机80端口…...
【区分vue2和vue3下的element UI Dialog 对话框组件,分别详细介绍属性,事件,方法如何使用,并举例】
在 Vue 2 和 Vue 3 中,Element UI(针对 Vue 2)和 Element Plus(针对 Vue 3)提供了 Dialog 对话框组件,用于在页面中显示模态对话框。这两个库中的 Dialog 组件在属性、事件和方法的使用上有所相似ÿ…...

docker push 推送镜像到阿里云仓库
1.登陆阿里云 镜像服务,跟着指引操作就行 创建个人实例,创建命名空间、镜像仓库,绑定代码源头 2.将镜像推送到Registry $ docker login --username*** registry.cn-beijing.aliyuncs.com $ docker tag [ImageId] registry.cn-beijing.aliy…...

伯克利、斯坦福和CMU面向具身智能端到端操作联合发布开源通用机器人Policy,可支持多种机器人执行多种任务
不同于LLM或者MLLM那样用于上百亿甚至上千亿参数量的大模型,具身智能端到端大模型并不追求参数规模上的大,而是指其能吸收大量的数据,执行多种任务,并能具备一定的泛化能力,如笔者前博客里的RT1。目前该领域一个前沿工…...

昇思25天学习打卡营第17天(+1)|Diffusion扩散模型
1. 学习内容复盘 本文基于Hugging Face:The Annotated Diffusion Model一文翻译迁移而来,同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件,执行Python文件时,请确…...

【Leetcode笔记】406.根据身高重建队列
文章目录 1. 题目要求2.解题思路 注意3.ACM模式代码 1. 题目要求 2.解题思路 首先,按照每个人的身高属性(即people[i][0])来排队,顺序是从大到小降序排列,如果遇到同身高的,按照另一个属性(即p…...
Linux 安装pdfjam (PDF文件尺寸调整)
跟Ghostscript搭配使用,这样就可以将不同尺寸的PDF调整到相同尺寸合并了。 在 CentOS 上安装 pdfjam 需要安装 TeX Live,因为 pdfjam 是基于 TeX Live 的。以下是详细的步骤来安装 pdfjam: ### 步骤 1: 安装 EPEL 仓库 首先,安…...
python+playwright 学习-90 and_ 和 or_ 定位
前言 playwright 从v1.34 版本以后支持and_ 和 or_ 定位 XPath 中的and和or xpath 语法中我们常用的有text()、contains() 、ends_with()、starts_with() //*[text()="文本"] //*[contains(@id, "xx")] //...

亲子时光里的打脸高手,贾乃亮与甜馨的父爱如山
贾乃亮这波操作,简直是“实力打脸”界的MVP啊! 7月5号,他一甩手,甩出张合照, 瞬间让多少猜测纷飞的小伙伴直呼:“脸疼不?”带着咱家小甜心甜馨, 回了哈尔滨老家,这趟亲…...
MySQL篇-SQL优化实战
SQL优化措施 通过我们日常开发的经验可以整理出以下高效SQL的守则 表主键使用自增长bigint加适当的表索引,需要强关联字段建表时就加好索引,常见的有更新时间,单号等字段减少子查询,能用表关联的方式就不用子查询,可…...

【MySQL备份】Percona XtraBackup总结篇
目录 1.前言 2.问题总结 2.1.为什么在恢复备份前需要准备备份 2.1.1. 保证数据一致性 2.1.2. 完成崩溃恢复过程 2.1.3. 解决非锁定备份的特殊需求 2.1.4. 支持增量和差异备份 2.1.5. 优化恢复性能 2.2.Percona XtraBackup的工作原理 3.注意事项 1.前言 在历经了详尽…...
【Git 】规范 Git 提交信息的工具 Commitizen
Commitizen是一个用于规范Git提交信息的工具,它旨在帮助开发者生成符合一定规范和风格的提交信息,从而提高代码维护的效率,便于追踪和定位问题。以下是对Commitizen的详细介绍。 1、Commitizen的作用与优势 规范提交信息:通过提供…...
ABB PPC902AE1013BHE010751R0101控制器 处理器 模块
ABB PPC902AE1013BHE010751R0101 该模块是用于自动化和控制系统的高性能可编程控制器。它旨在与其他自动化和控制设备一起使用,以提供完整的系统解决方案 是一种数字输入/输出模块,提供了高水平的性能和可靠性。它专为苛刻的工业应用而设计,…...
大模型AIGC转行记录(一)
自从22年11月chat gpt上线以来,这一轮的技术浪潮便变得不可收拾。我记得那年9月份先是在技术圈内讨论,然后迅速地,全社会在讨论,各个科技巨头、金融机构、政府部门快速跟进。 软件开发行业过去与现状 我19年决定转码的时候&…...

element-ui Tree之懒加载叶子节点强制设置父级半选效果
效果: 前言: 我们是先只展示一级的,二级的数据是通过点击之后通过服务器获取数据,并不是全量数据直接一起返回回来的。 问题: 当你设置了默认选中的子节点,但是由于刚进入页面此时tree中数据暂是没有这个…...

Java项目:基于SSM框架实现的高校共享单车管理系统分前后台【ssm+B/S架构+源码+数据库+开题报告+任务书+毕业论文】
一、项目简介 本项目是一套基于SSM框架实现的高校共享单车管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…...
【Android】自定义换肤框架02之自定义AssetManager和Resource
ResourceId是如何变成对应Resource的 在上一章中,我们已经讲过,apk中有个资源索引文件 其中保存了每个资源对应的id,name,type,path 资源文件的解析,主要涉及两个类,AssetManager和Resource …...
熵权法、熵值法、熵权TOPSIS三种方法的实用场景及优劣比较
在统计分析与决策分析中,熵权法、熵值法和熵权TOPSIS是三种常用的基于信息熵理论的方法。这些方法在处理多属性或多指标决策问题时,能够客观地反映数据的内在特性和各指标的相对重要性,为科学决策提供了有力支持。 熵权法 实用场景 熵权法是一种基于信息熵的客观赋权方法…...

无人机人员搜救
人员搜救-水域救援 水域搜救:快速水面搜查 物资抛投:救生物资抛投 绳索牵引:牵引救援绳索 领航船艇:水面侦察领航 人员搜救 昼夜搜救,精准定位 水域搜救 经纬 M300 RTK 搭载禅思 H20T 能够满足全天候作业需求&a…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...
ffmpeg(三):处理原始数据命令
FFmpeg 可以直接处理原始音频和视频数据(Raw PCM、YUV 等),常见场景包括: 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装(如封装为 MP4、TS) 处理原始 YUV 视频…...

今日行情明日机会——20250609
上证指数放量上涨,接近3400点,个股涨多跌少。 深证放量上涨,但有个小上影线,相对上证走势更弱。 2025年6月9日涨停股主要行业方向分析(基于最新图片数据) 1. 医药(11家涨停) 代表标…...
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
文章目录 📌 前言🧰 一、前期准备✅ 安装 Kali Linux✅ 获取支持监听模式的无线网卡 🛠 二、使用 Kali Linux 进行 WiFi 安全测试步骤 1:插入无线网卡并确认识别步骤 2:开启监听模式步骤 3:扫描附近的 WiFi…...