别再乱装CNI了!K8s网络频繁抽风的元凶,大多数人没查对这个位置

云原生开放网络架构:白盒交换机与可编程数据面落地实践 在云原生基础设施快速演进的今天,传统网络设备的黑匣子模式已成为业务弹性的瓶颈。开放网络架构通过解耦数据面、控制面和管理面,将网络设备重塑为可编程、可自动化的通用计算单元。其核心组件包括白盒交换机、开源网络操作系统(如SONiC)以及基于Kubernetes的意图驱动控制器。借助gNMI、P4和eBPF等开放技术,网络配置可实现代码化声明式管理,并纳入CI/CD与GitOps流程,从而提升变更效率与可观测性。这种架构尤其适用于容器化集群的大规模组网、多租户隔离以及动态安全策略下发等场景。本文从云原生视角出发, 阅读详情

你有没有遇到过这种画面——

新 Pod 创建了,kubectl get pod 一看,Init:0/1 卡了十分钟死活不动。kubectl describe pod 甩出来一句 networkPlugin cni failed to set up pod network,再去 kubectl get nodes,好家伙,某个节点直接 NotReady 了。

然后你重启 kubelet、重启 containerd、删 Pod 重建……折腾两小时,发现根因是 /etc/cni/net.d/ 下躺着一个版本对不上的配置文件。

这事儿我踩过不止一次。所以今天把 CNI 的底裤彻底扒干净——它到底干什么、怎么工作、哪些命令真能救命、哪些坑能让你加班到凌晨三点。

速查急救包:5条命令先别慌

Pod 网络出问题的时候,别急着删集群。按这个顺序来:

# 1. 先看 CNI 配置文件是否存在、版本是否正确(80%的根因在这)
ls -la /etc/cni/net.d/ && cat /etc/cni/net.d/*.conf*

# 2. 确认插件二进制文件已安装
ls /opt/cni/bin/

# 3. 看 CNI Pod 是否正常运行
kubectl get pods -n kube-system | grep -E 'calico|cilium|flannel'

# 4. 看节点 NotReady 的具体原因
kubectl describe node <node-name> | grep -A 5 Conditions

# 5. 在节点上看 kubelet 日志中的 CNI 错误
journalctl -u kubelet -n 100 --no-pager | grep -i cni

📌 我先看配置文件再看日志,这个顺序能省你半小时。kubelet 日志里的报错往往是配置文件问题的结果,不是原因。

CNI到底是个啥?别被官方定义绕晕了

CNI,全称 Container Network Interface,本质是一个规范和一组插件。它定义了容器运行时(containerd、CRI-O)怎么调用网络插件来给 Pod 配置网络。

Kubernetes 自己不实现 Pod 网络。它把这件事完全委托给了 CNI 插件。你的集群里没装 CNI 插件,节点就是 NotReady,Pod 连 IP 都拿不到。

从 Kubernetes 1.24 开始,CNI 的管理彻底从 kubelet 剥离了。容器运行时(containerd/CRI-O)才是真正调用 CNI 插件的那一方。

调用链:谁在什么时候调 CNI?

整个流程大概是这样:

API Server → Kubelet → CRI(容器运行时)→ CNI 插件

注意:kubelet 调的是 CRI 接口,不是直接调 CNI 二进制。当你创建一个 Pod 时,kubelet 通过 CRI 告诉 containerd“给我建个沙箱”,containerd 的 CRI 插件再调用 /opt/cni/bin/ 下的 CNI 二进制文件,传入环境变量和 /etc/cni/net.d/ 里的配置文件,插件完成网络配置后返回结果。

💡 关键点:CNI 配置目录默认是 /etc/cni/net.d/,插件二进制默认在 /opt/cni/bin/。系统会对目录下的合法配置文件名进行字典排序,取第一个合法配置作为 default 网络平面的配置。而且每隔 5 秒会自动扫描配置目录并重新加载更新——这个 5 秒扫描间隔在 iSulad 的 CRI 实现中有明确记载,containerd 和 CRI-O 的具体行为可能存在差异,建议以你使用的运行时的官方文档为准。但无论如何,改完配置文件后通常几秒内就会生效,不用重启 kubelet 或 containerd。我以前不知道这个机制的时候,改完配置傻乎乎地重启 kubelet,现在想想真是白折腾。

Pod 跨节点通信:数据包到底经历了什么?

以最常见的 Flannel VXLAN 模式为例(其他插件的实现细节不同),当 Pod A(节点1)访问 Pod B(节点2)时,数据包在节点内部的路径是这样的:

  1. Pod A 内的 eth0 实际是 veth pair 的一端,另一端挂在节点的 cni0 网桥上
  2. IP 包通过 veth pair 到达 cni0 网桥
  3. 网桥根据路由表将包路由到本机的 flannel.1(VTEP 设备)
  4. VTEP 设备将原始 IP 包整个封装进 VXLAN 帧,外层是节点间 UDP 通信
  5. 物理网络传输到节点2 的 eth0
  6. 节点2 内核识别 VXLAN 头,拆包后交给本机 flannel.1 设备
  7. 根据路由表发往 cni0 网桥,最终通过 veth pair 到达 Pod B

整个过程对 Pod 完全透明,Pod 只知道对方的 Pod IP。

场景

数据包处理方式

性能开销

同节点 Pod 间

cni0 网桥本地转发

几乎为零

跨节点 Pod 间(Overlay)

VXLAN 封装/解封装

约 10%-20%

跨节点 Pod 间(BGP/Underlay)

路由表直接转发

接近原生

Pod 访问外部

SNAT 后走节点网络栈

轻微

理解了 CNI 的调用机制之后,下一个问题自然是——市面上这么多插件,到底该选哪个?

主流 CNI 插件怎么选?

2026 年了,生产环境基本就三个选项。别纠结,按需求对号入座。

Flannel:简单是真简单,功能也是真少

部署就一条命令 kubectl apply -f kube-flannel.yml,默认 VXLAN 模式,资源占用低,适合测试环境和小集群。

但注意——基础 Flannel 插件不支持 NetworkPolicy 的策略执行(Talos 从 v1.13 开始可通过配置让 Flannel 支持 NetworkPolicy,属于平台特定支持)。NetworkPolicy 对象在 Flannel 集群上能创建,但流量不会被实际阻断。如果你的业务涉及多租户隔离或者合规要求,Flannel 直接出局。通过 Canal(Calico + Flannel)组合方案可以解决:Calico 负责策略执行,Flannel 仅负责节点间网络通信。

Calico:企业级稳如老狗

默认 BGP 模式(Underlay),性能接近原生网络,NetworkPolicy 支持完善(L3/L4),大规模集群验证充分。当前最新稳定版为 v3.32.2(约 2026-08-30 发布,以官方 GitHub Release 页面为准),v3.31.7 仍在维护中。

我推荐大部分生产集群优先考虑 Calico——它在金融、医疗这些对网络策略要求严格的行业里跑了很多年,不是营销话术。

⚠️ 但 Calico 的 BGP 模式需要底层网络支持 BGP 协议。如果你的机房交换机没开 BGP,那就只能退回 IPIP 模式或者换插件。

Cilium:性能天花板,但别盲目上

基于 eBPF,性能最强,支持 L7 NetworkPolicy,内置 Hubble 可观测性。当前最新稳定版为 v1.20.1(2026-08-18 发布),v1.19.7 和 v1.18.13 也在维护中。注意 v1.17 已于 2026-07-29 EOL,不再接收安全更新。

但 Cilium 的学习曲线是真的陡。我见过团队照着文档装完就跑,结果默认 Pod CIDR 和宿主机网段冲突,整个节点的网络直接瘫了。

维度

Flannel

Calico

Cilium

部署难度

极低

中等

较高

NetworkPolicy

❌(Canal 方案中由 Calico 执行策略)

✅ L3/L4

✅ L3/L7

性能

一般

高

极高

适用规模

≤100节点

企业级

大规模/高性能

故障排查:别猜,按这个顺序来

网络问题的排查原则就一条:从底层往上查。操作系统 → 容器运行时 → kubelet → CNI → 工作负载。

场景一:节点 NotReady,报 “cni plugin not initialized”

这是最常见的报错。kubectl describe node 看到:

KubeletNotReady container runtime network not ready:
NetworkReady=false reason:NetworkPluginNotReady
message:Network plugin returns error: cni plugin not initialized

排查思路见速查急救包步骤1-2。如果这两步都正常,再查 CNI DaemonSet 是否在每个节点都有 Pod 在跑。还可以用 crictl info 查看容器运行时报告的 CNI 状态。

场景二:Pod 启动时报 “Incompatible CNI versions”

根据 Kubernetes 官方文档,containerd v1.6.0 到 v1.6.3 存在一个已知问题:当 CNI 插件没有升级,并且/或者 CNI 配置文件中没有声明 CNI 配置版本时,containerd 日志会出现以下错误:

incompatible CNI versions;
config is "1.0.0", plugin supports ["0.1.0" "0.2.0" "0.3.0" "0.3.1" "0.4.0"]

containerd 团队官方声明:“这些问题在 containerd v1.6.4 中得到了解决”。该版本包含了两项针对 CNI 和 SELinux 的修复。

注意触发条件:如果你用的是 containerd v1.6.0-1.6.3,但 CNI 配置文件中正确声明了 cniVersion,不一定会触发这个问题。所以排查时先确认配置文件中到底有没有版本声明,不要一上来就怪 containerd 版本。

解决方案:升级 containerd 到 v1.6.4+,同时确保 /etc/cni/net.d/ 下配置文件的 cniVersion 字段与插件实际支持的版本匹配。

场景三:Pod 能跑但删不掉,报 “Failed to destroy network for sandbox”

StopPodSandbox for "b" failed
error="failed to destroy network for sandbox ... invalid version \"\": the version is empty"

根因是 CNI 配置文件中缺少版本声明。Pod 能创建但销毁时 CNI 无法正确清理网络命名空间。

解决方案:在 CNI 配置文件中补上 "cniVersion" 字段。然后强制删除卡住的 Pod 重建。

场景四:Calico IPAM 地址池耗尽

现象是 Pod 一直 Pending,kubectl describe pod 看到 failed to allocate IP 相关事件。

在 Calico 节点上执行 calicoctl ipam check --show-problem-ips 看 IP 分配情况。--show-problem-ips 标志用于打印泄露或分配异常的 IP,不带这个标志只能看到一行摘要。这个命令从 calicoctl v3.18+ 开始可用,在 Calico v3.25+ 中趋于稳定。

⚠️ IPAM 输出格式可能因 calicoctl 版本而异,尤其在 Calico v3.32 引入 native v3 CRDs 之后,不同补丁版本的实际输出字段可能略有差异。注意 native v3 CRDs 在 v3.32 中为 tech preview 状态,生产环境建议先使用默认的 aggregated API server 模式。重点关注 leaked IPs、leaked handles 和 missing handles 这几类问题,但以你实际版本命令的输出为准。

如果泄露 IP 数量较多,可以用 calicoctl ipam check -o report.json 生成报告文件,再用 calicoctl ipam release --from-report report.json 批量释放泄露的 IP 和 handles。报告文件的 JSON 格式可能因 calicoctl 版本而异,建议先用 cat report.json | jq . 查看结构,确认字段后再写解析脚本。使用前建议查阅所用 Calico 版本的官方 calicoctl 参考文档,确认 --from-report 标志的可用性。

生产环境建议直接使用与 Calico 集群同版本的 calicoctl 二进制,如果版本不一致,需要加 --allow-version-mismatch 标志。如果是地址池真的不够了,需要调整 IPPool 的 CIDR 范围——具体操作可参考后续 CNI 安全切换章节的准备阶段。

CNI 插件安全切换:滚动节点替换实操指南

这是一个独立于故障排查的高危操作,弄不好整个集群网络全断。不能在同一节点上同时运行两个独立的 CNI 插件,除非使用受支持的 CNI chaining 模式。

滚动节点替换方案

Cilium 官方文档推荐通过双 Overlay 混合模式进行迁移,新旧 CNI 使用不同的 Pod CIDR 和封装端口,Linux 路由表负责分离流量。

具体步骤:

  1. 准备阶段:审计当前网络配置,备份集群状态,确认新 CNI 使用的 Pod CIDR 和封装端口与现有 CNI 不同
  2. 并行部署:新增一个节点池,装新 CNI,打上标签。在新节点上验证跨 CNI 的 Pod 连通性——这步最容易出问题,取决于 PodCIDR 分配、路由、封装和防火墙规则是否兼容
  3. 逐个迁移:kubectl cordon 旧节点,kubectl drain --ignore-daemonsets 把工作负载迁到新节点
  4. 清理:确认业务正常后,移除旧节点,清理旧 CNI 组件和 /etc/cni/net.d/ 下的残留配置

⚠️ 如果跨 CNI 连通性验证不通过,不要继续迁移。需要先解决 PodCIDR 分配和路由兼容性问题。如果 PodCIDR 无法调整,可能需要在新旧 CNI 之间建立显式的路由规则,或者使用 CNI chaining 模式过渡,再或者考虑在维护窗口内进行全集群切换。整个迁移周期可能长达数周,别想着一个晚上搞定。

⚠️ 迁移完成后,务必重新启用 NetworkPolicy 执行

Cilium 官方迁移文档明确说明:迁移期间 Cilium 的 NetworkPolicy 和 CiliumNetworkPolicy 执行将被禁用,否则来自非 Cilium Pod 的流量可能会被错误丢弃。

策略被禁用的条件是这组配置参数同时生效:EnablePolicy=never、DisableCiliumEndpointCRD=true、EnableK8sNetworkPolicy=false、EnableCiliumNetworkPolicy=false、EnableCiliumClusterwideNetworkPolicy=false、IdentityAllocationMode=crd。

重新启用时,Cilium 官方给出了两步流程,避免流量中断:

  • 如果集群中还没有 NetworkPolicy:先启用策略配置并重启 cilium-agent,再创建 NetworkPolicy
  • 如果集群中已经有 NetworkPolicy:先将 DisableCiliumEndpointCRD 设为 false 并重启 cilium-agent,再依次启用 EnablePolicy、EnableK8sNetworkPolicy、EnableCiliumNetworkPolicy 等相关开关。千万不要在改 DisableCiliumEndpointCRD 之前就动 EnablePolicy 或其他策略开关——因为 cilium-agent 的策略执行系统依赖 Cilium Endpoint CRD 来对远程节点上的 Pod 执行策略,如果策略和 CEP CRD 同时启用,cilium-agent 滚动更新期间远程节点的 CEP 可能还没创建好,导致跨节点流量被意外丢弃。

📌 Cilium 官方也提供了迁移模式的详细文档,通过 label 控制哪些节点使用 Cilium 作为主 CNI,可以更精细地控制迁移节奏。

验证方法:确认你的 CNI 真的工作了

配置完 CNI 后,别只看 Pod 是不是 Running。跑一遍完整验证:

# 1. 检查所有 CNI Pod 状态(期望全部 Running)
kubectl get pods -n kube-system -o wide

# 2. 节点状态(期望全部 Ready)
kubectl get nodes

# 3. 部署测试 Pod 验证跨节点通信
kubectl run test-a --image=busybox --restart=Never -- sleep 3600
kubectl run test-b --image=busybox --restart=Never -- sleep 3600

# 4. 获取两个 Pod 的 IP,从 A ping B
kubectl get pods -o wide | grep test-
kubectl exec test-a -- ping -c 3 <test-b-ip>

# 5. 如果是 Calico,检查节点路由
kubectl exec -n kube-system <calico-node-pod> -- calicoctl node status

⚠️ 如果步骤4超时但步骤3正常,大概率是跨节点路由没配好,优先检查底层网络是否允许 VXLAN(UDP 8472)或 BGP 流量通过。

彩蛋:两个能让你少加班的隐藏细节

💡 Cilium 默认 Pod CIDR 就是 10.0.0.0/8,会直接搞瘫宿主机网络

这不是“某个子段可能撞上”的问题,而是整个 10.0.0.0/8 都是冲突区域。Cilium 默认从 10.0.0.0/8 中给每个节点分配 /24 子网。如果你的节点网段在 10.0.0.0/8 里(很多企业内网就是这样),Cilium 分配的前几个 /24 会直接和宿主机网络冲突。一旦路由规则下发到宿主机,节点网络会完全中断——SSH 断连、API Server 失联,你只能从控制台救回来。

GitHub issue #42383 记录了这个问题,报告者使用的是 Cilium v1.18.3,节点网络在 10.0.0.0/22,Cilium 默认分配的前几个 /24 与宿主机网段碰撞。

⚠️ 别假设你用的 Cilium 版本一定不受影响。GitHub issue 中未明确验证 v1.20 是否修复了这个问题,安装前直接检查你当前版本文档中 clusterPoolIPv4PodCIDRList 的默认值——只要默认值是 10.0.0.0/8,而你的节点网段也在该范围内,就有冲突风险。

安装 Cilium 之前,一定先确认 Pod CIDR 和节点网段不重叠,然后在安装时显式指定 clusterPoolIPv4PodCIDRList,例如 --set ipam.operator.clusterPoolIPv4PodCIDRList="{10.244.0.0/16}"。

⚠️ 配置文件扫描间隔是 5 秒,但“字典序陷阱”仍然存在

CNI 每隔 5 秒扫描 /etc/cni/net.d/ 目录,按字典序取第一个合法配置。如果有 05-cilium.conflist 和 10-flannel.conflist 同时存在,Cilium 优先。但如果你新装了 Cilium 后 Flannel 的配置文件没清理干净,手动改了 Cilium 配置以为会生效,实际上可能还在加载别的。执行 ls -la /etc/cni/net.d/ 确认只有一个目标配置文件,多余的直接 mv 到备份目录。这个操作我做过不下五次。

写在最后

CNI 这个东西,装的时候五分钟,出问题的时候能查五小时。核心记住三件事:

  • CNI 是规范不是实现,调用方是容器运行时不是 kubelet
  • 排查网络问题从底层往上走:配置文件 → 插件状态 → kubelet 日志 → 数据包路径
  • 选型比调优重要,Flannel 够用就别上 Cilium,Calico 能满足就别折腾 eBPF

最后的最后——装 Cilium 之前先检查 10.0.0.0/8 和你的节点网段是否冲突,这个坑一旦踩了,不是重启能解决的。

你在 CNI 上踩过什么坑?欢迎评论区聊聊,也把这篇文章分享给团队里正在被 K8s 网络折磨的兄弟。

高校技术转移办公室人员如何快速评估成果的市场转化潜力?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

科技中介服务机构如何借助平台提升服务效率与专业性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

云原生运维笔记:硬核拆解OpenStack计算与存储——从主机聚合到Cinder挂载全流程

本文深入拆解OpenStack计算(Nova)与存储(Cinder)核心机制,实操复现主机聚合与可用域关系、实例规格(Flavor)权限控制、密钥对与虚拟机组策略,并详述虚拟机全生命周期状态流转。重点揭示“同一主机不可跨AZ”“私有规格移除项目后不可见”等关键坑点,强调Flavor属性不可动态修改,需重建。内容涵盖图形界面与CLI命令对照,兼具实战性与理论深度,是生产环境部署的宝贵参考。

2604_96593683的博客 279

政府科技管理者如何实现科技成果转化的全流程监管?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【云原生】nerdctl 部署及使用指南

nerdctl 是 containerd 官方社区维护的一个 CLI 工具,定位是“Docker 兼容的 containerd 命令行客户端”。简单来说,它让你能用几乎和 Docker 一模一样的命令去操作 containerd。随着 Kubernetes 在 v1.24 版本中正式移除Docker,containerd 已成为容器运行时的事实标准,而nerdctl则填补了 containerd 原生客户端ctr缺乏用户友好性的空白。相较于ctr。

liu_chen_yang的博客 5118

PSO优化RBF模糊神经网络自适应PID控制、RBF模糊神经网络、传统PID三种算法对比仿真(m函数实现)

PSO优化RBF模糊神经网络自适应PID控制、RBF模糊神经网络、传统PID三种算法对比仿真(m函数实现)

基于多目标哈里斯鹰算法及模型预测控制(MPC)的储能和风电平抑波动研究(Matlab代码实现)

内容概要:本文研究了基于多目标哈里斯鹰算法(MOHHO)与模型预测控制(MPC)相结合的储能系统与风电场联合平抑功率波动的方法。针对风电出力的不确定性,构建了综合考虑平抑效果与储能损耗的多目标优化模型,并采用MOHHO算法对MPC控制器的权重参数进行优化求解,从而在保障电网功率稳定的同时延长储能设备使用寿命。研究涵盖了算法设计、控制策略构建及仿真验证全过程,详细阐述了MOHHO在多目标参数整定中的实现机制与MPC的滚动优化过程,结果表明该方法能有效降低风电波动对电网的冲击,提升系统运行的经济性与鲁棒性,适用于高比例可再生能源接入的电力系统调度场景。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,从事新能源并网、储能控制、智能优化算法或模型预测控制研究的研发人员及研究生。; 使用场景及目标:①解决风电功率剧烈波动引起的电网频率与电压不稳定问题;②优化储能系统的充放电策略以实现功率平滑输出并减少循环损耗;③掌握多目标智能优化算法在MPC参数整定中的应用方法;④学习基于Matlab的电力系统建模与仿真分析技术,深入理解预测控制与优化算法的协同机制。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注MOHHO算法的种群演化过程、Pareto最优解集的生成逻辑以及MPC控制器的预测时域与权重矩阵设计,通过调整风电波动场景与储能参数观察系统响应变化,全面掌握多目标优化与模型预测控制在实际工程中的集成应用。

阿里云云原生四项 AI 应用工程化实荣获“鼎新杯”优秀案例

第五届“鼎新杯”由中国通信标准化协会主办、中国信息通信研究院承办,自2026年05月正式启动,历时近 5 个月,聚焦国内政企数智化转型领域的创新成果,旨在为行业提供可复制、可推广的实践参考。

阿里巴巴云原生的博客 175

高校技术转移办公室人员如何提升科技成果的市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

云原生监控:构建动态环境下的全栈可观测性体系

传统监控体系以”主机-应用-日志”三级架构为核心,在云原生环境下暴露出三大缺陷:容器生命周期短导致监控目标频繁变更、微服务间调用链复杂度指数级增长、动态扩缩容引发的监控指标波动。

hdllove520的博客 233

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 413

别再买模块了!手把手教你用FT232RL-REEL芯片,从零设计一个USB转串口电路板

本文详细介绍了如何使用FT232RL-REEL芯片从零设计USB转串口电路板,涵盖核心器件选型、原理图设计、PCB布局布线及焊接调试等关键步骤。通过实战案例和性能对比,展示自制电路板在成本、性能和可靠性上的优势,特别适合硬件爱好者和工程师参考。

weixin_30561425的博客 425

第 4 篇 · 容器与 Kubernetes:云原生的核心引擎

本文深入解析容器与Kubernetes的核心原理。容器基于Linux内核的Namespace与Cgroups实现进程级隔离,共享宿主机内核,具备轻量、快速启动等优势。Docker作为主流容器平台,通过镜像分层、Dockerfile构建及containerd等组件实现容器生命周期管理。当容器规模扩大至千级时,需依赖容器编排解决自动调度、故障自愈、弹性伸缩与服务发现等问题。以Kubernetes为代表的编排系统成为云原生事实标准,通过声明式配置与集群化管理,支撑大规模应用的稳定运行,是现代云原生架构的核心引擎。

路漫漫其修远兮,吾将上下而求索 572

写一个b站爬虫(思路)

part 0 安装 scrapy, requests part 1 信息获取 打开番剧索引链接(https://www.bilibili.com/anime/index/) F12控制台,选中NETWORK,来到xhr文件,我们可以找到了存放番剧json的地方

kou的博客 479

云原生运维学习笔记:OpenStack核心组件实战——从Keystone到Heat的全链路体验

本文为OpenStack核心组件实战学习笔记,系统记录从Keystone认证到Heat编排的全链路操作。通过Dashboard与命令行双路径实践,深入理解Keystone用户、项目、角色等核心概念,掌握各组件(Glance镜像、Nova计算、Cinder/Swift存储、Neutron网络、Heat编排)协作逻辑,实现权限隔离与资源管理,构建完整云平台认知体系。

2604_96593683的博客 230

【Seurat绘图进阶】从参数调优到美学定制:解锁DimPlot与FeaturePlot的隐藏技巧

本文深入探讨了Seurat包中DimPlot与FeaturePlot的进阶使用技巧,旨在解决单细胞数据可视化中的常见痛点。通过参数调优(如order、shuffle、raster)、颜色美学定制(使用RColorBrewer、viridis配色)以及性能优化(栅格化处理),并结合scCustomize包与patchwork排版,帮助用户将基础图表提升为信息清晰、可直接用于论文发表的出版级可视化结果。

lake5的博客 626

ODBC 连接数据库 SQL server 2008

1、打开【控制面板】-> 【系统和安全】 -> 【管理工具】-> 【数据源(ODBC)】  2、双击【数据源(ODBC)】-> 选中【系统DSN】 3、单击【添加】,会弹出如下对话框,选中【SQL server】->【完成】 4、弹出如下对话框,在【名称】中填入数据源名称 例如:我命名为: LocalServer,在【服务器】中填入计算机名或者IP地址,我连接

Christine的专栏 8512

论平台工程(平台化架构)在云原生系统中的设计与实践

针对云原生与微服务规模化后基础设施碎片化与开发者认知负荷过载的结构性矛盾,本文以一个金融集团内部开发者平台(IDP)的设计与落地为背景,论述平台工程架构的核心设计决策。平台工程不是DevOps的替代,而是在云原生技术栈复杂度越过个体开发者可承载阈值之后,将“全栈DevOps”收敛为“平台承载标准化、业务聚焦交付”的分层协作模式。

ai_coder_ai的博客 230

Verilog实现FIR滤波器

1、FIR滤波器简介 不追究FIR滤波器的深层含义,我们只关注如何实现;可以看出,FIR滤波器的本质就是延迟、系数相乘与求和,如下图: 2、设计 基于以上分析,按照三级流水实现FIR滤波器设计:信号延迟-系数相乘-求和 `timescale 1ns / 1ps module fir( input clk, input rst_n, input [3:0]din, output reg [9:0]dout ); // data reg reg [3:0]din1; reg [3:.

CLL_caicai的博客 1万+

Docker网络续集:穿越Bridge、隧道Overlay、直连Macvlan,构建云原生通信矩阵!

本文深入解析Docker四大网络模式(Bridge/Host/Container/None),重点剖析Overlay、Macvlan、IPVLAN的实现原理与跨主机通信机制,并通过veth pair、网桥、iptables NAT实战演示容器内外网络流量走向。

羑悻的博客. 8115

人形机器人开源资源大盘点(四):硬件开源平台

开源人形机器人平台推动技术民主化 本期聚焦四大开源人形机器人平台:斯坦福的ToddlerBot以6000美元低成本实现30自由度运动,支持仿真到现实的零样本迁移;法国Reachy2被HuggingFace收购,融合开源AI与硬件,适配医疗、工业等场景;国内OriginMan基于ROS2全开源,集成大模型能力,支持深度改造;OAN框架则为经典NAO机器人注入开源活力,扩展交互功能。这些平台通过不同路径降低研发门槛,推动人形机器人技术走向开放共享的未来。

Studying…… 361

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2020

云原生运维学习笔记:揭开虚拟化的硬核面纱,从底层架构到KVM实战

本文系统梳理虚拟化底层原理,从CPU与内存虚拟化的硬核挑战出发,解析x86架构缺陷及硬件辅助虚拟化(VMX/EPT)的解决方案,深入理解KVM与QEMU协同机制,并结合Libvirt命令行实操,掌握虚拟机创建、管理与配置的核心技能,实现从理论到实践的贯通。

2604_96593683的博客 365

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

第 5 篇 · 云原生生态与实践:微服务、DevOps、可观测性与 Serverless

本文系统梳理云原生生态核心实践,涵盖微服务架构演进、服务网格(Service Mesh)治理、DevOps与CI/CD流水线、GitOps及IaC理念。以Kubernetes为底座,结合Spring Cloud、Istio、Argo CD等主流工具,构建现代化应用的交付与运维体系,强调自动化、可观测性与可追溯性,助力企业实现高效、稳定、弹性化的云原生转型。

路漫漫其修远兮,吾将上下而求索 695

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

云原生项目一

本文介绍了基于iVentoy部署CentOS 7.9、OpenEuler 2203及Ubuntu系统的实践过程。通过华为云获取CentOS 7.9镜像,配置虚拟机网络与iVentoy本地服务网段一致,分配4GB内存、20GB存储空间。使用kickstart自动化安装,修改centos7.cfg文件实现无人值守部署。关闭iVentoy服务后重启虚拟机,通过Xshell远程连接验证自动分区与系统配置成功,完成高效批量系统部署。

zfm242397396的博客 152

云原生运维学习笔记:KVM实战——从环境搭建到热迁移的硬核体验

本文为从零搭建KVM虚拟化环境的实战过程,涵盖系统安装(含硬件虚拟化开启)、Yum本地源配置、KVM组件安装及验证。通过virsh命令行管理虚拟机(开机、关机、挂起、自启),使用qemu-img创建精简磁盘,并实践了virt-install配合VNC实现无图形界面装机。最终体验企业级热迁移功能,将理论知识与网络、存储等基础技能深度融合,完成一次扎实的云原生运维底层实践。

2604_96593683的博客 403

云原生运维学习笔记:从Linux基础、华为云到OpenStack与OceanStor的全栈实战

本文记录了从云原生运维底层实践到企业级云平台搭建的完整路径:通过华为云实战IAM权限管理与VPC/ECS部署,掌握公有云核心操作;再以Packstack自动化部署OpenStack Victoria私有云,完成控制器与计算节点配置;最后结合iBMC模拟器与OceanStor存储仿真,贯通“云控制台→虚拟化→物理硬件”全链路。全程涵盖权限设计、网络规划、时间同步、密钥管理等关键环节,揭示云原生运维的本质——从云端点选到硬核底座的深度掌控。

2604_96593683的博客 98
上一篇: 别再让 Liveness Probe 背锅了:initialDelaySeconds 和 failureThreshold 的坑,一次讲透
下一篇: K8s 调优别再瞎调了:从内核参数到 cgroup v2,操作系统层的坑我替你踩完了
运维老郭
博客等级 码龄11年 9粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维老郭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值