当前位置: 首页 > article >正文

Kubernetes网络模型深度解析与实践

Kubernetes网络模型深度解析与实践Kubernetes网络概述Kubernetes网络是容器编排的核心组成部分它为Pod提供了稳定的网络标识和通信能力。本文将深入探讨Kubernetes网络模型的核心概念、网络插件和最佳实践。Kubernetes网络核心概念1. Pod网络模型┌─────────────────────────────────────────────────────────────────┐ │ Kubernetes网络模型 │ ├─────────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Pod1 │ │ Pod2 │ │ Pod3 │ │ │ │ 10.1.0.2 │────│ 10.1.0.3 │────│ 10.1.0.4 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Service网络 │ │ │ │ ClusterIP: 10.96.0.10 │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Ingress │ │ │ │ example.com - 10.96.0.10 │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘2. Service网络apiVersion: v1 kind: Service metadata: name: myapp-service spec: type: ClusterIP selector: app: myapp ports: - port: 80 targetPort: 8080 protocol: TCP3. Pod间通信apiVersion: v1 kind: Pod metadata: name: network-test spec: containers: - name: busybox image: busybox:1.35 command: [sleep, 3600]Kubernetes网络插件1. Calico网络配置# calico.yaml apiVersion: crd.projectcalico.org/v1 kind: IPPool metadata: name: default-ipv4-ippool spec: cidr: 10.1.0.0/16 ipipMode: Always natOutgoing: true2. Flannel网络配置# kube-flannel.yml apiVersion: v1 kind: ConfigMap metadata: name: kube-flannel-cfg namespace: kube-system data: cni-conf.json: | { name: cbr0, cniVersion: 0.3.1, plugins: [ { type: flannel, delegate: { hairpinMode: true, isDefaultGateway: true } }, { type: portmap, capabilities: { portMappings: true } } ] } net-conf.json: | { Network: 10.244.0.0/16, Backend: { Type: vxlan } }3. Cilium网络配置apiVersion: cilium.io/v2 kind: CiliumNetworkPolicy metadata: name: deny-all-ingress spec: endpointSelector: matchLabels: app: myapp ingress: - fromEndpoints: - matchLabels: app: frontend toPorts: - ports: - port: 8080 protocol: TCP网络策略1. 基本网络策略apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-all namespace: default spec: podSelector: {} policyTypes: - Ingress - Egress2. 允许特定流量apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-database-access namespace: backend spec: podSelector: matchLabels: app: database policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: api - ipBlock: cidr: 192.168.1.0/24 except: - 192.168.1.100/32 ports: - protocol: TCP port: 54323. Egress策略apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: restrict-egress namespace: default spec: podSelector: matchLabels: app: frontend policyTypes: - Egress egress: - to: - podSelector: matchLabels: app: api ports: - protocol: TCP port: 8080 - to: - namespaceSelector: matchLabels: name: kube-system podSelector: matchLabels: k8s-app: kube-dns ports: - protocol: UDP port: 53Service类型详解1. ClusterIPapiVersion: v1 kind: Service metadata: name: internal-service spec: type: ClusterIP selector: app: backend ports: - port: 80 targetPort: 80802. NodePortapiVersion: v1 kind: Service metadata: name: nodeport-service spec: type: NodePort selector: app: frontend ports: - port: 80 targetPort: 8080 nodePort: 300803. LoadBalancerapiVersion: v1 kind: Service metadata: name: loadbalancer-service spec: type: LoadBalancer selector: app: web ports: - port: 80 targetPort: 8080 loadBalancerIP: 192.168.1.1004. ExternalNameapiVersion: v1 kind: Service metadata: name: external-service spec: type: ExternalName externalName: api.example.comIngress配置1. 基本IngressapiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: basic-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: web-service port: number: 802. TLS配置apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: tls-ingress annotations: cert-manager.io/cluster-issuer: letsencrypt-prod spec: tls: - hosts: - example.com secretName: example-tls rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: web-service port: number: 803. 多路径配置apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: multi-path-ingress spec: rules: - host: example.com http: paths: - path: /api pathType: Prefix backend: service: name: api-service port: number: 8080 - path: /web pathType: Prefix backend: service: name: web-service port: number: 80网络性能优化1. 网络策略优化apiVersion: cilium.io/v2 kind: CiliumNetworkPolicy metadata: name: optimized-policy spec: endpointSelector: matchLabels: app: high-performance ingress: - fromEndpoints: - matchLabels: app: trusted toPorts: - ports: - port: 8080 protocol: TCP2. Service拓扑优化apiVersion: v1 kind: Service metadata: name: topology-service annotations: service.kubernetes.io/topology-aware-hints: auto spec: type: ClusterIP selector: app: myapp ports: - port: 80 targetPort: 80803. 节点本地DNSapiVersion: v1 kind: ConfigMap metadata: name: kube-dns namespace: kube-system data: stubDomains: | {example.com: [10.96.0.10]} upstreamNameservers: | [8.8.8.8, 8.8.4.4]网络故障排查1. 网络诊断工具# 查看Pod网络状态 kubectl get pods -o wide # 测试Pod间通信 kubectl exec -it pod1 -- ping pod2-ip # 查看Service端点 kubectl get endpoints # 查看网络策略 kubectl get networkpolicy2. DNS排查# 测试DNS解析 kubectl exec -it mypod -- nslookup kubernetes.default # 查看DNS配置 kubectl get configmap kube-dns -n kube-system -o yaml # 查看CoreDNS日志 kubectl logs -n kube-system -l k8s-appkube-dns3. 网络策略排查# 查看网络策略状态 kubectl describe networkpolicy mypolicy # 使用calicoctl查看策略 calicoctl get networkpolicy # 使用cilium查看策略 cilium policy get网络安全最佳实践1. 网络隔离apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: namespace-isolation namespace: sensitive spec: podSelector: {} policyTypes: - Ingress - Egress ingress: - from: - namespaceSelector: matchLabels: name: trusted egress: - to: - namespaceSelector: matchLabels: name: kube-system2. 零信任网络apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: zero-trust namespace: default spec: podSelector: {} policyTypes: - Ingress - Egress3. Service账户隔离apiVersion: v1 kind: ServiceAccount metadata: name: restricted-sa namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: restricted-role namespace: default rules: - apiGroups: [] resources: [pods] verbs: [get, list]实战案例构建安全的微服务网络架构设计┌─────────────────────────────────────────────────────────────────┐ │ 微服务网络架构 │ ├─────────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Frontend │ │ API │ │ Database │ │ │ │ (Public) │───│ (Private) │───│ (Isolated) │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Network Policies │ │ │ │ - Frontend - API only │ │ │ │ - API - Database only │ │ │ │ - Deny all other traffic │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘实现步骤部署网络插件选择Calico或Cilium作为CNI插件配置网络策略为每个命名空间配置默认拒绝策略定义服务网络使用ClusterIP隔离内部服务配置Ingress暴露必要的服务到外部监控网络流量使用Cilium或Prometheus监控网络指标总结Kubernetes网络是容器编排的核心它为Pod提供了稳定的网络标识和通信能力。通过合理配置网络插件、Service和网络策略可以构建安全、高效的网络环境。在实际应用中需要根据集群规模和安全要求选择合适的网络插件和配置策略确保网络的可靠性和安全性。掌握Kubernetes网络模型的核心概念和最佳实践对于构建和管理云原生应用至关重要。

相关文章:

Kubernetes网络模型深度解析与实践

Kubernetes网络模型深度解析与实践 Kubernetes网络概述 Kubernetes网络是容器编排的核心组成部分,它为Pod提供了稳定的网络标识和通信能力。本文将深入探讨Kubernetes网络模型的核心概念、网络插件和最佳实践。 Kubernetes网络核心概念 1. Pod网络模型 ┌───…...

如何用500KB开源工具彻底替代AWCC:AlienFX Tools终极控制指南

如何用500KB开源工具彻底替代AWCC:AlienFX Tools终极控制指南 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 厌倦了Alienware Command Cen…...

CANN/ge函数处理点API

FuncProcessPoint 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFl…...

开发者专属:用coding-plan打造高效技术学习与自律管理系统

1. 项目概述:一个为开发者量身定制的自律与成长工具如果你和我一样,是一名在代码世界里摸爬滚打的开发者,那你一定对“计划赶不上变化”这句话深有体会。今天想学个新框架,明天要重构旧代码,后天又被临时需求打断。一年…...

CANN hcomm通信内存激活接口

HcclCommActivateCommMemory 【免费下载链接】hcomm HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm [!NOTE]说明 本接口为试用接口,后续可…...

生态:智能体与环境的双向塑造 ——为什么超级进化只能是科幻

# 生态:智能体与环境的双向塑造 ## ——为什么超级进化只能是科幻**作者**:归来的星辰 **首发**:知乎(2026年4月26日) **协议**:CC BY-SA 4.0(可自由转载、改编、商业化使用,但须保留…...

CANN/atvoss幂运算接口

Power 【免费下载链接】atvoss ATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。 项目地址: https://…...

CANN / ops-nn GELU算子

aclnnGelu 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品…...

WeChatPad:解锁微信多设备协同,重塑移动办公边界

WeChatPad:解锁微信多设备协同,重塑移动办公边界 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 你是否曾在工作与生活之间疲于切换微信账号?是否因微信"手机和平板不…...

混合专家MoE没你想的那么玄乎:拆开GPT-4和DeepSeek V4的核心架构

上周跟一个朋友聊天,他说他在读 MoE 的论文,读了两天没太搞明白。我说你换个角度想——MoE 就像一家大型公司的组织架构。 传统的大模型就像一个全能型员工,一个人啥都得会。MoE 换了个思路:你不是要让一个人啥都会吗?…...

Video DownloadHelper CoApp终极指南:从零开始轻松下载网络视频

Video DownloadHelper CoApp终极指南:从零开始轻松下载网络视频 【免费下载链接】vdhcoapp Companion application for Video DownloadHelper browser add-on 项目地址: https://gitcode.com/gh_mirrors/vd/vdhcoapp Video DownloadHelper CoApp是Video Down…...

职场人的「深夜困境」:为什么我选择用AI社交平台倾诉

职场五年,我学会了一件事:白天把情绪藏好,晚上一个人消化。白天开会、汇报、对接客户,所有的情绪都要收着。到了晚上,躺在床上,脑子却停不下来。翻来覆去睡不着的时候,你会找谁?我试…...

CANN基础设施机器人使用指南

【免费下载链接】infrastructure 本仓库用于托管CANN社区基础设施团队的公开信息,包括不限于:会议日程,成员信息,服务文档和配置等信息 项目地址: https://gitcode.com/cann/infrastructure 🚀 CANN社区Bot用户…...

CANN/HCCL Ring集合通信算法

Ring 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann/hccl 算法…...

【2026年最新】网安学习路线!最详细没有之一!看了这么多分享网安学习路线的一个详细的都没有!

零基础小白,到就业!入门到入土的网安学习路线! 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了! 我把自己报班的系统学习路线,整理拿出来跟大家分享了! 建议的学习顺序: 一、网络安…...

数字电源控制技术:从效率优化到智能管理

1. 数字电源控制技术的革新突破在电力电子领域工作了十五年,我见证了电源技术从模拟控制到数字控制的革命性转变。2007年那场PCIM China展会上,Ericsson展示的数字控制POL稳压器让我至今记忆犹新——它用25.412.7mm的尺寸实现了20A输出,这个尺…...

Tekla 图纸还在人工调?一个项目浪费几十小时,自动调图到底能省多少时间

正文在钢结构深化行业,很多人都以为建模最耗时间。但真正做过项目的人都知道,模型完成之后,真正拖慢交付周期的,往往是图纸后处理。一个典型流程:建模完成 → 自动生成图纸 → 图纸员人工调图 → 校审 → 修改 → 出图…...

CANN工具SIG项目

tools SIG 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://gitcode.com/cann/community 简介 欢迎来到tools SIG!我们致力于构建模型压缩和…...

CANN/sip BLAS点积算子文档

Dot 【免费下载链接】sip 本项目是CANN提供的一款高效、可靠的高性能信号处理算子加速库,基于华为Ascend AI处理器,专门为信号处理领域而设计。 项目地址: https://gitcode.com/cann/sip 产品支持情况 产品是否支持Atlas 200I/500 A2 推理产品At…...

Dify与Langfuse集成:构建可观测AI应用的全链路实践

1. 项目概述:当Dify遇上Langfuse,如何构建可观测的AI应用 如果你正在用Dify搭建AI应用,那你一定遇到过这样的场景:用户反馈说“昨天那个回答挺好的,今天怎么不行了?”;或者产品经理问你“我们调…...

CANN/CATLASS样例设计文档

CATLASS 样例设计文档 【免费下载链接】catlass 本项目是CANN的算子模板库,提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass 本文档汇总当前一些样例的设计思路和代码拆解,读者可按照个人兴趣查阅…...

多模态大模型评测指南:从盲测竞技场到技术选型实战

1. 项目概述:一个开放的多模态模型竞技场如果你最近在关注大模型,尤其是那些能“看懂”图片的视觉语言大模型,那你可能已经发现,各种新模型如雨后春笋般涌现,每个都宣称自己性能卓越。但作为开发者或研究者&#xff0c…...

体验低延迟与高稳定的大模型API调用服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 体验低延迟与高稳定的大模型API调用服务 在需要与大模型进行高频、连续交互的开发或学习场景中,服务的响应速度和稳定性…...

2026年 自动化缝纫模板机 机器人工作站市场洞察与排名

前言在智能制造浪潮下,模板机机器人工作站成为服装、家纺等行业升级关键。这类设备以高效、精准、稳定等特性,提升生产效率与降低成本。市场上相关品牌与产品众多,为助企业挑选,现从多维度评估并排名。2026 年模板机机器人工作站 …...

CANN/asc-tools NPU检查工具

npu_check 【免费下载链接】asc-tools Ascend C Tools仓是CANN基于Ascend C编程语言推出的配套调试工具仓。 项目地址: https://gitcode.com/cann/asc-tools 概述 Ascend C Tools提供的孪生调试分为debug功能和npu check功能,debug功能包含诸如是否合法使用…...

CANN/PTO-ISA安全说明

安全说明 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platf…...

全域矩阵运营系统分布式任务调度架构设计与工程化落地

摘要随着全域矩阵运营系统的规模化落地,系统需要承载数十万账号的定时内容发布、跨平台数据同步、账号健康巡检、合规风险扫描、运营 SOP 执行等海量、异构、强业务关联的任务场景。通用分布式任务调度框架仅能实现基础的定时任务触发,无法适配矩阵系统多…...

基于改进YOLOv8斑点叉尾鮰鱼损伤检测系统的研究与实现

摘要:斑点叉尾鮰是我国重要的淡水养殖经济鱼类,在高密度集约化养殖过程中,鱼体损伤问题频发,直接影响商品鱼品质和养殖经济效益。传统的鱼体损伤检测主要依赖人工目视判别,存在效率低、主观性强、难以实现批量化检测等…...

昇腾CANN/GE Concat No Task特性分析

Concat No Task 特性分析 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、T…...

通过curl命令快速测试Taotoken各大模型接口响应与功能

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken各大模型接口响应与功能 对于需要在无SDK环境或进行底层接口调试的开发者而言,直接使用c…...