首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TA码字

    k8s集群网络(11)-flannel vxlan overlay网络通讯

    在上一篇文章里我们介绍了k8s集群中flannel vxlan overlay网络的创建,这在里我们基于上一篇文章中的例子,来介绍在flannel vxlan overlay网络中pod到pod的通讯。 而这个flannel.1设备就是flannel启动的时候根据vxlan类型网络在宿主上创建的,它属于vxlan设备,会完成对二层eth以太数据包到udp数据包的封装与拆封。 其中的".1"代表vxlan这个二层网络id号为1,也对应了vxlan网络在etcd里的配置。 我们从pod 10.1.55.2的宿主172.20.11.42的路由表得知发往172.20.11.0/24网段为直连路由,使用宿主网络设备enp0s3发送。 总结flannel vxlan overlay网络pod到pod的通讯过程如下: 每个宿主都有名字为flannel.x的vxlan网络设备来完成对于vxlan数据的udp封包与拆包,upd数据在宿主的8472

    1.1K30发布于 2020-04-01
  • 来自专栏EdisonTalk

    ASP.NET Core on K8S深入学习(11K8S网络知多少

    这里我们采用杨波老师(架构师杨波)模仿TCP/IP协议栈总结的一个K8S网络模型图来看看K8S的四个抽象层次,从而了解一下K8S网络。 [Service网络模型图 (From 波波老师)]   (4)第3层:外部流量接入    K8s的Service网络只是一个集群内部网络,集群外部是无法直接访问的。 [ Load Balancer方式示意图 (From 波波老师)]   More:关于K8S网络的更多基本原理与讲解,强力推荐阅读波波老师的以下文章: Kubernetes网络三部曲-Pod网络(From CNI是一个Pod网络集成标准,简化了K8S和不同Pod网络实现技术的集成。CNI最大的优点就是支持多种容器runtime,而不仅仅是Docker。 CNI网络最强对比》 (5)杨波,《K8S网络三部曲》 (6)陈Sir,《K8S网络详解:CNI与CNI网络模型》

    82540发布于 2019-12-17
  • 来自专栏Linux基础入门

    11)Linux网络命令

    :ping 命令所在路径:/bin/ping 执行权限:所有用户 语法:ping 选项 IP地址 -c 指定发送次数 功能描述:测试网络连通性 例1:time越短,网络越好。同时在ping时我们重点关注packet loss,如果丢包率非常高,即使ping通了,说明网络状态也很差。 ? ? 4. 命令名称:netstat 命令所在路径:/bin/netstat 执行权限:所有用户 语法:netstat [选项] 功能描述:显示网络相关信息 选项: -t: 例2:netstat -an 查看本机所有网络链接 相对于-tlun,最大的区别在于,-tlun只能查看监听,-an可以查看正在连接的网络程序 ? 命令名称:setup 命令所在路径:/usr/bin/setup 执行权限:root 语法:setup 功能描述:配置网络 例1:输入setup后显示如下图 ?

    76620发布于 2020-08-26
  • 来自专栏灰子学技术

    K8S网络介绍

    一、背景介绍: 对于K8S里面容器之间的通讯基本上面可以分为三种类型: 1. POD里面不同容器之间的通讯: 因为同一个Pod里面的不同容器之间是共享同一个POD里面的网络资源,所以POD里容器之间的通讯基本上就是IPC之间的通讯方式,这个比较简单,不做详细介绍。 二、基础知识介绍: 网桥(Bridge): 在 Linux 中,能够起到虚拟交换机作用的网络设备,是一个工作在数据链路层(Data Link)的设备,主要功能是根据 MAC 地址学习来将数据包转发到网桥的不同端口 三、通讯过程介绍: 容器1的IP1访问容器2的IP2的交互过程如下所示: 1.在容器1中的路由规则里面查找IP2的地址,发现是是外部网络就会直接走容器1里面的eth0网卡(备注:走网卡的话,就是二层网路 从设备会被“剥夺”调用网络协议栈处理数据包的资格,从而“降级”成为网桥上的一个端口。

    81610编辑于 2022-01-18
  • 来自专栏Java编程技术

    K8s网络模型

    一、前言 k8s对Pods之间如何进行组网通信提出了要求,k8s对集群的网络有以下要求: 所有的Pods之间可以在不使用NAT网络地址转换的情况下相互通信 所有的Nodes之间可以在不使用NAT网络地址转换的情况下相互通信 每个Pod自己看到的自己的ip和其他Pod看到的一致 k8s网络模型设计基础原则:每个Pod都拥有一个独立的 IP地址,而且 假定所有 Pod 都在一个可以直接连通的、扁平的网络空间中 。 二、容器和容器之间的网络 ? image.png 在k8s中每个Pod中管理着一组Docker容器,这些Docker容器共享同一个网络命名空间。 对于如何来配置网络k8s网络这块自身并没有实现网络规划的具体逻辑,而是制定了一套CNI(Container Network Interface)接口规范,开放给社区来实现。 下面我们看看具体是如何做到的 4.1 netfilter 为了实现负载均衡,k8s依赖linux内建的网络框架-netfilter。

    4.2K24发布于 2019-04-18
  • 来自专栏csico

    K8s网络模型

    网络、host网络、none网络K8s网络模型 K8s术语 K8S 是一个用于容器集群的分布式系统架构。 K8s网络 K8s网络包括CNI、Service、Ingress、DNS 在K8s网络模型中,每个节点上的容器都有自己独立的IP段,节点之间的IP段不能重复,而节点也需要具备路由能力,使从本节点Pod里出来的流量可以根据目的 总结来说,K8s的容器网络重点关注两方面,IP地址分配和路由。 K8s主机内网络模型 K8s采用的是veth pair+bridge的模式,veth pair将容器与主机的网络协议栈连接起来,可以使pod之间通信。

    2.5K32发布于 2021-09-02
  • 来自专栏腾讯云TStack专栏

    k8s网络开发丨k8s与OpenStack网络如何打通?

    Kubernetes; 网络想做统一管理,k8s集群运行在OpenStack VM下, 如何做到更深层面的网络打通,典型的原因有: 1、 VM防arp欺骗,默认OpenStack虚拟机端口都开启了此功能 ;处于OpenStack VM里的k8s集群私有ip就无法扩节点通信,通过配置neutron port的allow_address_pairs可以放行私有ip; 2、Overlay网络损耗,再加上在虚拟机里部署 k8s集群,又跑了一层overlay网络网络开销又增大了; 可选方案 k8s网络使用underlay网络  对现有应用需大量改造,应用内部大量使用内部service机制来调用其它服务,不兼容旧模型,pod 使用的是underlay网络,性能卓越; k8s网络使用多种cni  k8s node运行ipvlan或macvlan+ptp的cni, node节点同时加载两个cni插件,ptp cni的作用是创建一对 适用于OpenStack和k8s集群是独立的环境,相当于由OpenStack接管service和NetworkPolicy,OpenStack实现变复杂; 最终选择k8s网络使用多种cni方案,基于保留

    4.2K40发布于 2020-11-30
  • Java EE(11)——初识网络

    这便是本文所要讨论的内容 IP地址 IP地址用于表示网络设备(如路由器)的网络地址。换言之,IP用于定位主机的网络地址。 网络通信为了解决上述问题,就引出了“协议”。协议又叫做网络协议,是网络数据传输经过的所有设备都必须遵守的一组约定和规则,协议最终体现在网络上传输的数据包的格式。 协议分层 网络通信是一件十分复杂的事情,需要的场景越复杂,要求就越高。 这里以UDP协议为例,在应用层数据包前面添加UDP报头,然后提交给网络层 UDP报头主要包含源端口和目的端口 3.网络网络层基于IP协议在UDP数据报前面添加IP报头,然后提交给数据链路层 3.网络网络层解析出IP报头,将IP数据报的载荷部分提交给传输层 4.传输层 传输层解析出UDP报头,将UDP载荷部分提交给应用层 5.应用层 应用层将数据包进行解析

    13510编辑于 2026-01-13
  • 来自专栏TA码字

    k8s集群网络(2)-宿主内网络

    在上一篇文章中我们概括了k8s集群网络大致包含哪些方面,包括服务在网络中的负载均衡方式(iptable和ipvs),以及underlay和overlay的组网。 在这里我们介绍宿主内的容器网络,当然我们还是以docker环境为例,介绍docker宿主环境中的容器网络。 Linux Network Namespace: 一提到linux网络,本质上就是由一系列组件组成,从而共同协作完成网络功能,一般这些组件包括: linux网络设备:例如network interface 这些设备可以完成网络数据包的收发,以及提供额外的修改数据包等功能。 下图用来表述宿主环境中的容器网络: ?

    1.1K40发布于 2020-04-01
  • 来自专栏IT大咖说

    K8S高级网络实战——CNI能否解决k8s网络模型缺陷

    内容来源:2018 年 1 月 10 日,灵雀云k8s首席专家刘梦馨在“云原生技术沙龙-北京站”进行《K8s高级网络实践》演讲分享。 Kubernetes的网络模型 Pod IP Kubernetes的网络模型主要分为三层。第一层是Pod的多个容器之间的互通,这层实现起来比较简单,因为所有的容器都共享一个网卡,所以可以直接通信。 另外每台Pod的网络路由和DNS都可以自行设置。 DHCP的随机分配模式在生产环境中很少得到应用,和容器网络也很难结合起来;host-local会限定每台机器的固定网络范围,增减机器的时候重新分配IP很困难。 未来我们可能会做一些更灵活的网络,通过插件在容器的生命周期内改变网络配置,包括固定MAC、动态路由、dns。另外还想要和现有系统解耦以及支持更多的网络模式。 以上为今天的全部分享内容,谢谢大家!

    88300发布于 2018-08-08
  • 来自专栏杨熹的专栏

    TensorFlow-11-策略网络

    AlphaGo 主要使用了快速走子,策略网络,估值网络,和蒙特卡洛搜索树等技术。 深度强化学习模型本质上也是神经网络,主要分为策略网络和估值网络。 ---- 今天要先来实现一下策略网络,就是要建立一个神经网络模型,可以通过观察环境状态预测出目前最应该执行的策略以及可以获得的最大的期望收益。 每个环境信息包含四个值,例如小车的位置速度等,我们不需要编写逻辑来控制小车,而是设计一个策略网络,让它自己从这些数值中学习到环境信息,并制定最佳策略。 我们的策略网络是要使用一个简单的带有一个隐含层的 MLP,隐含层节点数为10,环境信息的维度为4。 ? 用 reshape 得到策略网络输入的格式,然后获得网络输出的概率 tfprob,然后在 0-1 之间随机抽样得到 action,如果它小于这个概率就利用行动取值为1,否则为0。 ?

    85550发布于 2018-04-03
  • K8s】Kubernetes 网络之 Pod 网络调试

    基本介绍 在实际工作中,我们经常会遇到一些疑似网络方面的故障问题,从而需要对 Kubernetes 集群中的 Pod 进行网络调试。 但是由于最小化原则,Pod 的容器镜像中通常并不会安装 ping、curl、telnet、tcpdump 等调试工具,或者在 Pod 容器中可以临时安装工具、但是效率不高,都会给 Pod 网络调试带来困难 针对上述实际场景,笔者将在本文介绍一种 Pod 网络调试方法,以灵活应对网络调试需求。 Pod 网络调试 1、调试工具 nsenter 是 Linux 操作系统的一种命令行工具,允许用户进入指定进程的某个命名空间,并在该命名空间下灵活使用主机的命令行工具、执行特权操作等。 由此可见,我们可以通过 nsenter 进入 Pod 中容器(进程)的网络命名空间,利用 Node 节点已有的命令行工具实现对 Pod 进行网络调试。

    61810编辑于 2024-12-27
  • 来自专栏木二天空

    041.集群网络-K8S网络策略

    但仅定义一个网络策略是无法完成实际的网络隔离的,还需要一个策略控制器(Policy Controller)进行策略的实现。 策略控制器由第三方网络组件提供,目前Calico、Cilium、Kube-router、Romana、WeaveNet等开源项目均支持网络策略的实现。 1.2 网络策略配置 网络策略的设置主要用于对目标Pod的网络访问进行限制,在默认情况下对所有Pod都是允许访问的,在设置了指向Pod的Network Policy网络策略之后,访问Pod将会被限制。 namespace: default 6 spec: 7 podSelector: 8 matchLabels: 9 role: db 10 policyTypes: 11 policyTypes:网络策略的类型,包括ingress和egress两种,用于设置目标Pod的入站和出站的网络限制。

    1.5K40发布于 2020-03-27
  • 来自专栏TA码字

    k8s集群网络(6)-flannel underlay网络

    在这里我们主要介绍集群中的网络通讯,在以前文章中介绍过,对于容器之间的网络通讯基本分为两种,underlay方式和overlay方式。 我们在之前文章里采用的是基于flannel的underlay网络方式,所以这里主要介绍flannel underlay网络,以之前文章中安装的nginx-app为例: nginx-app的service 弦外之音,原始pod的host必须和目标pod的host在同一个二层网络里,因为只有这样才可以下一跳路由可达。 当然,这个也是flannel的underlay网络host gw方式的限制,既要求所有的k8s worker node节点都在同一个二层网络里(也可以认为是在同一个ip子网里)。 要求所有的worker node都在同一个二层网络里,来完成目标pod所在host的下一跳路由。

    1.3K20发布于 2020-04-01
  • 来自专栏木二天空

    038.集群网络-K8S网络实现

    一 Kubernetes网络实现 1.1 Kubernetes网络优势 在实际的业务场景中,业务组件之间的关系十分复杂,微服务的理念更是让应用部署的粒度更加细小和灵活。 二 Kubernetes网络通信 2.1 容器之间通信 同一个Pod内的容器(Pod内的容器是不会跨宿主机的)共享同一个网络命名空间,共享同一个Linux协议栈。 在Kubernetes使用如下方式利用Docker的网络模型: 如上图所示,在Node1上运行着一个Pod实例,且运行着容器1和容器2。 其实,这和传统的一组普通程序运行的环境是完全一样的,传统程序不需要针对网络做特别的修改就可以移植了,它们之间的互相访问只需要使用localhost就可以。 由于Kubernetes的网络对Pod的地址是平面的和直达的,所以这些Pod的IP规划也很重要,若需要在整个集群中进行寻址,必须保证IP不能有冲突。

    1.2K10发布于 2020-03-24
  • 来自专栏灰子学技术

    K8S跨Node网络

    其实K8S确实是按照这个思路来玩的,不过这里引入了一个新概念Overlay Network(覆盖网络):通过软件构建一个覆盖在已有宿主机网络之上的、可以把所有容器连通在一起的虚拟网络。 二、通讯过程介绍 K8S解决容器间的网络通讯方案,采用的是CoreOS公司提供的Flannel项目,该项目的实现方式有下面三种,我们会一一介绍。 1. 设计思想是:在现有的三层网络之上,“覆盖”一层虚拟的、由内核 VXLAN 模块负责维护的二层网络,使得连接在这个 VXLAN 二层网络上的“主机”(虚拟机或者容器都可以)之间,可以像在同一个局域网(LAN 3.CNI插件 K8S里面的网络模型与2中介绍的原理基本一致,只不过用cni0网桥替代了docker0网桥,详细交互过程不在介绍,如下图所示: CNI 的设计思想:Kubernetes 在启动 Infra 容器之后,就可以直接调用 CNI 网络插件,为这个 Infra 容器的 Network Namespace,配置符合预期的网络栈。

    77410编辑于 2022-01-18
  • 来自专栏我的小碗汤

    11 个常见 K8S 避雷指南详解

    网络:Kubernetes 网络涉及管理覆盖网络和服务端点,以确保容器之间的流量在集群内安全路由。 存储:集群中存储的安全包括确保数据不会被未经授权的用户或进程访问,并确保数据安全。

    66210编辑于 2024-04-19
  • 来自专栏Miigon's Blog

    笔记 Lab11: Networking | 网络

    Lab 11: Networking (hard) 熟悉系统驱动与外围设备的交互、内存映射寄存器与 DMA 数据传输,实现与 E1000 网卡交互的核心方法:transmit 与 recv。 return; } rx_mbufs[ind]->len = desc->length; net_rx(rx_mbufs[ind]); // 传递给上层网络

    68910编辑于 2022-10-27
  • 来自专栏TA码字

    k8s集群网络(3)-宿主内网络例子

    在这里我们主要结合实际例子,来看一下宿主环境中的容器网络。 image),而k8s中这个基础image的container和我们应用程序的image的container是共用同一个network namespace的。 对于10.1.27.0/24网络地址空间的访问都是直连访问,不需要下一跳ip地址。 route -n ? 根据以上信息总结docker宿主中的网络: 宿主中容器的网络地址空间一般为x.x.x.0/24,每一个container属于一个独立的network namespace。 container到容器的网络地址空间(x.x.x.0/24)的访问方式为直连,不需要下一跳ip。

    92330发布于 2020-04-01
  • 来自专栏木二天空

    036.集群网络-K8S网络模型及Linux基础网络

    一个Pod内部的所有容器共享一个网络堆栈(相当于一个网络命名空间,它们的IP地址、网络设备、配置等都是共享的)。 2.1 网络命名空间 为了支持网络协议栈的多个实例,Linux在网络栈中引入了网络命名空间,这些独立的协议栈被隔离到不同的命名空间中。 处于不同命名空间中的网络栈是完全隔离的,彼此之间无法通信。 通过对网络资源的隔离,就能在一个宿主机上虚拟多个不同的网络环境。Docker正是利用了网络的命名空间特性,实现了不同容器之间的网络隔离。 local 192.168.10.2/24 dev veth1 #设置对应的IP 10 [root@k8smaster01 ~]# ip netns exec ns0 ifconfig veth0 up 11 [root@k8smaster01 ~]# ip netns add ns3 9 [root@k8smaster01 ~]# ip netns add ns4 10 #创建namespace 11

    1.3K30发布于 2020-03-24
领券