<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>DevOps on Leanku</title>
    <link>https://blog.leanku.com/categories/devops/</link>
    <description>Recent content in DevOps on Leanku</description>
    <image>
      <url>https://blog.leanku.com/papermod-cover.png</url>
      <link>https://blog.leanku.com/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Sat, 09 Aug 2025 16:46:01 +0800</lastBuildDate><atom:link href="https://blog.leanku.com/categories/devops/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Drone CICD自动化部署指南</title>
      <link>https://blog.leanku.com/post/cicd/drone-cicd%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/</link>
      <pubDate>Sat, 09 Aug 2025 16:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/cicd/drone-cicd%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/</guid>
      <description>本文详细介绍了 Drone 搭建CI/CD自动化部署的步骤，包括Drone安装、配置、实践...</description>
    </item>
    
    <item>
      <title>轻量级容器编排工具指南</title>
      <link>https://blog.leanku.com/post/cicd/%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%AE%B9%E5%99%A8%E7%BC%96%E6%8E%92%E5%B7%A5%E5%85%B7%E6%8C%87%E5%8D%97/</link>
      <pubDate>Sat, 09 Aug 2025 16:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/cicd/%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%AE%B9%E5%99%A8%E7%BC%96%E6%8E%92%E5%B7%A5%E5%85%B7%E6%8C%87%E5%8D%97/</guid>
      <description>轻量级容器编排工具指南 在 Docker 环境中，除了 K8s，还有多种轻量级方案可以实现服务自动重启、健康检查等功能，特别适合单机或中小规模部署。
一、简单方案 1.1 Docker 自身的重启策略（最基础方案） Docker Engine 内置了容器重启策略，可直接在启动容器时配置，实现容器退出后自动重启。
常用重启策略：
--restart always：无论容器因何种原因退出（包括正常退出），总是自动重启。 --restart on-failure[:max-retries]：仅在容器以非 0 状态码退出时重启，可选最大重试次数（如on-failure:3最多重启 3 次）。 --restart unless-stopped：除非手动执行docker stop，否则始终重启（包括 Docker daemon 重启时） 示例：
# 启动PHP容器，配置always重启策略 docker run -d \ --name php-app \ --restart always \ # 核心：容器挂掉后自动重启 -p 80:80 \ -v /path/to/php/code:/var/www/html \ php:8.2-apache 优势： 零依赖，直接使用 Docker 原生功能，适合单机部署。
局限： 仅能监控容器本身是否存活，无法检测应用内部故障（如 PHP-FPM 假死但容器仍运行）。
1.2 ocker Compose（适合多容器应用） 如果 项目依赖其他服务（如 MySQL、Redis），可使用docker-compose管理，通过配置restart参数实现自动重启，同时支持健康检查。
docker-compose.yml示例：
version: &amp;#39;3.8&amp;#39; services: php-app: image: php:8.2-apache restart: always # 容器退出后自动重启 ports: - &amp;#34;80:80&amp;#34; volumes: - .</description>
    </item>
    
    <item>
      <title>PHPUnit使用指南</title>
      <link>https://blog.leanku.com/post/phpunit%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link>
      <pubDate>Mon, 30 Jun 2025 23:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/phpunit%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid>
      <description>PHPUnit 使用指南 一、介绍 PHPUnit 是 PHP 领域最流行的单元测试框架，它受到 JUnit 的启发，为 PHP 开发者提供了编写和运行单元测试的工具和方法。使用 PHPUnit 可以带来以下好处：
验证代码的正确性，确保函数和方法按预期工作 便于代码重构，修改后可以快速验证是否破坏了现有功能 帮助理解代码功能，测试用例本身就是一种文档 支持测试驱动开发 (TDD) 流程 二、安装 PHPUnit 1. 安装 PHPUnit（可以通过 composer require --dev phpunit/phpunit 安装） 2. 配置PhpStorm 运行 PHPUnit（Docker环境为例） 2.1. 配置 Docker 远程解释器 打开 PhpStorm，进入 File &amp;gt; Settings &amp;gt; Build, Execution, Deployment &amp;gt; Docker 在右侧选择 Docker for Windows（通常会自动检测） 点击 Apply 确认配置，确保连接成功（底部会显示 &amp;ldquo;Connection successful&amp;rdquo;） 进入 File &amp;gt; Settings &amp;gt; Languages &amp;amp; Frameworks &amp;gt; PHP 点击 CLI Interpreter 右侧的 &amp;hellip; 按钮，点击左上角 + 号，选择 From Docker, Vagrant, VM, WSL, Remote&amp;hellip; 选择 Docker 并找到你的 php 容器 选择容器中的 PHP 可执行文件路径（如 /usr/local/bin/php） 点击 OK 完成配置，PhpStorm 会自动检测 PHP 版本和扩展 2.</description>
    </item>
    
    <item>
      <title>wrk 使用指南</title>
      <link>https://blog.leanku.com/post/wrk-%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link>
      <pubDate>Mon, 30 Jun 2025 23:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/wrk-%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid>
      <description>wrk 使用指南 一、介绍 wrk 是一款现代化的 HTTP 基准测试工具，使用 C 语言编写，基于事件通知机制（如 epoll, kqueue），能够产生巨大的负载。相比 ab(apache benchmark)，wrk 具有以下优势：
支持多线程 + 协程模式，能更好地利用多核 CPU
支持 LuaJIT 脚本扩展，可自定义请求生成和结果处理
性能更高，单机可轻松产生数万 QPS
提供更详细的统计信息（延迟分布等）
二、安装 wrk Linux 系统安装
# Ubuntu/Debian sudo apt install wrk -y # CentOS/RHEL sudo yum install wrk -y # 或从源码编译安装 git clone https://github.com/wg/wrk.git cd wrk make sudo cp wrk /usr/local/bin/ macos
brew install wrk 三、基础使用方法 1. 基本命令格式 wrk &amp;lt;选项&amp;gt; &amp;lt;测试URL&amp;gt; 2. 常用选项说明 选项 说明 示例值 -t 使用的线程数 12 (建议设置为CPU核心数的2-4倍) -c 保持打开的连接数 100 -d 测试持续时间 30s (30秒), 2m (2分钟) -s 指定Lua脚本 post.</description>
    </item>
    
    <item>
      <title>EFK技术栈解析及PHP应用实践</title>
      <link>https://blog.leanku.com/post/efk%E6%8A%80%E6%9C%AF%E6%A0%88%E8%A7%A3%E6%9E%90%E5%8F%8Aphp%E5%BA%94%E7%94%A8%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Sun, 22 Jun 2025 20:49:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/efk%E6%8A%80%E6%9C%AF%E6%A0%88%E8%A7%A3%E6%9E%90%E5%8F%8Aphp%E5%BA%94%E7%94%A8%E5%AE%9E%E8%B7%B5/</guid>
      <description>EFK 技术栈深度解析：从原理到 PHP 应用的全流程实践 日志系统是现代企业级应用不可或缺的基础设施，它如同软件系统的 &amp;ldquo;黑匣子&amp;rdquo;，记录着系统运行的每一个关键节点。在众多日志解决方案中，EFK 技术栈以其轻量级、高性能的特点，成为容器化环境和高并发场景下的首选方案。本文将从 EFK 的核心概念出发，详细阐述其安装配置流程，并结合 PHP 开发场景，展示如何将 EFK 集成到实际项目中。
一、EFK 技术栈核心概念与架构解析 EFK 是 Elasticsearch、Fluentd 和 Kibana 三个开源组件的组合缩写，作为 ELK 技术栈的优化变种，它将 Logstash 替换为更轻量级的 Fluentd，形成了更适合现代云原生环境的日志处理体系。
1.1 EFK 各组件功能定位 Elasticsearch：分布式日志存储与检索引擎
基于 Lucene 的分布式文档存储系统，支持 PB 级日志数据的存储与检索 采用倒排索引结构，实现毫秒级日志搜索响应 天生支持集群架构，通过分片和副本机制保证高可用性 提供 RESTful API 接口，方便与 PHP 等语言集成 Fluentd：高性能日志收集与处理管道
用 C 语言开发的轻量级日志收集器，内存占用仅为 Logstash 的 1/10 支持 &amp;ldquo;一次写入，多次输出&amp;rdquo; 的 Buffer 机制，确保日志不丢失 插件化架构支持 150 + 数据源，包括 PHP 应用、MySQL、Kafka 等 内置 JSON 格式标准化处理，解决多源日志格式不一致问题 Kibana：可视化日志分析与监控平台
为 Elasticsearch 提供图形化查询界面，支持 DSL 语句可视化构建 内置多种可视化组件（折线图、仪表盘、拓扑图等） 支持基于日志数据的实时告警规则配置 提供日志模式识别功能，自动发现异常日志模式 1.</description>
    </item>
    
    <item>
      <title>使用 MinIO 自建云存储</title>
      <link>https://blog.leanku.com/post/%E4%BD%BF%E7%94%A8-minio-%E8%87%AA%E5%BB%BA%E4%BA%91%E5%AD%98%E5%82%A8/</link>
      <pubDate>Mon, 19 May 2025 20:40:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/%E4%BD%BF%E7%94%A8-minio-%E8%87%AA%E5%BB%BA%E4%BA%91%E5%AD%98%E5%82%A8/</guid>
      <description>使用 MinIO 自建云存储 1. MinIO 是什么 定位：一款高性能、开源的 对象存储（Object Storage）系统，完全兼容 AWS S3 API。 核心目标：提供轻量级、易部署的私有云存储方案，适用于云原生和大数据场景。 开源协议：GNU AGPL v3（商业版提供企业级支持）。 核心特性 高性能: 速度优势：支持并行多线程上传/下载，单节点吞吐量可达 10-100 Gbps 低延迟: 采用 Golang 编写，优化内存管理，响应时间在毫秒级 S3 完全兼容 无缝迁移：所有 AWS S3 SDK、CLI 工具（如 awscli）可直接对接 MinIO。 API 支持：覆盖 Put/Get/Object、分片上传、生命周期管理等全部 S3 操作 分布式架构 纠删码（Erasure Code）：数据分片存储，允许节点故障自动恢复（如 4节点容忍2节点失效）。 多租户：支持为不同业务创建隔离的存储桶（Bucket）和访问策略。 轻量易部署 单二进制文件：无需复杂依赖，Docker/Kubernetes 一键部署。 资源占用低：单节点运行仅需 ~200MB 内存，适合边缘计算和 IoT 设备。 适用场景 私有云存储 替代方案：替代阿里云 OSS、AWS S3，实现数据自主可控。 用例：企业文档库、备份归档。 大数据与 AI 兼容性：直接对接 Hadoop HDFS、Spark、TensorFlow 的 S3 接口。 用例：训练数据存储、模型版本管理。 云原生应用 Kubernetes 集成：通过 CSI 驱动为容器提供持久化存储。 用例：微服务应用的文件共享。 边缘计算 轻量级：在树莓派等设备上运行，就近处理数据。 用例：物联网设备数据采集。 2.</description>
    </item>
    
    <item>
      <title>基于 Gogs &#43; Jenkins &#43; Harbor &#43; Docker 的自动化部署方案</title>
      <link>https://blog.leanku.com/post/cicd/%E5%9F%BA%E4%BA%8E-gogs-&#43;-jenkins-&#43;-harbor-&#43;-docker-%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E6%96%B9%E6%A1%88/</link>
      <pubDate>Sat, 17 May 2025 18:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/cicd/%E5%9F%BA%E4%BA%8E-gogs-&#43;-jenkins-&#43;-harbor-&#43;-docker-%E7%9A%84%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E6%96%B9%E6%A1%88/</guid>
      <description>基于 Gogs + Jenkins + Harbor + Docker 的自动化部署方案 1. 系统架构总览 开发者提交代码 → Git仓库 → Jenkins触发构建 → Docker构建镜像 → 推送至Harbor → Kubernetes部署更新 → 监控反馈 2. 环境准备 2.1 硬件要求 最低配置：2核CPU/4GB内存/100GB存储 推荐配置：4核CPU/8GB内存/200GB SSD 3. 组件安装与配置 3.1 Gogs 安装 另外一篇Jenkins 使用
3.2 Jenkins 安装 另外一篇Gogs 使用
3.3 Harbor 安装 另外一篇Harbor 使用
4. 环境配置 下面以wordpress项目为例
wordpress/ ├── app/ # 项目代码 ├── docker # Docker 相关文件 | ├── Dockerfile | ├── entrypont.sh | └── nginx.conf | └── nginx-wordpress.</description>
    </item>
    
    <item>
      <title>K3s使用指南</title>
      <link>https://blog.leanku.com/post/cicd/k3s%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link>
      <pubDate>Mon, 12 May 2025 21:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/cicd/k3s%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid>
      <description>K3s使用指南+Rancher 1. K3s 简介 K3s 是一个轻量级的 Kubernetes 发行版，由 Rancher Labs（现在是 SUSE 旗下）开发。 它完全兼容 Kubernetes API，但设计上更轻便、易安装，适合边缘计算、物联网设备、单节点或资源有限环境。 K3s 把 Kubernetes 的很多组件做了简化，比如内置了 containerd，默认启用 flannel 网络，去掉了复杂的插件，安装非常简单。 主要目标是让 Kubernetes 快速部署、低资源占用，并且更适合国内和小型集群使用。 2. K3s 对比 kubeadm 特性/方面 K3s kubeadm 定位 轻量级、开箱即用的 Kubernetes 发行版 官方工具，用于标准 Kubernetes 集群的快速部署和引导 安装复杂度 极简安装，单条命令搞定 需要多个步骤，配置复杂，适合有一定 Kubernetes 经验的用户 组件集成 集成了 containerd，默认内置 flannel 网络，默认关闭了部分复杂组件（如部分云插件、Helm等） 只负责初始化集群，组件和网络插件需要用户自行选择安装 资源占用 非常低，适合边缘设备、物联网、单机小集群 资源占用较大，适合生产多节点环境 多节点支持 支持多节点，但更适合轻量和小规模集群 原生支持多节点和大规模集群，灵活度高 适用场景 单机、开发测试、小型集群、资源受限环境 生产环境，多节点，企业级集群部署 网络插件 默认集成 Flannel，安装简单 用户需自行部署网络插件（Flannel、Calico、Weave等） 更新升级 版本更新简单，内置自动化升级工具 需要手动升级，过程复杂 集成工具和生态 内置 Traefik（可选关闭），轻量且默认功能有限 灵活，可按需安装 Ingress、Dashboard、Helm 等组件 社区和支持 Rancher 支持，社区活跃 CNCF 官方支持，社区广泛 官网文档 https://k3s.</description>
    </item>
    
    <item>
      <title>Kubernetes（k8s）单机环境部署 </title>
      <link>https://blog.leanku.com/post/cicd/kubernetesk8s%E5%8D%95%E6%9C%BA%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2/</link>
      <pubDate>Sun, 11 May 2025 22:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/cicd/kubernetesk8s%E5%8D%95%E6%9C%BA%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2/</guid>
      <description>Kubernetes（k8s）单机环境部署 1. Kubernetes (K8s) 简介 此文适合新手快速上手，涵盖安装、配置、基本使用 单机环境
2. 环境 系统要求
操作系统：Linux（Ubuntu/CentOS）或 macOS（开发环境） 内存：至少 2GB（推荐 4GB+） CPU：2 核+ 存储：20GB+ 可用空间 安装工具
Docker（K8s 依赖容器运行时） kubectl（K8s 命令行工具） Minikube（本地单节点 K8s，适合学习） 3. 前置配置 # 1.关闭 swap sudo swapoff -a sudo sed -i &amp;#39;/ swap / s/^\(.*\)$/#\1/g&amp;#39; /etc/fstab # 2.加载内核模块 sudo modprobe overlay sudo modprobe br_netfilter # 3.设置内核参数 cat &amp;lt;&amp;lt;EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system 4.</description>
    </item>
    
    <item>
      <title>Kubernetes学习指北</title>
      <link>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97/</link>
      <pubDate>Thu, 01 May 2025 11:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97/</guid>
      <description>Kubernetes学习指北 一、 大纲 1. 了解基础概念 概念 说明 Pod 最小的调度单位，一个 Pod 可以包含一个或多个容器 Node Kubernetes 集群的工作节点 Deployment 管理 Pod 的副本和升级策略 Service 用于 Pod 间通信和对外暴露 ConfigMap / Secret 配置和敏感信息管理 Volume 数据卷，用于持久化数据 Namespace 命名空间，多租户环境的逻辑隔离 Ingress 对外 HTTP/HTTPS 流量管理 kube-apiserver、kube-scheduler、kube-controller-manager Master 组件，负责调度、管理集群 2. 核心组件及职责 （必须的核心组件） kube-apiserver （API 服务器） 作用： 集群的 大脑入口 负责 接收请求（kubectl、Dashboard、其他服务），然后转给 etcd 或控制器 所有组件（scheduler、controller、kubelet）都通过它通信。 像是办事大厅，所有人（开发、运维、调度器）都必须来这里递交申请。 kube-scheduler （调度器） * 作用： 负责 给 Pod 找宿主机。 根据 资源情况（CPU、内存）、约束（亲和性、污点）、策略 来决定 Pod 放在哪个 Node 上。 * 像是一个 派单员，根据司机（Node）的空闲情况，把订单（Pod）分配给合适的人。 kube-controller-manager （控制器管理器） * 作用： 内部包含很多 控制器（controller），比如： Deployment Controller：保证副本数量正确 Node Controller：监控节点状态。 Endpoint Controller：维护 Service → Pod 的映射。 核心任务是：对比实际状态和期望状态，不断修正。 * 像是一个 巡检员，不停检查「理想状态」和「现实情况」是不是一致，如果发现差错，就赶紧修正。 kubelet （节点代理） 作用： 跑在每个 Node 上的 代理。 负责和 kube-apiserver 交互，接收“要运行哪些 Pod”。 调用底层 容器运行时（containerd、CRI-O、Docker） 来真正启动容器。 还会 汇报 Pod 和 Node 的运行状态。 * 像是 工地上的施工队长，接到上级（apiserver）的命令，就去调度工人（containerd）建房子（Pod）。 etcd 作用： 分布式键值存储，保存集群的所有状态（Pod、Service、配置等） * 像是 工地上的施工队长，接到上级（apiserver）的命令，就去调度工人（containerd）建房子（Pod） 容器运行时（Container Runtime，如 containerd、CRI-O、DockerShim） 作用： kubelet 本身不会直接运行容器，它要依赖运行时。 真正负责创建和运行容器的底层引擎。 常见的有 containerd（最主流，K8s 默认推荐） CRI-O（轻量化，专门为 K8s 服务） Docker（以前常用，但现在 K8s 不直接依赖它了，而是通过 containerd） * 比喻：工人，真正搬砖盖房子（运行容器）。 3.</description>
    </item>
    
    <item>
      <title>Kubernetes学习指北之Kubernetes kubectl</title>
      <link>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8Bkubernetes-kubectl/</link>
      <pubDate>Thu, 01 May 2025 11:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8Bkubernetes-kubectl/</guid>
      <description>Kubernetes学习指北之Kubernetes kubectl 一、 kubectl 介绍 kubectl 是 Kubernetes 官方提供的命令行工具，用于与 Kubernetes 集群交互。
它可以管理资源对象（Pods、Deployments、Services 等）、调试问题、查看日志、扩缩容、发布更新等。
本质上，它通过 Kubernetes API 与集群通信。
组件关系示意：
kubectl &amp;lt;---&amp;gt; kube-apiserver &amp;lt;---&amp;gt; etcd / kubelet / controller-manager / scheduler 二、安装与配置 1. 安装（Linux）： curl -LO &amp;#34;https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl&amp;#34; chmod +x kubectl sudo mv kubectl /usr/local/bin/ kubectl version --client 2. 配置 kubeconfig 默认路径：~/.kube/config 查看当前配置： kubectl config view kubectl config current-context 切换 namespace： kubectl config set-context --current --namespace=demo 三、基础命令 1. 查看集群信息 kubectl cluster-info # 控制面信息 kubectl version # 客户端 &amp;amp; 服务端版本 kubectl api-resources # 列出可用资源 kubectl get namespaces # 查看命名空间 2.</description>
    </item>
    
    <item>
      <title>Kubernetes学习指北之Kubernetes YAML</title>
      <link>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8Bkubernetes-yaml/</link>
      <pubDate>Thu, 01 May 2025 11:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8Bkubernetes-yaml/</guid>
      <description>Kubernetes学习指北之Kubernetes YAML 一、 Kubernetes YAML 的基本结构 Kubernetes 资源对象通常是 YAML 文件。每个 YAML 对象至少包含三个字段：
apiVersion: v1 # API 版本，不同资源使用的版本不同 kind: Pod # 资源类型，如 Pod、Deployment、Service、Secret、ConfigMap metadata: # 元数据 name: my-pod namespace: default spec: # 具体配置 containers: - name: nginx image: nginx:1.25 二、常用字段详解 1. apiVersion 指定资源的 API 版本。 常见值： v1：Pod、Service、ConfigMap、Secret apps/v1：Deployment、StatefulSet、DaemonSet batch/v1：Job、CronJob 2. kind 资源类型 常见类型： Pod：最小的调度单位 Deployment：Pod 的管理控制器，可以做副本管理和滚动升级 Service：服务发现与负载均衡 ConfigMap / Secret：配置或敏感信息管理 Namespace：隔离资源的逻辑空间 3. metadata 资源的名字、标签、注解等。 常见字段： metadata: name: my-app namespace: default labels: app: my-app annotations: description: &amp;#34;Demo app&amp;#34; 4.</description>
    </item>
    
    <item>
      <title>Kubernetes学习指北之单节点集群（Master）</title>
      <link>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8B%E5%8D%95%E8%8A%82%E7%82%B9%E9%9B%86%E7%BE%A4master/</link>
      <pubDate>Thu, 01 May 2025 11:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8B%E5%8D%95%E8%8A%82%E7%82%B9%E9%9B%86%E7%BE%A4master/</guid>
      <description>Kubernetes学习指北之单节点集群（Master） 一、 单节点集群（Single Node Cluster）说明 学习和开发利器，操作简单
特点 Master 节点和 Worker 节点在同一台机器上 kube-apiserver、kube-scheduler、kube-controller-manager、kubelet 都在同一台机器 Pod 也在同一台机器上运行 资源有限：所有容器共享同一台机器的 CPU、内存和存储 高可用性低：Master 节点宕机，整个集群不可用 网络简单：只需一个节点，Pod 网络配置相对简单 适用场景 学习和测试 Kubernetes 核心概念 开发环境部署微服务 练习 kubectl 命令、Deployment、Service 等 优点 配置简单，一条命令就能搭建
资源占用低，不需要多台虚拟机
部署快速，便于练手
缺点 不适合生产环境
没有高可用性
无法模拟真实多节点调度
二、 准备环境和工具 这里我使用的CentOS7 做一些初始化 # 切换 root sudo -i # 关闭防火墙（实验环境） systemctl stop firewalld systemctl disable firewalld # 关闭 selinux setenforce 0 sed -i &amp;#39;s/^SELINUX=enforcing$/SELINUX=disabled/&amp;#39; /etc/selinux/config # 关闭 swap swapoff -a sed -i &amp;#39;/swap/d&amp;#39; /etc/fstab # 调整内核参数（K8s 网络需要） cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sysctl.</description>
    </item>
    
    <item>
      <title>Kubernetes学习指北之多节点集群（Multi Node Cluster）</title>
      <link>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8B%E5%A4%9A%E8%8A%82%E7%82%B9%E9%9B%86%E7%BE%A4multi-node-cluster/</link>
      <pubDate>Thu, 01 May 2025 11:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/devops/kubernetes%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%8C%97%E4%B9%8B%E5%A4%9A%E8%8A%82%E7%82%B9%E9%9B%86%E7%BE%A4multi-node-cluster/</guid>
      <description>Kubernetes学习指北之多节点集群（Multi Node Cluster） 一、 多节点集群（Multi Node Cluster）说明 真实生产环境的缩影，可以模拟调度、高可用、跨节点通信
特点 Master 节点负责管理集群
多个 Worker 节点运行实际应用 Pod
Master 负责调度、管理和监控
高可用性可扩展
可以增加 Worker 节点提升容量
Master 可做 HA（高可用）部署
真实调度场景
Kubernetes 会根据资源和策略，将 Pod 调度到不同节点 网络复杂
Pod 网络跨节点，需要 CNI 插件（Flannel、Calico 等）支持 适用场景 生产环境部署微服务
测试调度策略、Pod 分布、Service 负载均衡
实战演练集群管理和高可用
优点 模拟真实生产环境
可以横向扩展容器数量
Master 故障可配置高可用
缺点 配置复杂，需要多台虚拟机或服务器
网络和存储管理比单节点复杂
资源占用高
二、 准备环境和工具 这里使用centos7环境 说明
sudo -i 建议用root账号操作
每台节点都需要执行的操作，包括 master 和 worker：系统初始化、安装和配置容器运行时（containerd）、镜像源替换等操作
这里不再赘述，参照另一篇：Kubernetes学习指北之单节点集群
三、节点准备 在每台节点上安装：
# 安装 kubeadm、kubelet、kubectl yum install -y kubelet kubeadm kubectl # 启动 kubelet systemctl enable --now kubelet # 关闭 swap（K8s 要求） swapoff -a sed -i &amp;#39;/swap/d&amp;#39; /etc/fstab # 配置 sysctl cat &amp;lt;&amp;lt;EOF | sudo tee /etc/sysctl.</description>
    </item>
    
    <item>
      <title>VirtualBox&#43;Vagrant使用</title>
      <link>https://blog.leanku.com/post/devops/virtualbox&#43;vagrant%E4%BD%BF%E7%94%A8/</link>
      <pubDate>Tue, 01 Aug 2023 11:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/devops/virtualbox&#43;vagrant%E4%BD%BF%E7%94%A8/</guid>
      <description>VirtualBox+Vagrant使用 一、 介绍 1. VirtualBox简介 VirtualBox是一个开源的 虚拟机管理软件，由 Oracle 开发。它的核心功能是允许你在一台物理机上运行多个虚拟机，每个虚拟机都可以装不同的操作系统。
特点： 跨平台：支持 Windows、Linux、macOS 主机上安装。
支持多种客操作系统：常见的 Linux 发行版（CentOS、Ubuntu）、Windows Server、BSD 等。
虚拟化功能：
配置虚拟 CPU、内存、磁盘、网卡等。
支持桥接网络、NAT、仅主机网络等多种网络模式。
GUI + CLI 管理：既可以用图形界面管理虚拟机，也可以用命令行 VBoxManage 控制。
适合个人和开发使用：开源免费，功能较全。
2. Vagrant简介 Vagrant 是一个虚拟机 自动化管理工具，它本身不提供虚拟化功能，而是调用 VirtualBox、VMware、Hyper-V、Docker 等“虚拟化提供者”（provider）来创建和管理虚拟机。
特点： 开发环境自动化：
通过 Vagrantfile 描述一台（或多台）虚拟机的配置，比如操作系统镜像、CPU/内存、网络、共享目录等。
跨平台一致性：
不同开发者只要用相同的 Vagrantfile，就能快速得到一模一样的开发环境，避免“在我机器上没问题”。
支持多种 Provider：
默认支持 VirtualBox，也可以配合 VMware、Hyper-V、Libvirt、Docker。
Provisioning（自动化配置）：
可以在虚拟机启动时自动执行脚本（Shell、Ansible、Puppet、Chef）来安装软件和配置环境。
命令行简单：
vagrant init → 生成配置文件
vagrant up → 启动虚拟机
vagrant ssh → 进入虚拟机
vagrant halt → 关闭虚拟机
vagrant destroy → 删除虚拟机</description>
    </item>
    
  </channel>
</rss>
