金融行业Kubernetes内网部署Calico CNI实战指南
1. 项目背景与需求分析去年在给某金融机构做私有云改造时遇到了一个典型的企业内网Kubernetes部署场景1个管理节点2个工作节点需要部署Calico作为CNI插件。这个看似简单的需求在实际操作中遇到了不少坑今天就把完整实施过程记录下来。为什么选择Calico在金融行业这种对网络性能和安全有严格要求的场景下Calico的纯三层网络方案相比Overlay网络有明显优势没有封包解包的性能损耗支持NetworkPolicy实现微隔离而且排查问题时路由信息清晰可见。客户环境是完全离线的内网所有镜像都需要提前下载好这对Calico的部署提出了额外挑战。2. 环境准备与前置条件2.1 硬件资源配置我们使用了3台物理服务器管理节点32核CPU/128GB内存/2块万兆网卡工作节点16核CPU/64GB内存/2块万兆网卡注意Calico对网络性能敏感建议至少使用千兆网卡万兆更佳。我们遇到过因为网卡性能不足导致的Pod间通信延迟问题。2.2 操作系统配置所有节点统一使用CentOS 7.9进行了以下基础配置关闭swapswapoff -a并注释/etc/fstab中的swap行设置SELinux为permissive模式加载必要的内核模块modprobe br_netfilter echo br_netfilter /etc/modules-load.d/br_netfilter.conf配置内核参数cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF sysctl --system3. Kubernetes集群部署3.1 使用kubeadm初始化集群在内网环境下我们需要先搭建本地镜像仓库。这里使用Harbor作为私有仓库# 在管理节点上 docker pull registry:2 docker run -d -p 5000:5000 --restartalways --name registry registry:2然后导入必要的Kubernetes镜像版本1.23.5# 将提前下载好的镜像包导入 docker load -i kube-apiserver.tar docker load -i kube-controller-manager.tar # ...其他组件镜像同理 # 重新打tag推送到本地仓库 docker tag k8s.gcr.io/kube-apiserver:v1.23.5 localhost:5000/kube-apiserver:v1.23.5 docker push localhost:5000/kube-apiserver:v1.23.5初始化管理节点kubeadm init \ --image-repositorylocalhost:5000 \ --kubernetes-versionv1.23.5 \ --pod-network-cidr192.168.0.0/16 \ --service-cidr10.96.0.0/123.2 工作节点加入集群在工作节点上执行管理节点初始化完成后输出的join命令kubeadm join 10.10.1.100:6443 --token xxxx \ --discovery-token-ca-cert-hash sha256:xxxx常见问题如果join时报错connection refused检查防火墙是否放行了6443端口。我们在生产环境遇到过因为iptables规则冲突导致节点无法加入的情况。4. Calico网络插件部署4.1 离线安装准备由于是内网环境需要提前下载Calico的manifest文件和镜像# 在外网机器上 curl https://docs.projectcalico.org/manifests/calico.yaml -O docker pull calico/node:v3.21.4 docker pull calico/cni:v3.21.4 docker pull calico/kube-controllers:v3.21.4 # 导出镜像并传输到内网 docker save -o calico-node.tar calico/node:v3.21.4 # ...其他镜像同理在内网环境中导入镜像并推送到本地仓库docker load -i calico-node.tar docker tag calico/node:v3.21.4 localhost:5000/calico-node:v3.21.4 docker push localhost:5000/calico-node:v3.21.44.2 修改部署文件编辑calico.yaml主要修改以下几处修改镜像地址image: localhost:5000/calico/node:v3.21.4配置IP池与kubeadm的--pod-network-cidr保持一致- name: CALICO_IPV4POOL_CIDR value: 192.168.0.0/16根据实际网卡修改IP自动检测方式- name: IP_AUTODETECTION_METHOD value: interfaceeth.*4.3 部署Calicokubectl apply -f calico.yaml验证部署状态kubectl get pods -n kube-system # 应该看到calico-node-xxx和calico-kube-controllers-xxx都Running kubectl get nodes # 所有节点状态应为Ready5. 网络策略配置实战5.1 基础策略隔离命名空间创建一个拒绝所有入口流量的策略apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-ingress namespace: production spec: podSelector: {} policyTypes: - Ingress5.2 微服务间访问控制允许frontend服务访问backend服务apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-frontend-to-backend spec: podSelector: matchLabels: app: backend policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: frontend ports: - protocol: TCP port: 80806. 故障排查与性能优化6.1 常见问题排查Pod无法分配IPkubectl describe pod pod-name # 查看Events部分是否有IP分配失败信息 # 检查calico-node日志 kubectl logs -n kube-system calico-node-xxxx节点间网络不通# 在Pod内测试 kubectl exec -it pod-name -- ping other-pod-ip # 检查路由表 ip route show6.2 性能调优参数在calico.yaml中添加以下环境变量env: - name: FELIX_IPTABLESREFRESHINTERVAL value: 60s - name: FELIX_IPV6SUPPORT value: false - name: CALICO_STARTUP_LOGLEVEL value: info7. 生产环境经验总结镜像同步技巧使用skopeo工具可以更高效地同步镜像建立内部镜像仓库的定期同步机制网络规划建议Pod CIDR不要与现有物理网络重叠预留足够的IP空间每个节点默认分配/26子网监控配置# 启用Calico的Typha组件以提升大规模集群性能 kubectl scale deployment -n kube-system calico-typha --replicas3升级注意事项先在一个工作节点测试新版本Calico保留旧版本manifest文件以便回滚

相关新闻

NX二次开发-编辑NX自带的命令

NX二次开发-编辑NX自带的命令

适用版本:NX 所有版本一、概述Menuscript 是NX定义菜单的ASCII脚本,可以使用这个脚本编辑NX菜单,并以无缝集成的方式为自己的应用程序创建自定义菜单;也可以编辑替换NX自带现有的功能命令。二、功能说明本文以编辑“打开 ”命令来…

2026/10/16 1:14:09 阅读更多 →
2026年哪个GEO营销系统效果最好?从概念认知到决策落地

2026年哪个GEO营销系统效果最好?从概念认知到决策落地

一、基础认知:重新理解GEO的核心逻辑1.1 什么是GEOGEO,全称为Generative Engine Optimization,即生成式引擎优化。它指的是面向AI搜索、智能问答和大模型生成结果的优化方法,核心目标是提升品牌信息在AI生成答案中的引用概率与呈现…

2026/10/16 1:34:33 阅读更多 →
DxWrapper实战指南:Windows 10/11经典游戏5步高效兼容性解决方案

DxWrapper实战指南:Windows 10/11经典游戏5步高效兼容性解决方案

DxWrapper实战指南:Windows 10/11经典游戏5步高效兼容性解决方案 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .a…

2026/10/16 1:35:23 阅读更多 →

最新新闻

基于C#的MSChart图表拖拽实现:坐标换算与事件机制详解

基于C#的MSChart图表拖拽实现:坐标换算与事件机制详解

简介:利用C#语言与MSChart控件在WinForm程序中实现图形拖拽功能的完整程序资源包,面向需要增强图表交互体验的Windows窗体应用开发者。资源以鼠标事件处理为核心,通过命中测试识别数据点,记录拖拽起点并动态更新坐标,使…

2026/10/16 14:14:19 阅读更多 →
ECOS-MATLAB:CVX背后的锥规划求解器解析与实战

ECOS-MATLAB:CVX背后的锥规划求解器解析与实战

简介:这是一套面向MATLAB用户的二阶锥规划求解工具包,基于开源求解器ECOS构建,并与CVX建模语言无缝衔接,适合工程、经济、统计等领域的科研和工程人员快速处理带线性或二次凸约束的优化问题。压缩包共8个文件,包含6个M…

2026/10/16 14:14:19 阅读更多 →
KB5004442补丁与OPC Classic DCOM兼容性配置及故障排查指南

KB5004442补丁与OPC Classic DCOM兼容性配置及故障排查指南

简介:这份PDF资料聚焦微软KB5004442安全更新,面向工业自动化领域的OPC Classic运维人员、DCOM组件开发者及系统管理员,用于评估CVE-2021-26414修补后DCOM安全机制变更对OPC通信的冲击。资源包仅含1个PDF文件,约398KB,内…

2026/10/16 14:14:19 阅读更多 →
STM32 UART双APP IAP实战:Flash分区、Bootloader跳转与远程固件升级

STM32 UART双APP IAP实战:Flash分区、Bootloader跳转与远程固件升级

简介:这是一份面向STM32嵌入式开发者的IAP(应用程序内编程)实战工程,聚焦UART串口通信下的双APP固件升级方案。资源以STM32微控制器为平台,演示如何通过任意通信接口获取新版bin固件包并完成自升级,可延伸至…

2026/10/16 14:14:19 阅读更多 →
free-claude-code:Claude Code免费额度管理实战

free-claude-code:Claude Code免费额度管理实战

free-claude-code 是我最近整理的一个小工具,专门用来管理 Claude Code 的免费额度。很多人第一次听说 Claude Code 时,先被它那套命令行交互惊艳到,但真到自己上手,又容易被“额度到底还剩多少”“怎么在不同项目间切换不串 key”…

2026/10/16 14:14:19 阅读更多 →
stripe-integration - SKILL

stripe-integration - SKILL

name: stripe-integration description: “精通 Stripe 支付处理集成,构建稳健、符合 PCI 标准的支付流程,包括结账、订阅、Webhook 和退款。” risk: critical source: community date_added: “2026-02-27” Stripe 集成 精通 Stripe 支付处理集成&…

2026/10/16 14:13:17 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →