K8S(一)—— 云原生与Kubernetes(K8S)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、云原生基础概述
    • [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 云原生的特征

云原生系统具备以下特征,确保其适应现代云计算环境的需求:

  1. 符合12因素应用:应用遵循12因素开发原则,确保可扩展性、无状态性、易维护等。
  2. 面向微服务架构:应用拆解为独立的、松耦合的服务。
  3. 自服务敏捷架构:开发人员可以自主创建和管理云资源,减少对运维的依赖。
  4. 基于API的协作:通过API进行服务间的通信。
  5. 抗脆弱性:系统具有自愈能力,能够应对不稳定的环境因素。

12因素应用的具体原则:

  1. 基准代码:使用同一代码库进行版本控制,并支持多次部署。
  2. 依赖管理:显式声明和隔离各依赖项,确保环境一致性。
  3. 配置管理:配置项存储在环境中,避免硬编码。
  4. 后端服务:外部服务作为附加资源使用。
  5. 构建、发布、运行分离:清晰区分应用构建和运行阶段。
  6. 无状态进程:应用以无状态进程运行,便于水平扩展。
  7. 端口绑定:通过端口提供服务,确保应用独立性。
  8. 并发处理:通过进程模型进行扩展。
  9. 快速启动与优雅终止:应用启动迅速,并在终止时确保数据一致性。
  10. 开发环境与生产环境一致:确保开发、预发布和生产环境尽量一致。
  11. 日志管理:统一收集并展示日志信息,确保可追溯性。
  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 定义,包含 apiVersionkindmetadata 等字段。

六、 Kubernetes 核心能力与特性

自动伸缩(Horizontal Pod Autoscaler, Vertical Pod Autoscaler 等)

服务发现 & 负载均衡

滚动更新 / 回滚

容错 / 自愈

集中配置 / 密钥管理(ConfigMap / Secret)

存储编排与持久化存储(PV / PVC / StorageClass)

批处理 / 定时任务

资源隔离 / 配额 / 限制(ResourceQuota, LimitRange 等)

安全管理机制:如 RBAC(基于角色的访问控制)、NetworkPolicy(网络策略)、Pod 安全策略 /

Pod 安全准入(安全设置)


总结

提示:这里对文章进行总结:

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

相关推荐
阿里云云原生3 分钟前
AI 网关这一年,成了 AI 进化的缩影
云原生
刘一说1 小时前
2026年Java技术栈全景图:从Web容器到云原生的深度选型指南(附避坑指南)
java·前端·spring boot·后端·云原生·tomcat·mybatis
阿里云云原生1 小时前
AI 原生应用开源开发者沙龙·广州站精彩回顾 & PPT 下载
云原生
虫小宝3 小时前
导购返利APP服务网格实践:基于Istio的微服务流量管理与监控
微服务·云原生·istio
阿里云云原生3 小时前
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
云原生
忧郁蓝调264 小时前
Redis单节点主从复制数据迁移
数据库·redis·缓存·云原生·中间件·云计算·paas
田野里的雨4 小时前
onlyoffice9.2.1 docker容器中突破20限制
运维·docker·容器
无聊的HZ4 小时前
k8s中, deployments 、pods 、replica sets 、services 他们分别是什么?有什么关联?
云原生·容器·kubernetes
liuc03175 小时前
docker下安装RediSearch
redis·docker·容器
庸子5 小时前
动静结合的防御体系:Kubernetes 网络零信任与漏洞扫描实战
网络·容器·kubernetes