首页 > 其他分享 >【跟我学K8S】45天入门到熟练详细学习计划

【跟我学K8S】45天入门到熟练详细学习计划

时间:2024-07-06 10:27:14浏览次数:8  
标签:跟我学 K8s 部署 45 实践 学习 应用 K8S Day

目录

一、什么是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,Day
From: https://blog.csdn.net/benshu_001/article/details/140218956

相关文章

  • 「杂题乱刷2」CF1454F Array Partition
    题目链接CF1454FArrayPartition解题思路我们发现显然第一个和第三个区间的值区间随着长度的增大而增大。于是我们就可以枚举第一个区间的右端点位置,然后现在问题就转化成了找到一个断点来确定第二,三个区间的长度,由于前文提到的第三个区间的值区间随着长度的增大而增大,于是我......
  • Studying-代码随想录训练营day30| 452.用最少数量的箭引爆气球、435.无重叠区间、763.
    第30天,贪心part04,加油,编程语言:C++目录452.用最少数量的箭引爆气球435.无重叠区间 763.划分字母区间 总结 452.用最少数量的箭引爆气球文档讲解:代码随想录用最少数量的箭引爆气球视频讲解:手撕用最少数量的箭引爆气球题目:学习:根据题干,很直观的贪心逻辑就是尽可......
  • 记一次aspnetcore发布部署流程初次使用k8s
    主题:aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译、发布、推送到k8s。关于gitlab、jenkins、k8s安装,都是使用docker启动服务。首先新建一个项目,为了方便浏览就把swaggerr非开发环境不展示去掉 下面就是需要准备Dockerfile和k8s.yaml文件,这里不应该用......
  • 基于Kube-Prometheus/v0.13.0的K8S监控部署
    Kube-Prometheus不同版本支持的Kubernetes版本信息如下:kube-prometheusstackKubernetes1.22Kubernetes1.23Kubernetes1.24Kubernetes1.25Kubernetes1.26Kubernetes1.27Kubernetes1.28release-0.10✔✔✗✗xxxrelease-0.11✗✔✔✗xxx......
  • 代码随想录算法训练营第十三天|今天量大管饱144、145、94、102、107、199、637、429、
    今天来处理二叉树part1、2、3,顶级享受,一次到位。完全二叉树和满二叉树概念没问题。二叉搜索树,左子树所有结点的值小于它的根结点的值,右子树上所有结点的值大于它的根结点的值平衡二叉搜索树,它是一棵空树或它的左右两个子树的高度差的绝对值不超过1。二叉树的存储方式:链式存储......
  • P8453 「SWTR-8」美元巨大 (位运算+贪心)
    P8453「SWTR-8」美元巨大位运算+贪心因为\(a_i=2^{b_i}\),所以每一个符号只会影响一个二进制位,也就是二进制位是独立的。考虑经典的按位考虑,从高位到低位,我们希望高位尽可能取到\(1\)并且留下更好的符号让低位能更大。考虑贪心,显然|比^的价值更大,所以在答案不会变小的情......
  • k8s组件之Etcd
    一、ectd数据库介绍etcd 是CoreOS团队于2013年6月发起的开源项目, 是一种开源的分布式键值存储库,用于保存和管理分布式系统保持运行所需的关键信息。 etcd基于Raft共识算法而构建,可确保集群中所有节点之间的数据存储一致性。etcd 采用全新的设计,具有以下特性:......
  • 代码随想录算法训练营第七天| 454. 两数相加Ⅱ、383.赎金信、15.三数之和、18.四数之
    454题拆成两块各自匹配化成两个O(n^2)运算1classSolution{2public:3intfourSumCount(vector<int>&nums1,vector<int>&nums2,vector<int>&nums3,vector<int>&nums4){4//四个数组拆分成两块两块5unordered_ma......
  • 代码随想录算法训练营第九天|151.反转字符串中的单词、55.右旋字符串、28.找出字符串
    151以前写过很呆的写法但能用嘿1classSolution{2public:3stringreverseWords(strings){4//初始化变量5vector<vector<int>>data;//存储单词的起始地址和长度6stringans;//最终结果字符串7intnum=0;......
  • K8s
    kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本......