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

【读书笔记/深入理解K8S】集群网络

前言

上一章讲了集群控制器的一个大概的原理,这一章讲一下集群网络。网络是集群通信的载体,因为该书是阿里云团队出品的,所以也以阿里云的集群网络方案为例,其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习,能对k8s集群网络的搭建有个大概的理解,也算是有所收获。

本章分为两部分:

  1. 网络搭建过程
  2. 基于网络的通信

网络搭建过程

阿里云集群网络方案有2中,一种是flannel方案,一种是基于calico和弹性网卡eni的terway方案。terway方案相较于flannel,支持Pod弹性网卡和NetworkPolicy功能。

概览

我们先看一下一个完整的集群网络的拓扑图的样子:

该图可以划分为3个部分:1. 集群CIDR 2.集群CIDR的子网段(podCIDR) 3. 每个Pod的IP

下面我们来看具体搭建过程:

初始阶段

初始阶段,需要创建VPC和ECS,创建完VPC和ECS后,ECS可以从VPC网段里分配到IP地址

集群阶段

在初始资源基础上,利用集群控制台得到集群CIDR。该值会传给集群节点脚本(provision),然后被脚本传给kubeadm,最后kubeadm将该参数写入集群控制器Pod的yaml文件 kube-controller-manager.yaml

(总结:集群CIDR通过kubeadm写入kube-controller-manager.yaml)

拿到集群CIDR后,kubelet会给节点分配PodCIDR

节点阶段

在上溯节点PodCIDR完成后,集群下发flanneId刀每个阶段上,从而搭建可以给Pod使用的网络框架:

  1. 集群通过Cloud Controller Manager给VPC配置路由表项(路由把目标为PodCIDR的网络包发到对应的ECS上)
  2. 创建虚拟网桥cni0以及相关路由

Pod阶段

在前面三个阶段,集群已经为Pod搭建了网络通信的干道,这时如果集群把一个Pod调度到节点上,kubelet会通过flnnel cni为这个Pod本身创建

  1. 网络命名空间
  2. veth 设备

然后把veth设备假如cni0虚拟网桥里,并为Pod内的veth配置IP地址


基于网络的通信

本地通信

本地通信指同Pod内部不同的容器之间通信。这些容器共享一个网络协议栈,所以通过lookback设备即可。

同节点Pod的通信

同节点Pod之间的通信,是cni0虚拟网桥内部的通信,也就相当于一个二层的局域网内部设备通信

跨节点Pod的通信

跨节点Pod之间通信,则通过cni0网桥的网关,流转到节点上,经过节点的eth0发给VPC路由,这个过程不会封包。VPC路由通过路由表,将数据包发给对应的ECS节点,再到目的Pod

Pod和Pod网络之外的实体通信

Pod与非Pod网络的实体通信,通过节点上的iptables规则做snat,该规则就是flanneId依据命令行——ip-masq选项做的配置

iptables

  • iptables 是 Linux 内核中的一个防火墙工具,用于管理网络数据包的过滤和 NAT(网络地址转换)等功能。它基于规则链来处理数据包,规则链是一系列规则的集合,这些规则定义了如何处理不同类型的网络数据包。
  • 例如,用户可以使用 iptables 规则允许或拒绝来自特定 IP 地址的数据包访问本地服务器,或者将内部网络的私有 IP 地址转换为公有 IP 地址以实现互联网访问。
  • 在 Kubernetes 中,iptables 用于实现集群内部的网络策略和服务的流量转发。Kubernetes 的网络模型依赖于 iptables 来设置复杂的规则,以确保不同容器之间的通信安全和正确的流量路由。

相关文章:

【读书笔记/深入理解K8S】集群网络

前言 上一章讲了集群控制器的一个大概的原理,这一章讲一下集群网络。网络是集群通信的载体,因为该书是阿里云团队出品的,所以也以阿里云的集群网络方案为例,其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习&…...

【专有网络VPC】连接公网

通过ECS实例固定公网IP、弹性公网IP、NAT网关、负载均衡使专有网络中的云资源可以访问公网(Internet)或被公网访问。 概述 专有网络是您自定义的云上私有网络。专有网络中的云资源默认无法访问公网,也无法被公网访问。您可以通过配置ECS实例…...

论文 | Legal Prompt Engineering for Multilingual Legal Judgement Prediction

这篇文章探讨了如何利用“法律提示工程”(LPE)来指导大型语言模型(LLM)进行多语言法律判决预测(LJP)。主要内容: LPE 的概念: LPE 是指通过设计特定的提示(promp…...

国科安芯抗辐照MCU和CANFD芯片发布

国科安芯科技有限公司近期发布了两款重要的芯片产品:抗辐照MCU芯片和抗辐照CANFD芯片。这两款芯片的发布标志着国科安芯在高性能、高安全性芯片产品研制方面取得了显著进展,特别是在抗辐照技术领域。 1. 抗辐照MCU芯片:国科安芯研发的AS32A4…...

C++ 并发专题 - 无锁数据结构(概述)

一:概述: 无锁数据结构是一种在多线程环境中实现线程安全的结构,它允许多个线程在没有传统锁机制的情况下并发访问和修改数据。这种设计的目标是提高程序的性能和响应性,避免锁竞争和上下文切换的开销。 二:原理&…...

NLP领域的经典算法和模型

在自然语言处理(NLP)领域,经典算法和模型众多,它们在不同任务中发挥着重要作用。以下是一些NLP领域的经典算法和模型的详细介绍: 一、基础模型 词袋模型(Bag of Words,BoW) 原理&a…...

提升安全上网体验:Windows 11 启用 DOH(阿里公共DNS)

文章目录 阿里公共 DNS 介绍免费开通云解析 DNS 服务Windows 编辑 DNS 设置配置 IPv4配置 IPv6 路由器配置 DNS 阿里公共 DNS 介绍 https://alidns.com/ 免费开通云解析 DNS 服务 https://dnsnext.console.aliyun.com/pubDNS 开通服务后,获取 DOH 模板&#xff0…...

论文概览 |《Journal of Transport Geography》2024.10 Vol.120

本次给大家整理的是《Journal of Transport Geography》杂志2024年9月第120卷的论文的题目和摘要,一共包括17篇SCI论文! 论文1 Modelling scenarios in planning for future employment growth in Stockholm 斯德哥尔摩未来就业增长规划情景建模 【摘要…...

yum不能使用: cannot find a valid baseurl for repo: base/7/x86_64

使用yum命令时报错: 原因: CentOS 已经停止维护的问题。2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期…...

什么品牌的护眼台灯比较好?五款护眼效果比较明显的护眼台灯

在当今信息爆炸的时代背景下,挑选一款真正符合个人需求的护眼台灯,确实是一项不小的挑战。市场上品牌众多、型号繁杂,功能特点各不相同,价格区间也相当广泛,许多消费者在选购时往往感到迷茫不已。当大家询问“什么品牌…...

HTML 表单设计与验证

创建 HTML 表单的步骤如下&#xff1a; 使用 <form> 标签来创建表单&#xff0c;<form> 标签有一个 action 属性&#xff0c;用于指定表单提交的目标 URL。 在 <form> 标签内部&#xff0c;使用 <input> 标签来创建输入框。<input> 标签有一个 …...

qt QDialog详解

1、概述 QDialog是Qt框架中用于创建对话框的类&#xff0c;它继承自QWidget。QDialog提供了一个模态或非模态的对话框&#xff0c;用于与用户进行交互。模态对话框会阻塞其他窗口的输入&#xff0c;直到用户关闭该对话框&#xff1b;而非模态对话框则允许用户同时与多个窗口进…...

supervisor服务“Exited too quickly“解决方案

【初始问题】supervisor创建一个守护进程&#xff0c;老是提示启动失败 【结论】进程执行后&#xff0c;短时间就断开了 Ⅰ 问题分析 supervisor开启进程守护失败了&#xff0c;查看下进程执行记录&#xff0c;显示这个进程的指令执行报错了 接下来&#xff0c;查看下superv…...

动态规划 —— 路径问题-地下城游戏

1. 地下城游戏 题目链接&#xff1a; 174. 地下城游戏 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/dungeon-game/description/ 2. 算法原理 状态表示&#xff1a;以莫一个位置位置为结尾或者以莫一个位置为起点 dp[i&#xff0c;j]表示&#xff1a…...

沈阳乐晟睿浩科技有限公司抖音小店短视频时代的电商蓝海

在数字化浪潮席卷全球的今天&#xff0c;电子商务以其独特的魅力和无限的潜力&#xff0c;成为了推动经济发展的新引擎。作为这一领域的佼佼者&#xff0c;沈阳乐晟睿浩科技有限公司凭借其深厚的行业积淀与创新精神&#xff0c;正逐步成为众多商家在抖音小店平台上腾飞的强大助…...

ubuntu20.04安装ros与rosdep

目录 前置配置 配置apt清华源 配置ros软件源 添加ros安装源&#xff08;中科大软件源&#xff09; 设置秘钥 更新源 ros安装 安装ros 初始化 rosdep 更新 rosdep 设置环境变量 安装 rosinstall 安装验证 启动海龟仿真器 操控海龟仿真器 rosdep安装更新 安装 使用…...

推理加速papers

《A Survey on Efficient Inference for Large Language Models》2024-07 1. Q、K、V的计算&#xff0c;都是矩阵乘法&#xff1b; 2. prefilling阶段&#xff0c;每次计算&#xff0c;Q是N个向量一起&#xff1b;decoding阶段&#xff0c;每次计算&#xff0c;Q是1个向量计算&…...

【02基础】- RabbitMQ基础

目录 2- RabbitMQ2-1 介绍和安装安装 2-2 RabbitMQ 快速入门2-3 RabbitMQ 数据隔离 3- Java客户端3-1 快速入门AMQP快速入门&#x1f4d1;小结&#xff1a;SpringAMQP如何收发消息&#xff1f; 3-2 WorkQueues 任务模型案例-使用 WorkQueue 单队列绑定多消费者&#x1f4d1;小结…...

vue3中跨层传递provide、inject

前置说明 在 Vue 3 中&#xff0c;provide 和 inject 是一对用于跨组件树传递数据的 API。它们允许你在祖先组件中使用 provide 提供数据或服务&#xff0c;然后在后代组件中使用 inject 来获取这些数据或服务。这种方式特别适用于跨多个层级的组件传递数据&#xff0c;而不需要…...

Nacos-1.4.6升级2.3.2

一、nacos-2.3.2部署(非升级测试步骤) 1、使用nginx进行代理 # nginx-1.25.5 docker run -d --name nginx-nacos --network nacos --privilegedtrue -v /data/nacos/nginx.conf:/etc/nginx/conf.d/default.conf -p 8848:8848 nginx:latest2、创建nacos服务 # nacos-2.3.2 do…...

无需模拟器!Windows运行安卓应用的革命性方案——APK-Installer轻量级安装工具全解析

无需模拟器&#xff01;Windows运行安卓应用的革命性方案——APK-Installer轻量级安装工具全解析 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与娱乐融…...

7个关键步骤:用Meshroom实现高精度三维重建的完整指南

7个关键步骤&#xff1a;用Meshroom实现高精度三维重建的完整指南 【免费下载链接】Meshroom 3D Reconstruction Software 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 开源三维重建工具Meshroom凭借摄影测量实战技术&#xff0c;为用户提供了从二维图像到点…...

AI绘画模型训练完全指南:3大核心优势与零代码实践

AI绘画模型训练完全指南&#xff1a;3大核心优势与零代码实践 【免费下载链接】sd-trainer 项目地址: https://gitcode.com/gh_mirrors/sd/sd-trainer Stable Diffusion训练技术已成为AI绘画领域的核心能力&#xff0c;但传统训练流程复杂、配置繁琐&#xff0c;让许多…...

在Jetson Orin Nano上手动编译部署AirSLAM:如何解决TensorRT模型转换(ONNX转Engine)的内存溢出问题

在Jetson Orin Nano上手动编译部署AirSLAM&#xff1a;解决TensorRT模型转换内存溢出的实战指南 1. 边缘设备部署AirSLAM的核心挑战 Jetson Orin Nano作为NVIDIA面向边缘计算推出的高性能模块&#xff0c;其4GB/8GB内存配置在运行复杂视觉SLAM算法时面临严峻的资源约束。AirSLA…...

pg_dump备份报错:Only syssso can access this table

文章目录环境症状问题原因解决方案环境 系统平台&#xff1a;N/A 版本&#xff1a;4.5.8 症状 使用pg_dump对数据库进行备份时报错&#xff1a; pg_dump:error:query failed:ERROR: Only syssso can access this table. pg_dump:error:query was: SELECT label, provider, …...

实测,用 AI (Stitch + Codex) 给产品做个官网

作为一个写了 10 年代码的老程序员&#xff0c;这几年听得最多的一句话就是&#xff1a; “AI 已经可以写代码、做设计了。” 但说实话&#xff0c;我一直是半信半疑的状态&#xff08;停留在 Cursor 刚出来的那会儿&#xff09;。 于是&#xff0c;今天我决定不看别人说&…...

Quartus II 13.1 NCO IP核调用失败?可能是这两个坑你没注意(附详细license配置指南)

Quartus II 13.1 NCO IP核调用深度排障指南&#xff1a;从环境配置到授权管理 1. 环境准备&#xff1a;Java运行时环境的隐形陷阱 在FPGA开发中&#xff0c;数字控制振荡器&#xff08;NCO&#xff09;IP核是实现高精度频率合成的关键组件。然而&#xff0c;当你在Quartus II 1…...

League-Toolkit技术解析:从原理到实践的全方位指南

League-Toolkit技术解析&#xff1a;从原理到实践的全方位指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是一…...

告别重复编码:用快马AI一键生成团队协作网盘高效开发框架

最近在开发一个团队协作网盘系统时&#xff0c;发现很多基础功能其实都是重复性工作。比如权限管理、文件版本控制这些模块&#xff0c;每个项目都要从头写一遍。后来尝试用InsCode(快马)平台的AI生成功能&#xff0c;效率提升特别明显。这里分享下我的实践心得&#xff1a; 权…...

Hitboxer终极指南:免费开源SOCD清洁工具让游戏操作更丝滑

Hitboxer终极指南&#xff1a;免费开源SOCD清洁工具让游戏操作更丝滑 【免费下载链接】socd SOCD cleaner tool for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 还在为游戏中的方向冲突而烦恼吗&#xff1f;当你在激烈的对战中同时按下左右方向键&a…...