标签 CSI 下的文章

RustFS 作为新一代的分布式对象存储系统,提供了 Helm Chart 以便 Kubernetes 集群上安装 RustFS 实例。而 DirectPV 是一个符合 CSI 标准的 Kubernetes 存储项目,由 Minio 发布且开源。本文使用 DirectPV 为 Kubernetes 上的 RustFS 实例提供后端存储服务,实现两个对象存储服务的“结合”。

前提

  • 运行良好的 Kubernetes 集群。

    本文使用 K3S 作为测试环境,根据 K3S 安装指南完成安装:

    # 安装 K3S
    curl -sfL https://get.k3s.io | sh -
    
    # 安装确认
    kubectl get nodes
    NAME             STATUS   ROLES           AGE   VERSION
    vm-0-17-ubuntu   Ready    control-plane   63m   v1.34.3+k3s1
  • 一块空磁盘

    本文在安装 K3S 的服务器上(OS 为 Ubuntu 24.04)挂载了一块容量为 20GB 的新磁盘:

    df -h
    vdb    253:16   0   20G  0 disk /root/data/disk
    
    mount | grep vdb
    /dev/vdb on /root/data/disk type ext4 (rw,relatime)

安装 DirectPV

可以直接根据 minio/directpv 文档进行 DirectPV 的安装。这个过程中会使用到 krew plugin,根据不同的 OS 执行安装命令即可。

在 Ubuntu 上执行如下命令:

(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)

安装完毕,将 PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH" 写到 ~/.bashrc 或 ~/.zshrc 即可。

开始安装 DirectPV。

  • 安装 directpv krew 插件
kubectl krew install directpv
  • 在 Kubernetes 集群中安装 DirectPV
kubectl directpv install
Installing on unsupported Kubernetes v1.34

 ███████████████████████████████████████████████████████████████████████████ 100%

┌──────────────────────────────────────┬──────────────────────────┐
│ NAME                                 │ KIND                     │
├──────────────────────────────────────┼──────────────────────────┤
│ directpv                             │ Namespace                │
│ directpv-min-io                      │ ServiceAccount           │
│ directpv-min-io                      │ ClusterRole              │
│ directpv-min-io                      │ ClusterRoleBinding       │
│ directpv-min-io                      │ Role                     │
│ directpv-min-io                      │ RoleBinding              │
│ directpvdrives.directpv.min.io       │ CustomResourceDefinition │
│ directpvvolumes.directpv.min.io      │ CustomResourceDefinition │
│ directpvnodes.directpv.min.io        │ CustomResourceDefinition │
│ directpvinitrequests.directpv.min.io │ CustomResourceDefinition │
│ directpv-min-io                      │ CSIDriver                │
│ directpv-min-io                      │ StorageClass             │
│ node-server                          │ Daemonset                │
│ controller                           │ Deployment               │
└──────────────────────────────────────┴──────────────────────────┘

DirectPV installed successfully
  • 安装确认并获取安装信息

kubectl -n directpv get pods
NAME                          READY   STATUS    RESTARTS   AGE
controller-54d56fb9f8-92cz8   3/3     Running   0          90m
controller-54d56fb9f8-kfltl   3/3     Running   0          90m
controller-54d56fb9f8-ncxcn   3/3     Running   0          90m
node-server-vgpn2             4/4     Running   0          90m

kubectl directpv info
┌──────────────────┬──────────┬───────────┬─────────┬────────┐
│ NODE             │ CAPACITY │ ALLOCATED │ VOLUMES │ DRIVES │
├──────────────────┼──────────┼───────────┼─────────┼────────┤
│ • vm-0-17-ubuntu │ -        │ -         │ -       │ -      │
└──────────────────┴──────────┴───────────┴─────────┴────────┘

0 B/0 B used, 0 volumes, 0 drives
  • 添加磁盘(驱动)

首先检测磁盘信息并将其信息写到 drives.yaml 文件中:

kubectl directpv discover

 Discovered node 'vm-0-17-ubuntu' ✔

┌─────────────────────┬────────────────┬───────┬────────┬────────────┬──────┬───────────┬─────────────┐
│ ID                  │ NODE           │ DRIVE │ SIZE   │ FILESYSTEM │ MAKE │ AVAILABLE │ DESCRIPTION │
├─────────────────────┼────────────────┼───────┼────────┼────────────┼──────┼───────────┼─────────────┤
│ 253:16$PXmUgO0FF... │ vm-0-17-ubuntu │ vdb   │ 20 GiB │ ext4       │ -    │ YES       │ -           │
└─────────────────────┴────────────────┴───────┴────────┴────────────┴──────┴───────────┴─────────────┘

Generated 'drives.yaml' successfully.

drives.yaml 文件内容如下:

version: v1
nodes:
    - name: vm-0-17-ubuntu
      drives:
        - id: 253:16$PXmUgO0FF7sKtsaVihMadap1hCZil9Rksbz2SdQkMfA=
          name: vdb
          size: 21474836480
          make: ""
          fs: ext4
          select: "yes"

接着使用 drives.yaml 文件进行 DirectPV 初始化:

kubectl directpv init drives.yaml --dangerous

 ███████████████████████████████████████████████████████████████████████████ 100%

 Processed initialization request '3a70561d-3de0-4756-b256-159fc98593d1' for node 'vm-0-17-ubuntu' ✔

┌──────────────────────────────────────┬────────────────┬───────┬─────────┐
│ REQUEST_ID                           │ NODE           │ DRIVE │ MESSAGE │
├──────────────────────────────────────┼────────────────┼───────┼─────────┤
│ 3a70561d-3de0-4756-b256-159fc98593d1 │ vm-0-17-ubuntu │ vdb   │ Success │
└──────────────────────────────────────┴────────────────┴───────┴─────────┘

恭喜你,走到这一步,你已经成功安装了 DirectPV(之前的每一步出错都会导致失败,请认真查看命令以及输出结果),使用如下命令确认:

kubectl get sc
NAME                   PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
directpv-min-io        directpv-min-io         Delete          WaitForFirstConsumer   true                   90m
local-path (default)   rancher.io/local-path   Delete          WaitForFirstConsumer   false                  115m

可以看到,名为 directpv-min-io 的 StorageClass 已经存在。接下来就使用这个 SC 进行 RustFS 的安装。

在 K3S 上安装 RustFS

RustFS 提供 Helm Chart来在 Kubernetes 上安装 RustFS。目前支持两种模式:单机单盘(SNSD)和多机多盘(MNMD)

可以将 GitHub Repo 代码 clone 到本地,然后进入到 helm/rustfs 目录下进行安装,也可以直接使用 RustFS 的远端仓库(RustFS 已经将 Helm Chart 发布到了 Artifact Hub),比如:

# 添加仓库
helm repo add rustfs https://charts.rustfs.com

# 安装 RustFS
helm install rustfs -n rustfs rustfs/rustfs --create-namespace  --version 0.0.80

由于 RustFS Helm Chart 默认使用 local-path StorageClass,而且默认的 PVC 大小为 256Mi,因此需要根据自身情况设置合适的大小,最简单的方式就是在本地创建一个 values.yml 文件,然后修改如下内容:

storageclass:
  name: directpv-min-io
  dataStorageSize: 256Mi
  logStorageSize: 256Mi
当然,也可以用 --set 来实现参数的覆盖,但是由于 RustFS 多种安装模式、多种 Ingress Controller,以及 pod 资源的自定义等,--set 就需要指定多个参数,会显得繁琐。将需要变更的信息写到本地 values.yml,然后用 -f 指定,可能更加便捷的自定义安装 RustFS。

本文采用本地安装模式(也就是 Helm Chart 代码在本地),执行如下命令进行安装:

helm install rustfs ./ -n rustfs --create-namespace -f values.yaml 

查看 PVC

kubectl -n rustfs get pvc 
NAME                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS   AGE
data-rustfs-0-rustfs-0   Bound    pvc-8e9b520f-3a96-4a64-afb3-70f13d3edcd3   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-0-rustfs-1   Bound    pvc-8bef3219-469c-452c-969a-89c8470d3945   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-0-rustfs-2   Bound    pvc-aee2c489-6f4c-47dc-b464-b09fc5ea112c   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-0-rustfs-3   Bound    pvc-b59ec27c-9fb0-4ad1-a204-9858c1d405da   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-1-rustfs-0   Bound    pvc-8d840468-f6be-4154-ae42-73f68f6e36e3   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-1-rustfs-1   Bound    pvc-c5adc67b-f6ea-470a-861d-9b48b610bbee   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-1-rustfs-2   Bound    pvc-8d7b98e0-ff0b-4d5f-869c-fe7c1b71ffc2   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-1-rustfs-3   Bound    pvc-9268589f-7ca7-4480-a724-36bfcdc29cff   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-2-rustfs-0   Bound    pvc-f31689f3-1aa8-42f7-8fcb-f309a6b390b5   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-2-rustfs-1   Bound    pvc-28fecb41-9dd7-436d-9317-e8a3a588a87a   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-2-rustfs-2   Bound    pvc-77d4c8e6-918a-4b28-a2bc-408195f807d3   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-2-rustfs-3   Bound    pvc-6deab996-a8a3-4e02-ae6c-845f863526c0   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-3-rustfs-0   Bound    pvc-46c7cc1a-1f25-4c3e-8168-3c288ee552d5   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-3-rustfs-1   Bound    pvc-a0403935-2471-48d8-beac-fcf28fd85a7a   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-3-rustfs-2   Bound    pvc-d0c88736-ee1a-47e5-a335-53d086e87913   256Mi      RWO            directpv-min-io   <unset>                 61s
data-rustfs-3-rustfs-3   Bound    pvc-9fbac8a8-cb59-430b-abc1-4ad5105ed4ad   256Mi      RWO            directpv-min-io   <unset>                 61s
logs-rustfs-0            Bound    pvc-bc673cea-6cf0-479f-a323-5c2102479796   256Mi      RWO            directpv-min-io   <unset>                 61s
logs-rustfs-1            Bound    pvc-c823f3a4-2e07-4331-bdd3-f0c6172bb15b   256Mi      RWO            directpv-min-io   <unset>                 61s
logs-rustfs-2            Bound    pvc-059eeaf9-b209-41ec-87f6-da87f0105c41   256Mi      RWO            directpv-min-io   <unset>                 61s
logs-rustfs-3            Bound    pvc-348e4bfb-d272-4deb-ae8e-fc6ea70d4d74   256Mi      RWO            directpv-min-io   <unset>                 61s

可以看到生成了分布式安装所需的所有 PVC,状态是 Bound。接着查看 pods 状态:

kubectl -n rustfs get pods
NAME       READY   STATUS    RESTARTS   AGE
rustfs-0   1/1     Running   0          69s
rustfs-1   1/1     Running   0          69s
rustfs-2   1/1     Running   0          69s
rustfs-3   1/1     Running   0          69s

可以看到 pod 运行正常。接着就可以使用 ingress 来访问该 RustFS 实例了。

注意事项

安装 DirectPV 的过程中,会对该磁盘上的数据进行格式化,而且该磁盘不能被其他程序占用,否则会出现如下错误:


┌──────────────────────────────────────┬────────────────┬───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ REQUEST_ID                           │ NODE           │ DRIVE │ MESSAGE                                                                                                                                                                                                                          │
├──────────────────────────────────────┼────────────────┼───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ e9adb7af-8061-46b1-8112-d86e5fb653cd │ vm-0-17-ubuntu │ vdb   │ Failed; unable to format device /dev/vdb; unable to execute command [mkfs.xfs -i maxpct=50 -m uuid=2be5b9cc-beeb-4d54-bbcb-a1cbc5f0ef97 -f -L DIRECTPV /dev/vdb]; output=mkfs.xfs: cannot open /dev/vdb: Device or resource busy │
│                                      │                │       │ ; error=exit status 1                                                                                                                                                                                                            │
└──────────────────────────────────────┴────────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

可以通过将此磁盘 umount 来解决。

"夏哉ke":youkeit.xyz/15702/后
《不只是容器编排:基于JK-Kubernetes源码的云原生存储与网络深度整合》

在当今云原生技术迅猛发展的背景下,Kubernetes 已然成为容器编排的事实标准。然而,若将 Kubernetes 仅仅视为“容器调度器”,则大大低估了其作为云原生操作系统内核的深远意义。从 JK-Kubernetes 源码的视角深入观察,我们会发现:它真正构建的,是一个面向未来分布式系统的统一控制平面——尤其是在存储与网络这两大关键领域,Kubernetes 通过高度抽象与插件化机制,实现了前所未有的整合能力,正悄然重塑着现代应用基础设施的形态。

一、超越编排:Kubernetes 的“控制平面”革命

Kubernetes 的核心魅力,不在于它能启动多少个 Pod,而在于它定义了一套声明式、自愈、可扩展的控制平面模型。这种模型不仅适用于工作负载调度,更可延伸至存储卷、网络策略、服务拓扑等系统级资源。JK-Kubernetes 源码中清晰体现了这一设计理念:通过 CRD(自定义资源定义)与控制器模式,Kubernetes 将存储与网络从“外部依赖”转变为“一等公民”(first-class citizen),纳入其统一的管理语义中。

这意味着,无论是持久化卷的创建、挂载,还是跨节点网络策略的生效,都不再需要运维人员登录底层存储或网络设备进行手动配置,而是通过一个声明式的 YAML 文件提交,由 Kubernetes 控制器自动协调底层实现。这种“以应用为中心”的资源管理范式,极大降低了系统复杂性,提升了交付效率与一致性。

二、存储的云原生重构:从静态挂载到动态供给

传统 IT 架构中,存储往往是孤立、静态且高度耦合于硬件的。而在 Kubernetes 中,存储被抽象为 PersistentVolume(PV)PersistentVolumeClaim(PVC),实现了“申请即获得”的服务化体验。JK-Kubernetes 源码中,CSI(Container Storage Interface)的集成机制是这一变革的核心。

CSI 是一个标准化的存储插件接口,允许各类存储系统(如 Ceph、MinIO、AWS EBS、阿里云盘等)以独立组件的形式接入 Kubernetes。控制器通过监听 PVC 的创建事件,自动调用对应 CSI 驱动,完成卷的供给、格式化、挂载与绑定。整个过程对应用透明,且具备跨云可移植性。

更进一步,Kubernetes 还支持存储类(StorageClass) 的动态供给机制。管理员可定义不同性能等级的存储策略(如“高IO型”、“冷数据归档型”),开发者只需声明需求,系统即可自动匹配最合适的后端资源。这种“按需分配、自动调度”的能力,正是云原生存储区别于传统存储的根本所在。

此外,CSI 的演进还推动了有状态应用的云原生化。过去难以容器化的数据库、消息队列等组件,如今可在 Kubernetes 上实现自动扩缩容、故障迁移与备份恢复,真正享受云原生的弹性红利。

三、网络的统一治理:从连通性到策略化控制

如果说存储的挑战在于“持久化”,那么网络的挑战则在于“动态性”与“安全性”。在微服务架构下,服务数量激增、拓扑频繁变更,传统基于 IP 和端口的静态防火墙规则早已难以为继。Kubernetes 通过 CNI(Container Network Interface)与网络策略(NetworkPolicy),构建了一套面向服务的智能网络治理体系。

在 JK-Kubernetes 源码中,CNI 的设计体现了“插件化即生态”的哲学。无论底层是 Flannel 的覆盖网络、Calico 的 BGP 路由,还是 Cilium 的 eBPF 高性能数据面,Kubernetes 均通过统一的 CNI 接口进行集成。这意味着企业可以在不修改应用逻辑的前提下,灵活切换网络方案,适配不同性能与安全需求。

而网络策略的引入,则将安全控制从“边界防御”推进到“零信任微隔离”。通过定义 Pod 级别的入站与出站规则,企业可实现服务间的最小权限访问控制。例如,数据库服务仅允许来自特定应用命名空间的连接,有效遏制横向移动攻击。尽管默认策略需配合支持策略的 CNI 插件(如 Calico、Cilium)才能生效,但 Kubernetes 提供的声明式语法,为高级安全能力奠定了标准化基础。

更令人期待的是,随着 Service MeshGateway API 的发展,Kubernetes 正在将 L7 层流量(如 HTTP 路由、熔断、鉴权)也纳入其网络治理范畴。未来,Kubernetes 有望成为集 L3-L7 于一体的全栈网络控制平面,真正实现“服务即网络”的愿景。

四、整合的价值:构建统一的云原生基座

Kubernetes 对存储与网络的深度整合,其意义远超技术本身。它标志着企业 IT 正从“多系统拼接”迈向“统一平台治理”的新时代。过去,存储、网络、计算各自为政,运维需跨多个控制台操作,容易出错且难以审计。而如今,在 Kubernetes 的统一 API 模型下,所有资源均可通过 GitOps 流程进行版本化、自动化管理,实现真正的“基础设施即代码”(IaC)。

这种整合也带来了显著的经济与组织效益:

  • 降低运维复杂度:减少跨团队协作成本,提升交付速度;
  • 提升资源利用率:通过统一调度,避免存储与计算资源的孤岛浪费;
  • 增强安全合规性:策略集中管理,审计轨迹完整可追溯;
  • 加速云原生转型:为微服务、Serverless、AI 工作负载提供一致的运行时环境。

五、结语:云原生的“操作系统”正在成型

JK-Kubernetes 源码不仅是一段程序,更是一种技术哲学的体现——通过声明式 API 与控制器模式,将复杂系统分解为可组合、可扩展、自愈的组件单元。在这一架构下,存储与网络不再是“附加功能”,而是与计算同等重要的核心支柱。

当我们将目光从“容器编排”移开,转向其背后对存储与网络的深度整合时,会发现 Kubernetes 正在构建一个属于云原生时代的“操作系统”:它不直接提供硬件,却定义了如何使用硬件;它不实现所有功能,却提供了统一的治理语言。未来,随着 CSI、CNI、Gateway API 等标准的持续演进,Kubernetes 将进一步巩固其作为云原生基础设施中枢的地位,成为企业数字化转型不可或缺的“数字底座”。

理解并掌握这一整合逻辑,不仅是技术进阶的路径,更是把握未来云计算格局的关键所在。在。

"夏哉ke":youkeit.xyz/15702/后
《不只是容器编排:基于JK-Kubernetes源码的云原生存储与网络深度整合》

在当今云原生技术迅猛发展的背景下,Kubernetes 已然成为容器编排的事实标准。然而,若将 Kubernetes 仅仅视为“容器调度器”,则大大低估了其作为云原生操作系统内核的深远意义。从 JK-Kubernetes 源码的视角深入观察,我们会发现:它真正构建的,是一个面向未来分布式系统的统一控制平面——尤其是在存储与网络这两大关键领域,Kubernetes 通过高度抽象与插件化机制,实现了前所未有的整合能力,正悄然重塑着现代应用基础设施的形态。

一、超越编排:Kubernetes 的“控制平面”革命

Kubernetes 的核心魅力,不在于它能启动多少个 Pod,而在于它定义了一套声明式、自愈、可扩展的控制平面模型。这种模型不仅适用于工作负载调度,更可延伸至存储卷、网络策略、服务拓扑等系统级资源。JK-Kubernetes 源码中清晰体现了这一设计理念:通过 CRD(自定义资源定义)与控制器模式,Kubernetes 将存储与网络从“外部依赖”转变为“一等公民”(first-class citizen),纳入其统一的管理语义中。

这意味着,无论是持久化卷的创建、挂载,还是跨节点网络策略的生效,都不再需要运维人员登录底层存储或网络设备进行手动配置,而是通过一个声明式的 YAML 文件提交,由 Kubernetes 控制器自动协调底层实现。这种“以应用为中心”的资源管理范式,极大降低了系统复杂性,提升了交付效率与一致性。

二、存储的云原生重构:从静态挂载到动态供给

传统 IT 架构中,存储往往是孤立、静态且高度耦合于硬件的。而在 Kubernetes 中,存储被抽象为 PersistentVolume(PV)PersistentVolumeClaim(PVC),实现了“申请即获得”的服务化体验。JK-Kubernetes 源码中,CSI(Container Storage Interface)的集成机制是这一变革的核心。

CSI 是一个标准化的存储插件接口,允许各类存储系统(如 Ceph、MinIO、AWS EBS、阿里云盘等)以独立组件的形式接入 Kubernetes。控制器通过监听 PVC 的创建事件,自动调用对应 CSI 驱动,完成卷的供给、格式化、挂载与绑定。整个过程对应用透明,且具备跨云可移植性。

更进一步,Kubernetes 还支持存储类(StorageClass) 的动态供给机制。管理员可定义不同性能等级的存储策略(如“高IO型”、“冷数据归档型”),开发者只需声明需求,系统即可自动匹配最合适的后端资源。这种“按需分配、自动调度”的能力,正是云原生存储区别于传统存储的根本所在。

此外,CSI 的演进还推动了有状态应用的云原生化。过去难以容器化的数据库、消息队列等组件,如今可在 Kubernetes 上实现自动扩缩容、故障迁移与备份恢复,真正享受云原生的弹性红利。

三、网络的统一治理:从连通性到策略化控制

如果说存储的挑战在于“持久化”,那么网络的挑战则在于“动态性”与“安全性”。在微服务架构下,服务数量激增、拓扑频繁变更,传统基于 IP 和端口的静态防火墙规则早已难以为继。Kubernetes 通过 CNI(Container Network Interface)与网络策略(NetworkPolicy),构建了一套面向服务的智能网络治理体系。

在 JK-Kubernetes 源码中,CNI 的设计体现了“插件化即生态”的哲学。无论底层是 Flannel 的覆盖网络、Calico 的 BGP 路由,还是 Cilium 的 eBPF 高性能数据面,Kubernetes 均通过统一的 CNI 接口进行集成。这意味着企业可以在不修改应用逻辑的前提下,灵活切换网络方案,适配不同性能与安全需求。

而网络策略的引入,则将安全控制从“边界防御”推进到“零信任微隔离”。通过定义 Pod 级别的入站与出站规则,企业可实现服务间的最小权限访问控制。例如,数据库服务仅允许来自特定应用命名空间的连接,有效遏制横向移动攻击。尽管默认策略需配合支持策略的 CNI 插件(如 Calico、Cilium)才能生效,但 Kubernetes 提供的声明式语法,为高级安全能力奠定了标准化基础。

更令人期待的是,随着 Service MeshGateway API 的发展,Kubernetes 正在将 L7 层流量(如 HTTP 路由、熔断、鉴权)也纳入其网络治理范畴。未来,Kubernetes 有望成为集 L3-L7 于一体的全栈网络控制平面,真正实现“服务即网络”的愿景。

四、整合的价值:构建统一的云原生基座

Kubernetes 对存储与网络的深度整合,其意义远超技术本身。它标志着企业 IT 正从“多系统拼接”迈向“统一平台治理”的新时代。过去,存储、网络、计算各自为政,运维需跨多个控制台操作,容易出错且难以审计。而如今,在 Kubernetes 的统一 API 模型下,所有资源均可通过 GitOps 流程进行版本化、自动化管理,实现真正的“基础设施即代码”(IaC)。

这种整合也带来了显著的经济与组织效益:

  • 降低运维复杂度:减少跨团队协作成本,提升交付速度;
  • 提升资源利用率:通过统一调度,避免存储与计算资源的孤岛浪费;
  • 增强安全合规性:策略集中管理,审计轨迹完整可追溯;
  • 加速云原生转型:为微服务、Serverless、AI 工作负载提供一致的运行时环境。

五、结语:云原生的“操作系统”正在成型

JK-Kubernetes 源码不仅是一段程序,更是一种技术哲学的体现——通过声明式 API 与控制器模式,将复杂系统分解为可组合、可扩展、自愈的组件单元。在这一架构下,存储与网络不再是“附加功能”,而是与计算同等重要的核心支柱。

当我们将目光从“容器编排”移开,转向其背后对存储与网络的深度整合时,会发现 Kubernetes 正在构建一个属于云原生时代的“操作系统”:它不直接提供硬件,却定义了如何使用硬件;它不实现所有功能,却提供了统一的治理语言。未来,随着 CSI、CNI、Gateway API 等标准的持续演进,Kubernetes 将进一步巩固其作为云原生基础设施中枢的地位,成为企业数字化转型不可或缺的“数字底座”。

理解并掌握这一整合逻辑,不仅是技术进阶的路径,更是把握未来云计算格局的关键所在。在。