提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、云原生基础概述
-
- [1.1 云原生的发展历程×](#1.1 云原生的发展历程×)
- [1.2 云原生的定义与部署模式](#1.2 云原生的定义与部署模式)
- [1.3 云原生的技术栈](#1.3 云原生的技术栈)
- [1.4 云原生的特征](#1.4 云原生的特征)
- 二、Kubernetes(K8S)核心认知
-
- [三、为什么要用 K8S?](#三、为什么要用 K8S?)
- 四、K8S集群架构与核心组件
- [4.1 控制平面(Master / Control Plane)组件](#4.1 控制平面(Master / Control Plane)组件)
- [4.2 工作节点(Node / Worker)组件](#4.2 工作节点(Node / Worker)组件)
- [五. Kubernetes 核心概念与资源对象](#五. Kubernetes 核心概念与资源对象)
- [六、 Kubernetes 核心能力与特性](#六、 Kubernetes 核心能力与特性)
- 总结

前言
一、云原生基础概述
1.1 云原生的发展历程×
2004年:Google开始在内部大规模使用容器技术。
2008年:Google将Cgroups技术合并进Linux内核,为容器化技术奠定基础。
2013年:Docker项目正式发布,推动容器技术进入开源领域。
2014年:Kubernetes项目正式发布,成为容器编排的行业标准。
2015年:Google、Redhat、微软等共同发起成立CNCF(云原生计算基金会),推进云原生技术
的开源生态。
2017年:CNCF成员达到170个,基金项目数量为14个。
2018年:CNCF迎来三周年,成员数达195个,基金项目19个。

1.2 云原生的定义与部署模式
帮助企业在公有云、私有云、混合云等动态环境中,
1.2.1 公有云
云服务商(如 AWS、阿里云等)在互联网公开提供的云计算服务,核心特点是资源共享、按需付费。用户无需管理底层基础设施,按业务需求弹性申请资源并按使用量付费。适用场景:中小企业低成本启动、突发流量(如电商大促)、非敏感业务部署。
1.2.2 私有云
企业在自有数据中心搭建的专属云计算平台,完全自主拥有和控制。核心优势是高安全性、高定制性,可适配行业合规要求,避免敏感数据外泄。适用场景:企业核心业务(如交易系统)、敏感数据存储、高合规要求场景。
1.2.3 混合云
整合公有云、私有云与本地 IT 基础设施的集成环境,兼顾公有云的弹性低成本与私有云的安全可控性。企业可将敏感数据存于私有云,非敏感工作负载(如日志分析、测试环境)部署在公有云,实现资源最优配置。典型案例:电商平台将支付数据存私有云,商品展示等非敏感服务部署公有云,大促时通过公有云弹性扩容。
1.3.2 云原生技术栈公式
云原生并非单一技术,而是多技术的协同组合,可简化为以下公式:
1.3 云原生的技术栈
云原生技术栈包括以下关键技术:
容器化 :如Docker、containerd,提供应用的轻量级封装和环境一致性。
服务网格 :例如Istio,管理服务之间的通信、安全性和流量控制。
微服务架构 :将应用拆解为多个独立的服务,支持灵活扩展和独立部署。
不可变基础设施 :服务一旦部署,便不再修改,通常使用版本化的镜像来保持一致性。
声明式API:通过定义期望的状态,由系统自动管理资源。
云原生 = 容器化(Docker+K8S) + 微服务(Microservices) + 无服务(Serverless) + DevOps + 服务网格(Service Mesh) + 云(Cloud)


云元素的四要素
1.微服务 :几乎每个云原生的定义都包含微服务,跟微服务相对的是单体应用,微服务有理论基础,
那就是康威定律,指导服务怎么切分,很玄乎,凡是能称为理论定律的都简单明白不了,不然就忒
没b格,大概意思是组织架构决定产品形态,不知道跟马克思的生产关系影响生产力有无 系。
微服务架构的好处就是按function切了之后,服务解耦,内聚更强,变更更易;另一个划分服务的
技巧据说是依据DDD来搞。
2.容器化 :Docker是应用最为广泛的容器引擎,在思科谷歌等公司的基础设施中大量使用,是基于
LXC技术搞的,容器化为微服务提供实施保障,起到应用隔离作用,K8S是容器编排系统,用于容
器管理,容器间的负载均衡,谷歌搞的,Docker和K8S都采用Go编写,都是好东西。
3.DevOps :这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实
际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云
原生提供持续交付能力。
4.持续交付 :持续交付是不误时开发,不停机更新,小步快跑,反传统瀑布式开发模型,这要求开发
版本和稳定版本并存,其实需要很多流程和工具支撑。
微服务:基于康威定律 / DDD 划分,按功能解耦、高内聚,替代单体应用,便于灵活变更;
容器化:以 Docker 为容器引擎(隔离应用)、K8S 为编排系统(管理容器 / 负载均衡),为微服务落地提供基础;
DevOps:融合开发、运维、测试,以敏捷思维、沟通文化为核心,支撑云原生的持续交付;
持续交付:反瀑布式开发,实现小步快跑、不停机更新,需流程与工具协同保障
1.4 云原生的特征
云原生系统具备以下特征,确保其适应现代云计算环境的需求:
- 符合12因素应用:应用遵循12因素开发原则,确保可扩展性、无状态性、易维护等。
- 面向微服务架构:应用拆解为独立的、松耦合的服务。
- 自服务敏捷架构:开发人员可以自主创建和管理云资源,减少对运维的依赖。
- 基于API的协作:通过API进行服务间的通信。
- 抗脆弱性:系统具有自愈能力,能够应对不稳定的环境因素。
12因素应用的具体原则:
- 基准代码:使用同一代码库进行版本控制,并支持多次部署。
- 依赖管理:显式声明和隔离各依赖项,确保环境一致性。
- 配置管理:配置项存储在环境中,避免硬编码。
- 后端服务:外部服务作为附加资源使用。
- 构建、发布、运行分离:清晰区分应用构建和运行阶段。
- 无状态进程:应用以无状态进程运行,便于水平扩展。
- 端口绑定:通过端口提供服务,确保应用独立性。
- 并发处理:通过进程模型进行扩展。
- 快速启动与优雅终止:应用启动迅速,并在终止时确保数据一致性。
- 开发环境与生产环境一致:确保开发、预发布和生产环境尽量一致。
- 日志管理:统一收集并展示日志信息,确保可追溯性。
- 管理进程:管理性任务(如数据备份)应使用与常驻进程相同的运行环境。
通过遵循这些原则,云原生应用能够在云环境中灵活、安全且高效地运行
二、Kubernetes(K8S)核心认知
K8S 是什么?
K8S 是 Kubernetes 的简写(K + "ubernetes" 中的 8 个字母 + S)
Kubernetes 是一个开源平台,用于 自动部署、扩展和管理容器化(containerized)应用程序
它可以看作一个负责自动化运维、编排多个容器(如由 containerd 驱动的容器)的集群管理系统
源起:Kubernetes 受 Google 的 Borg 系统启发,后使用 Go 语言重写并捐赠给 CNCF
名称含义:源自希腊语,意为 "舵手 / 导航者"

三、为什么要用 K8S?
自动化运维 :无须人工干预,实现一条命令或声明式方式完成部署、更新、扩容、缩容、删除等
弹性伸缩 :依据指标(CPU、内存、自定义指标等)自动扩展或缩减 Pod 副本数
容灾 / 自愈 :当某个节点或容器失败时,K8S 会自动重建或迁移 Pod,保证副本数量和期望状态
服务发现与负载均衡 :通过 Service 为 Pod 提供稳定的访问入口,并自动分发请求
滚动升级与回滚 :支持渐进式升级,一旦出错可以回滚到之前版本
集中配置与密钥管理 :通过 ConfigMap 、 Secret 等资源集中管理配置与敏感数据
存储编排 :支持将外部存储(NFS、Ceph、云存储等)纳入集群资源管理
批处理 / 定时任务:支持 Job 、 CronJob 用于一次性或定时任务

四、K8S集群架构与核心组件
K8S采用控制平面(Master)+ 工作节点(Node)的主从架构,两者协同工作,共同管理容器集群。
3.1 架构概述
控制平面(Master/Control Plane):集群的"大脑",负责集群的调度、管理与决策------如接收用户请求(如"部署3个Nginx Pod")、选择合适的Node节点运行Pod、监控集群状态是否符合期望;
工作节点(Node/Worker):集群的"手脚",负责运行实际的容器化应用------接收控制平面下发的任务,启动/停止容器,汇报节点与Pod状态;
通信逻辑:所有资源操作请求(如创建Pod、删除Service)均通过控制平面的API Server接收,控制平面处理后将任务下发给Node节点,Node节点通过kubelet执行任务并反馈状态。



4.1 控制平面(Master / Control Plane)组件

4.2 工作节点(Node / Worker)组件

五. Kubernetes 核心概念与资源对象
以下是整理后的 Kubernetes 核心概念与资源表格:

| 概念 / 资源 | 含义与用途 |
|---|---|
| Pod | Kubernetes 中最小的可调度单位,包含一个或多个共享资源的容器。 |
| 控制器 | 确保 Pod 运行、修复、扩缩等,包括 Deployment、ReplicaSet、StatefulSet 等。 |
| Service | 为 Pod 提供稳定访问入口,支持负载均衡。 |
| Ingress | 管理外部 HTTP/HTTPS 流量路由到集群内 Service。 |
| Label/Annotation/Selector | Label 用于标识资源,Annotation 存储元数据,Selector 选择资源。 |
| Namespace | 逻辑隔离集群资源,实现权限管理。 |
| 资源定义结构 | 通过 YAML/JSON 定义,包含 apiVersion、kind、metadata 等字段。 |
六、 Kubernetes 核心能力与特性
自动伸缩(Horizontal Pod Autoscaler, Vertical Pod Autoscaler 等)
服务发现 & 负载均衡
滚动更新 / 回滚
容错 / 自愈
集中配置 / 密钥管理(ConfigMap / Secret)
存储编排与持久化存储(PV / PVC / StorageClass)
批处理 / 定时任务
资源隔离 / 配额 / 限制(ResourceQuota, LimitRange 等)
安全管理机制:如 RBAC(基于角色的访问控制)、NetworkPolicy(网络策略)、Pod 安全策略 /
Pod 安全准入(安全设置)

总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。