1. k8s的简介

Kubernetes(k8s)简介

1. 产生背景

随着云计算和微服务架构的兴起,传统的单体应用逐渐被拆分为多个小型、松耦合的服务(微服务)。这种架构虽然提升了开发灵活性和可维护性,但也带来了新的挑战:
部署复杂性:成百上千的微服务需要独立部署、扩展和监控。
资源管理:如何高效利用服务器资源,避免资源浪费?
高可用性:如何确保服务在故障时自动恢复?
跨环境一致性:开发、测试、生产环境如何保持一致?

Google 的实践经验
Google 内部早在 2000 年代初期就面临大规模服务管理的难题,并开发了名为 Borg 的集群管理系统(用于管理数十亿容器的运行)。2014 年,Google 将 Borg 的核心思想开源,推出了 Kubernetes(意为“舵手”或“飞行员”),并将其捐赠给 CNCF(云原生计算基金会)

Kubernetes 的目标是提供一套标准化的容器编排方案,解决分布式系统的运维痛点。


2. Kubernetes 与 Docker 的关系
(1) Docker 的定位

Docker 是容器化技术的代表,解决了应用打包和环境一致性问题:
容器化:将应用及其依赖(如库、配置文件)打包成轻量级、可移植的容器镜像。
环境一致性:开发者的本地环境与生产环境完全一致,避免“在我机器上能跑”的问题。

(2) Kubernetes 的定位

Docker 解决了单个容器的运行问题,但在大规模场景中仍需解决:
容器调度:成百上千的容器如何分配到服务器?
服务发现:容器动态扩缩容时,如何自动更新网络配置?
故障自愈:容器崩溃后如何自动重启?
滚动更新:如何实现零停机更新?

Kubernetes 的作用
Kubernetes 是容器编排平台,负责管理 Docker 容器的 生命周期,包括部署、扩缩容、网络、存储等。
关系比喻
• Docker 是“集装箱”,负责封装货物(应用)。
• Kubernetes 是“港口调度系统”,负责决定集装箱放在哪艘船(服务器)、如何运输(网络)、何时补充货物(扩缩容)。

(3) 技术栈的演进

Docker 单机模式:手动启动容器,适合简单场景。
Docker Compose:单机多容器编排,适合本地开发。
Kubernetes:跨节点、跨集群的容器编排,适合生产环境。


3. Kubernetes 的核心功能
  1. 自动化部署与扩缩容
    • 根据 CPU/内存使用率或自定义指标自动调整副本数量(HPA)。
    • 示例:电商大促时自动扩容后端服务以应对流量高峰。

  2. 服务发现与负载均衡
    • 通过 Service 和 Ingress 暴露服务,自动分配 IP 和 DNS 名称。
    • 示例:前端应用通过服务名 user-service 访问后端,无需关心具体 IP。

  3. 存储编排
    • 支持动态挂载云存储(如 AWS EBS、NFS),解决容器数据持久化问题。
    • 示例:数据库容器的数据卷在 Pod 重启后仍保留。

  4. 自我修复
    • 自动重启崩溃的容器、替换故障节点、重新调度 Pod。
    • 示例:某节点宕机后,其上的 Pod 会被迁移到健康节点。

  5. 密钥与配置管理
    • 通过 ConfigMap 和 Secret 集中管理配置和敏感信息。
    • 示例:数据库密码通过 Secret 注入,而非硬编码在代码中。

  6. 批处理任务
    • 支持一次性任务(Job)和定时任务(CronJob)。
    • 示例:每天凌晨执行数据备份任务。


4. 主要应用场景
(1) 微服务架构

场景特点:大量小型服务独立部署、通信复杂。
K8s 优势
• 服务间通过 Service 通信,自动负载均衡。
• 每个服务可独立扩缩容,提升资源利用率。

(2) 持续交付与 DevOps

场景特点:频繁发布新版本,需快速迭代且不影响用户体验。
K8s 优势
• 滚动更新(Rolling Update)实现零停机部署。
• 与 CI/CD 工具(如 Jenkins、GitLab CI)无缝集成。

(3) 混合云与多云部署

场景特点:业务需跨公有云(AWS、Azure)和私有云运行。
K8s 优势
• 提供一致的部署和管理接口,避免云厂商锁定。
• 示例:在 AWS 和本地数据中心同时运行服务。

(4) 大规模应用管理

场景特点:成千上万的容器需要高效调度。
K8s 优势
• 优化资源分配,提高服务器利用率。
• 自动处理节点故障,保障业务连续性。

(5) 高可用与灾备

场景特点:关键业务需 24/7 稳定运行。
K8s 优势
• 跨可用区(AZ)部署 Pod,避免单点故障。
• 自动检测并替换不健康的实例。


5. 实际案例
  1. Spotify
    • 音乐流媒体平台,使用 Kubernetes 管理 1000+ 微服务,实现快速迭代和全球部署。
  2. Airbnb
    • 从单体架构迁移到微服务,依赖 Kubernetes 处理每日数亿次请求。
  3. Adidas
    • 通过 Kubernetes 在混合云环境中运行电商平台,支撑“黑五”大促流量。

6. 总结

Kubernetes 的定位:容器编排的事实标准,解决分布式系统复杂性的核心工具。
与 Docker 的关系:互补而非替代,Docker 负责“容器化”,Kubernetes 负责“规模化”。
适用场景:微服务、CI/CD、混合云、大规模应用、高可用系统等。

通过 Kubernetes,企业可以专注于业务逻辑,而非底层基础设施的运维细节,真正实现“云原生”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV 图形API(35)图像滤波-----中值模糊函数medianBlur()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用中值滤波器模糊图像。 该函数使用带有 ksizeksize 开口的中值滤波器来平滑图像。多通道图像的每个通道都是独立处理的。输出图像必须与输入…

03 UV

04 Display工具栏_哔哩哔哩_bilibili 讲的很棒 ctrlMMB 移动点 s 打针 ss 批量打针

PTA:古风排版

中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&a…

每日一题(小白)暴力娱乐篇30

顺时针旋转&#xff0c;从上图中不难看出行列进行了变换。因为这是一道暴力可以解决的问题&#xff0c;我们直接尝试使用行列转换看能不能得到想要的结果。 public static void main(String[] args) {Scanner scan new Scanner(System.in);int nscan.nextInt();int mscan.next…

边缘计算场景下的模型轻量化:TensorRT部署YOLOv7的端到端优化指南

一、边缘计算场景下的技术挑战与优化路径 在边缘设备&#xff08;如Jetson系列&#xff09;部署YOLOv7需兼顾模型精度、推理速度与功耗限制三重约束。TensorRT作为NVIDIA官方推理加速库&#xff0c;通过算子融合、量化压缩和内存复用等优化技术&#xff0c;可将模型推理速度提…

rce漏洞学习

什么是rce漏洞 rce漏洞又称远程代码执行漏洞&#xff0c;它允许攻击者在目标服务器上远程执行任意代码或操作系统命令。rce漏洞通常出现在 应用程序提供给用户执行命令的接口&#xff0c;例如网页的ping功能也就是网页的url栏&#xff0c;如果不对上传的数据进行严格的管控就可…

VMware下Ubuntu空间扩容

目的&#xff1a; Ubuntu空间剩余不足&#xff0c;需要对Ubuntu进行扩容。 使用工具&#xff1a; 使用Ubuntu系统中的gparted工具进行系统扩容。 前提&#xff1a; 1、电脑有多余的未分配磁盘空间&#xff0c;比如我的Ubuntu磁盘G盘是200G&#xff0c;现在快满了&#xff0c…

国产数据库与Oracle数据库事务差异分析

数据库中的ACID是事务的基本特性&#xff0c;而在Oracle等数据库迁移到国产数据库国产中&#xff0c;可能因为不同数据库事务处理机制的不同&#xff0c;在迁移后的业务逻辑处理上存在差异。本文简要介绍了事务的ACID属性、事务的隔离级别、回滚机制和超时机制&#xff0c;并总…

Dockerfile 学习指南和简单实战

引言 Dockerfile 是一种用于定义 Docker 镜像构建步骤的文本文件。它通过一系列指令描述了如何一步步构建一个镜像&#xff0c;包括安装依赖、设置环境变量、复制文件等。在现实生活中&#xff0c;Dockerfile 的主要用途是帮助开发者快速、一致地构建和部署应用。它确保了应用…

青少年编程与数学 02-016 Python数据结构与算法 22课题、并行算法

青少年编程与数学 02-016 Python数据结构与算法 22课题、并行算法 一、GPU并行计算矩阵乘法示例 二、MPI并行计算allgather操作示例 三、Python中的并行计算多线程并行计算多进程并行计算 四、SIMD并行计算SIMD并行计算示例 总结 课题摘要: 并行算法是通过同时执行多个任务或操…

20250412 机器学习ML -(3)数据降维(scikitlearn)

1. 背景 数学小白一枚&#xff0c;看推理过程需要很多时间。好在有大神们源码和DS帮忙&#xff0c;教程里的推理过程才能勉强拼凑一二。 * 留意&#xff1a; 推导过程中X都是向量组表达: shape(feature, sample_n); 和numpy中的默认矩阵正好相反。 2. PCA / KPCA PCAKPCA(Li…

宿舍管理系统(servlet+jsp)

宿舍管理系统(servletjsp) 宿舍管理系统是一个用于管理学生宿舍信息的平台&#xff0c;支持超级管理员、教师端和学生端三种用户角色登录。系统功能包括宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录、添加宿舍房间、心理咨询留言板、修改密码和退出系统等模块。宿舍管理员…

现代测试自动化框架教程:Behave接口测试与Airtest移动端UI自动化

前言 我发现每天还是陆陆续续有人在看我之前写的自动化框架搭建的文档&#xff1b;即使很早就有新的框架&#xff0c;更好的选择出来了&#xff1b;所以特别写了这一篇目前大厂也在使用的&#xff1b;日活400w有实际落地的自动化测试架构方案&#xff1b; 随着测试技术…

.NET Core DI(依赖注入)的生命周期及应用场景

在.NET中&#xff0c;依赖注入&#xff08;DI&#xff0c;Dependency Injection&#xff09;是一种设计模式&#xff0c;它通过将依赖关系注入到类中&#xff0c;而不是让类自己创建依赖项&#xff0c;来降低类之间的耦合度。这使得代码更加模块化、灵活和易于测试。在.NET中&a…

设计模式 --- 观察者模式

观察者模式是一种行为设计模式&#xff0c;它定义了对象之间的一对多依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖它的对象都会得到通知并自动更新。 优点&#xff1a; ​​1.解耦性强​​&#xff1a; ​​观察者&#xff08;订阅者&#xff09;与主…

PasteForm框架开发之Entity多级嵌套的表单的实现

你相信么,使用PasteForm框架开发&#xff0c;管理端居然不要写代码&#xff01;&#xff01;&#xff01; 一起来看看PasteForm是否支持多级表模式(外表) 需求假设 假如有这么一个需求&#xff0c;就是订单表&#xff0c;包含了多级的信息&#xff0c;比如这个订单包含了哪些…

深入解析分类模型评估指标:ROC曲线、AUC值、F1分数与分类报告

标题&#xff1a;深入解析分类模型评估指标&#xff1a;ROC曲线、AUC值、F1分数与分类报告 摘要&#xff1a; 在机器学习中&#xff0c;评估分类模型的性能是至关重要的一步。本文详细介绍了四个核心评估指标&#xff1a;ROC曲线、AUC值、F1分数和分类报告。通过对比这些指标…

多模态医学AI框架Pathomic Fusion,整合了组织病理学与基因组的特征

小罗碎碎念 在医学AI领域&#xff0c;癌症的精准诊断与预后预测一直是关键研究方向。 这篇文章提出了Pathomic Fusion这一创新框架&#xff0c;致力于解决现有方法的局限。 传统上&#xff0c;癌症诊断依赖组织学与基因组数据&#xff0c;但组织学分析主观易变&#xff0c;基因…

《Python星球日记》第27天:Seaborn 可视化

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 专栏&#xff1a;《Python星球日记》&#xff0c;限时特价订阅中ing 目录 一、Seabor…

【scikit-learn基础】--『监督学习』之 决策树回归

决策树算法是一种既可以用于分类&#xff0c;也可以用于回归的算法。 决策树回归是通过对输入特征的不断划分来建立一棵决策树&#xff0c;每一步划分都基于当前数据集的最优划分特征。 它的目标是最小化总体误差或最大化预测精度&#xff0c;其构建通常采用自上而下的贪心搜索…