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

【跟我学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 组件在属性、事件和方法的使用上有所相似&#xff…...

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 该模块是用于自动化和控制系统的高性能可编程控制器。它旨在与其他自动化和控制设备一起使用,以提供完整的系统解决方案 是一种数字输入/输出模块,提供了高水平的性能和可靠性。它专为苛刻的工业应用而设计&#xff0c…...

大模型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…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

6.9-QT模拟计算器

源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...