自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 容器编排底层原理:Kubernetes 网络模型与 CNI 插件

Kubernetes 网络模型是K8s 为 Pod 和 Service 定义的网络通信规范,CNI 是实现该规范的网络插件接口。Kubernetes 网络模型:规定了 Pod 之间、Pod 与 Service 之间该如何通信CNI:是让不同网络方案(如 Calico、Flannel)接入 K8s 的“通用插座”它是 Kubernetes 实现跨节点 Pod 通信与服务发现的基础架构关键点Kubernetes 网络模型要求所有 Pod 在同一扁平网络中。

2026-06-06 21:15:00 430

原创 PersistentVolume与PersistentVolumeClaim:K8s 存储绑定机制完全解析

是集群中的一块存储资源,由管理员预先配置或通过 StorageClass 动态创建。是用户对存储资源的申请请求,开发者只需声明"我需要多大容量、什么访问模式"。PV 是"云硬盘",PVC 是"硬盘申请单"。它是 Kubernetes 实现存储资源解耦与动态供给的核心机制关键点PV 是集群级存储资源,PVC 是命名空间级存储申请静态供给适合固定存储,动态供给适合灵活需求Retain策略保护生产数据,Delete策略简化测试清理正确理解绑定规则能避免Pending和数据丢失。

2026-05-16 21:15:52 541

原创 Kubernetes 的核心存储机制:Volume 类型与生命周期

Volume(卷)是Kubernetes 中挂载到 Pod 的存储抽象,它让容器具备了持久化存储和多容器共享文件的能力。Volume 是 Pod 的“外接硬盘”,即使容器重启,数据依然保留。它是 Kubernetes 有状态应用(Stateful Applications)的基石关键点Volume 是 Kubernetes 有状态应用的生命线emptyDir适合临时缓存,hostPath仅限特殊场景是生产环境的黄金标准正确选择 Volume 类型能避免数据丢失和安全漏洞类型持久化跨节点。

2026-05-05 10:40:01 479

原创 从“单细胞”到“特种部队”:聊聊AI Agent、Skill和Tool

你是否感觉现在的AI助手,比如ChatGPT,更像一个“超级大脑”,但让它帮你完整地订个旅行计划、分析一份财报,还是有点费劲?未来,我们希望AI能像一位得力的私人助理,不仅能回答问题,还能主动调用各种软件、完成复杂任务。AI Agent(智能体)、Skill(技能)和 Tool(工具)。它们到底是什么?又有什么关系?今天我们就用最通俗的方式来拆解一下。Tool(工具)是“武器”(螺丝刀、万用表)。Skill(技能)是“说明书”或“标准作业流程”(《如何组装一台电脑》)。AI Agent(智能体)是。

2026-04-18 11:21:24 634

原创 Label 与 Selector:Kubernetes 资源选择的核心机制

Label(标签)是Kubernetes 中用于标识资源的键值对Selector(选择器)是根据 Label 筛选资源的查询条件。Label 给资源贴标签,Selector 根据标签找资源。它是 Kubernetes 资源组织、服务发现、流量路由的基础机制关键点Label 是 Kubernetes 资源组织的核心机制Selector 是服务发现、流量路由的基础正确配置 Label 与 Selector 能显著提升可维护性它与 Namespace 配合实现完整的资源管理方案。

2026-04-15 22:28:35 504

原创 Namespace:容器资源隔离的核心

Namespace是Linux 内核提供的一种资源隔离机制“让这组进程只能看到属于自己的系统资源视图。它的作用和虚拟机类似,但它是操作系统级别的虚拟化,比虚拟机更轻量关键点Namespace 是容器隔离的核心基石Linux 提供6-8 种 Namespace隔离不同资源它与 Cgroups 配合实现完整的容器化方案正确配置 Namespace 能显著提升安全性和稳定性│ 容器技术 ││ (资源隔离) │ (资源限制) ││ │ ││ • PID 隔离 │ • CPU 限制 │。

2026-04-08 20:11:05 473

原创 别再把密码写进代码,用 Secret 安全存储 Kubernetes 中的密钥

Secret存储敏感数据,如:数据库密码TLS 证书私钥第三方 API 密钥将敏感信息与应用代码/镜像解耦通过 RBAC 控制访问权限敏感信息绝不硬编码,绝不进 Git,绝不进镜像!创建metadata:type: Opaque # 默认类型,用于通用密钥data:# 注意:必须是 Base64 编码!或者用stringDatametadata:# 直接写明文,K8s 自动转 Base64强烈推荐用stringData!避免手动编码出错。问题Secret 解法。

2026-03-24 22:39:05 471

原创 告别硬编码,用 ConfigMap 管理 Kubernetes 中的配置文件

ConfigMap存储非敏感的配置数据(如字符串、配置文件)将配置与容器镜像解耦支持动态更新(部分场景)配置不是代码的一部分,而是运行时注入的参数环境变量(Environment Variables)挂载为文件(Volume Mount)创建。

2026-03-08 16:36:14 549

原创 一个域名搞定前后端:用 Ingress 配置 / 和 /api 路由

路径转发到关键配置前端 Servicepath: //api/...后端 Service(按需)核心价值用户体验好:一个干净的域名运维简单:统一入口,统一 HTTPS前后端解耦:各自独立部署,互不影响有了这套配置,你的项目就具备了生产级部署能力!

2026-02-23 20:28:24 879

原创 用 Ingress 统一管理多个微服务的入口

Ingress将外部 HTTP/HTTPS 流量路由到集群内的 Services支持基于域名(Host)或路径(Path)的规则集中管理 TLS 证书、重定向、限流等Ingress 本身只是一个“配置清单”,真正干活的是(如 Nginx、Traefik)。Ingress= 路线规划图(“user.example.com → 用户服务”)= 路由器方案成本管理难度适用规模多个 LoadBalancer高高小项目Ingress低(1 个 LB)低中小到大型项目。

2026-02-20 18:32:32 1014

原创 Kubernetes Service :ClusterIP、NodePort、LoadBalancer

类型核心特点使用命令ClusterIP内部通信,安全隔离(默认)NodePort开发测试,简单暴露生产公网,云原生Service 不是“网络设备”,而是 K8s 的“流量路由规则”, 它让微服务之间的通信变得简单、可靠、可扩展。

2026-02-10 21:36:46 746

原创 部署你的第一个应用到 K8s

概念作用Kind在本地用 Docker 快速启动 K8s 集群Deployment声明式地管理应用副本(Pod)Service为 Pod 提供稳定网络访问入口NodePort把服务暴露到主机端口,方便测试。

2026-02-02 22:20:08 794 1

原创 用 Minikube 或 Kind 在本地跑起 Kubernetes

项目MinikubeKind启动命令底层技术VM 或容器纯 Docker 容器启动速度中快资源占用高(默认 2GB 内存)低(按需)适合场景学习完整 K8s 功能CI/CD、快速测试、开发者日常插件支持丰富(Ingress、Metrics Server 等)有限(需手动配置)想全面体验 K8s?→Minikube想快速迭代、写 YAML 测试?→Kind。

2026-01-21 22:34:21 783

原创 Kubernetes 核心对象详解:Pod、Deployment、Service

对象角色关键词Pod最小运行单元“装容器的盒子”DeploymentPod 管理器“自愈、扩缩容、滚动更新”Service网络入口“固定地址、负载均衡”记住这个流程写代码 → 打包镜像 → 用 Deployment 启动 Pod → 用 Service 暴露服务。

2026-01-18 14:31:58 1113

原创 为什么需要 Kubernetes

Docker 让应用可移植,Kubernetes 让应用可运维。当你只有几个容器时,Docker 足够;但当你的系统变成由成百上千个微服务组成的复杂生态时,Kubernetes 就不再是“可选项”,而是“必需品”。可靠性(自愈)弹性(扩缩容)协作(服务发现)交付效率(滚动更新)

2026-01-15 22:40:28 1043

原创 用 Docker 部署你的第一个微服务

步骤命令/文件1. 写服务代码app.js2. 写构建规则Dockerfile3. 构建镜像4. 运行容器5. 访问接口微服务的核心思想每个功能独立部署、独立运行、通过 API 通信。而 Docker,正是实现这一目标的最佳工具。

2026-01-11 22:09:16 1039 1

原创 配置中心:如何批量管理服务

配置中心存储所有微服务的配置提供统一 API 供服务拉取或监听变更支持多环境、多版本、权限控制配置不是代码的一部分,而是系统的“运行参数”集中管理,才能高效运维动态生效,才是真正的敏捷配置中心 = 微服务的“遥控器”。它让你在不碰代码、不重启服务的情况下,远程调控整个系统的运行状态。

2026-01-05 22:37:45 1110

原创 分布式追踪:一次请求穿越多个服务,怎么查问题

分布式追踪是一种技术,用来记录一个请求在多个服务之间的完整调用链路。请求经过了哪些服务?每个环节花了多长时间?哪一步失败了?耗时最长的是哪个服务?就像给每一次请求贴上一个“唯一身份证号”,不管它走到哪,都能被追踪到。分布式追踪 = 微服务的“行车记录仪”或“GPS 定位”。它让原本“看不见”的请求变得可观测、可分析、可优化。没有追踪的日志,就像没有地图的旅行一次请求的完整路径,比单个服务的日志更重要发现问题的速度,决定了系统的可用性高度。

2026-01-03 16:40:52 1121

原创 熔断与降级:别让一个故障拖垮整个系统

就像家里的空气开关当你同时开空调、电热水器、电磁炉,电流过大时,空气开关会自动跳闸,切断电源,防止电线起火。这就是“熔断”的思想!就像手机没电了关闭后台应用降低屏幕亮度禁用非必要功能虽然体验差了点,但能撑到你找到充电器,这就是“降级”熔断是“止损”,降级是“求生”。它们不是为了让你的系统永远不出错,而是为了在出错时不崩溃、不雪崩、不误伤用户。不要让一个服务的失败,影响整个调用链宁可返回简单信息,也不要让用户等死系统的高可用,不在于不出问题,而在于出问题时还能用。

2025-12-17 22:25:07 959

原创 服务发现:微服务是怎么找到彼此的

服务发现注册自己:“我上线了,我是用户服务,我在 X.X.X.X:3000”发现别人:“我要找订单服务,它在哪?整个过程自动化,无需手动配置 IP服务发现 = 微服务的“通讯录 + 导航仪”。它让服务之间摆脱对 IP 的依赖,实现动态、弹性、高可用的通信。服务启动 → 自动注册服务调用 → 先查注册中心服务下线 → 自动从列表移除有了它,你的微服务才能真正“活”起来,自由伸缩,灵活协作。

2025-12-14 14:11:17 859

原创 API 网关:微服务的大门卫

API 网关是所有客户端访问微服务的唯一入口。它不提供业务功能,而是负责转发请求、安全管理、监控流量客户端 → [API 网关] → 用户服务↓订单服务↓商品服务API 网关不是“功能服务”,而是“治理中枢”。它让微服务架构更安全、更整洁、更易维护。

2025-12-08 22:41:29 484

原创 微服务入门:如何把大系统拆成小服务

服务拆开了,怎么通信?通过 API(接口)用户下单时,订单服务要调用用户服务获取用户信息支付成功后,支付服务要通知订单服务更新状态画功能图:摸清系统结构按业务拆分:一个服务一个职责定义 API:明确服务如何通信独立部署:用 Docker 容器化每个服务联调测试:用 Docker Compose 本地运行微服务不是一蹴而就的,而是从小处着手,逐步演进的过程。

2025-11-30 22:05:08 614

原创 微服务到底是什么

微服务就是:把一个大系统,切成多个小服务,各自独立,又能协作,灵活又强壮。

2025-11-23 22:25:30 678

原创 改个按钮颜色,全系统重启?单体架构的痛你经历过吗

单体架构用户管理订单系统支付功能商品展示后台管理全部写在一个项目里,打成一个包(比如.jar.war、可执行文件),部署在一个服务器上开发简单、部署方便耦合度高、难维护、难扩展、部署风险大单体架构:结构简单,适合小服务,系统越大,越要避免“一锅炖”

2025-11-14 22:45:43 580

原创 Docker 监控与日志:如何排查容器问题

容器出问题不可怕,关键是知道怎么查。docker ps—— 看状态—— 看日志(最重要!—— 看细节—— 看资源—— 进去调试掌握它们,你就能快速定位 90% 的容器问题,不再“一脸懵”

2025-11-09 21:49:24 1002

原创 Docker 安全:如何安全地运行容器

安全地运行 Docker 容器并不是一蹴而就的事,而是需要从用户权限、镜像选择、资源配置到敏感信息管理等多方面共同把关。通过遵循这些最佳实践,你不仅能大幅降低安全风险,还能让应用更稳定、更易于维护。

2025-11-07 21:38:01 735

原创 Docker 数据持久化:如何保存容器中的数据

方式是否持久是否推荐适用场景容器内部存储❌❌临时数据数据卷(Volumes)✅✅✅✅生产环境、数据库绑定挂载(Bind Mounts)✅✅开发环境、配置共享数据持久化不是可选项,而是使用 Docker 的基本功。只有掌握了它,你才能真正安全地运行数据库、文件服务等有状态应用。

2025-11-03 21:54:59 864 1

原创 容器之间怎么通信?Docker 网络全解析

Docker 推荐使用自定义桥接网络(Custom Bridge Network),它能解决默认网络的所有问题创建自定义网络启动容器并加入网络。

2025-10-31 23:00:17 741

原创 将镜像推送到 Docker Hub 或私有仓库

镜像仓库(Registry)是用来存储和分发 Docker 镜像的服务类型举例适用场景公共仓库Docker Hub开源项目、个人学习私有仓库阿里云 ACR、腾讯云 TCR、Harbor企业内部、敏感项目Docker 镜像的“GitHub”步骤命令登录仓库打标签docker tag <源镜像> <目标镜像>推送镜像docker push <镜像名>推送镜像不是可选项,而是现代开发的标配。它让镜像可共享、可复用、可自动化,是 CI/CD 和 Kubernetes 部署的基础。

2025-10-25 22:38:34 986

原创 了解Docker的多阶段构建(Multi-stage Build)

多阶段构建允许你在一个Dockerfile中定义多个构建阶段,每个阶段可以基于不同的基础镜像。在第一阶段:使用“胖镜像”完成编译、打包在第二阶段:使用“瘦镜像”只复制必要的产物(如可执行文件、静态文件)最终镜像只包含运行所需的内容,不包含构建工具和中间文件。传统方式多阶段构建一个镜像搞定所有分阶段,各司其职镜像臃肿镜像精简安全性低安全性高多阶段构建是编写高质量 Dockerfile 的必备技能,尤其适合生产环境。

2025-10-22 21:58:28 1145

原创 Docker 构建慢?可能是你忘了 .dockerignore

是一个文本文件“在构建镜像时,请忽略这些文件和目录。它的作用和.gitignore非常相似,但它是为服务的关键点虽小,但作用巨大它能显著提升构建速度、减少镜像体积、增强安全性它是专业 Docker 使用的“标配”一句话记住它:.dockerignore 让 Docker 只看到它该看到的文件。

2025-10-20 22:16:51 831

原创 如何用 Docker Compose 管理多个容器

是一个用于定义和运行多容器 Docker 应用的工具。你只需要写一个所有容器自动启动、联网、配置完成传统方式多条docker run命令一个手动管理网络和卷自动创建和连接容易出错、难维护配置即代码,易于共享和版本控制Docker Compose 是管理多容器应用的必备工具,尤其适合本地开发、测试和微服务架构。

2025-10-18 18:57:20 881

原创 docker build 命令全解析:你真的会构建镜像吗

不只是一个命令,它是一个包含上下文、分层、缓存、优化策略的完整流程。构建出高效、安全、轻量的镜像在 CI/CD 中实现快速、稳定的交付真正理解 Docker 的工作原理。

2025-10-15 22:28:40 1027

原创 Node.js 和 Java 项目怎么写 Dockerfile

项目类型关键点Node.js先复制,用npm ci,忽略Java先构建 JAR,Docker 只 COPY 并运行,使用 JRE 镜像无论你是前端、后端还是全栈开发者,掌握为不同语言项目编写 Dockerfile 的能力,是迈向自动化交付和云原生的关键一步。

2025-10-12 21:30:48 777 1

原创 Docker 容器 -- 编写你的第一个 Dockerfile

Dockerfile 是一个文本文件,里面包含了一组指令,告诉 Docker 如何一步步构建一个镜像。“制作镜像的步骤说明书”基于哪个基础镜像?要复制哪些文件?安装什么依赖?启动时运行什么命令?什么是 Dockerfile如何编写基本指令如何构建和运行自定义镜像Dockerfile 是自动化交付的第一步,也是 CI/CD 流水线的核心。

2025-10-09 22:11:47 649

原创 Docker 三剑客:镜像、容器、仓库

概念类比作用镜像(Image)软件安装包 / 蓝图包含应用和依赖,用于创建容器容器(Container)正在运行的程序镜像的实例,应用实际运行的地方仓库(Registry)应用商店 / GitHub存储和分发镜像仓库 → 镜像 → 容器。

2025-10-06 22:01:52 1111

原创 什么是容器?它比虚拟机强在哪?

容器是一种轻量级的、可移植的软件打包技术,它把应用程序及其所有依赖(代码、库、配置等)打包在一起,形成一个独立的运行单元。最常见的容器技术是Docker核心特点轻量:只打包应用和依赖,不包含操作系统。快速启动:秒级启动,不像虚拟机要等几分钟。一致性:在开发、测试、生产环境运行结果一致。资源利用率高:多个容器共享主机操作系统,节省内存和 CPU虚拟机是另一种常见的虚拟化技术。它通过Hypervisor(虚拟化层)在一台物理服务器上模拟出多台“虚拟”的计算机。

2025-10-04 21:32:10 979

原创 云原生之CNCF 是什么

CNCF 不是一个公司,也不是一个软件,而是一个推动云原生发展的“引擎”。它通过托管开源项目、制定标准、建设社区,让 Kubernetes、Prometheus 等技术得以快速发展和广泛应用。无论你是开发者、运维、架构师,还是技术决策者,了解 CNCF,就是了解云原生世界的运行规则。

2025-09-27 22:10:08 1191

原创 云原生核心四件套:容器、微服务、K8s、CI/CD

技术解决的核心问题容器环境不一致、依赖冲突微服务单体应用臃肿、迭代慢K8s容器太多,手动管理太难CI/CD发布慢、容易出错它们共同构成了现代软件交付的基础设施更快地响应需求更稳定地运行服务更高效地利用资源容器、微服务、K8s、CI/CD 不是高不可攀的技术,而是现代软件开发的标准工具链。

2025-09-24 21:44:12 804

原创 云原生 vs 传统部署

传统部署,是过去几十年软件运行的主要方式。一台服务器跑一个应用(比如:Web 服务器 + 数据库装在同一台机器)手动安装、配置、启动应用是“大块头”单体架构(所有功能写在一起)升级要停机维护扩容靠“堆硬件”(CPU 不够?换更贵的服务器)问题后果扩容慢流量暴增时系统崩溃发布难改一个按钮要停机半小时故障影响大一个功能出错,整个系统瘫痪环境不一致“在我电脑上好好的”资源浪费大部分时间服务器空跑简单说,传统部署,灵活度低,效率瓶颈明显云原生,是为云计算时代量身打造的。

2025-09-21 19:38:08 693

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除