首页 > 其他分享 >k8s容器网络ovs vxlan流向总结

k8s容器网络ovs vxlan流向总结

时间:2024-06-08 17:55:05浏览次数:27  
标签:iptables ovs 网关 容器 主机 网卡 路由 k8s vxlan

ovs流表刷在br-int网桥上。
容器网卡eth0另一端在ovs br-int网桥上。
容器网关gw在br-int网桥上,ip地址是从pod网段中分配。
br-int网桥上有vxlan类型ovs端口,用于封包和解包。

同节点

主机->容器

路由判断->
iptables OUTPUT->iptables POSTROUTING->
容器网关->容器网卡

ping 容器IP通,主机网卡上抓不到包,因为根据路由判断后走容器网关,不经过主机网卡。
ping -I 主机网卡 容器IP不通,因为根据路由判断,无法走到容器网关。

容器->主机

容器网卡->路由判断->容器网关->
iptables PREROUTING->路由判断->iptables INPUT

主机网卡上抓不到包,原因是作为网桥端口的容器网关与宿主机网卡处于同一个内核协议栈,不需要转发到主机网卡即可响应。
配置hostgw后,外部主机访问k8s集群内部主机容器网关,容器网关上也抓不到包,原因相同。

容器->容器

容器网卡a->br_int->容器网卡b

跨节点

主机->容器

容器网卡a->路由判断->
iptables OUTPUT->iptables POSTROUTING->
容器网关->br_int->vxlan->
iptables OUTPUT->iptables POSTROUTING->
同节点主机网卡->跨节点主机网->
iptables PREROUTING->路由判断->iptables INPUT->
vxlan->br_int->容器网卡b

ping -I 主机网卡 容器IP不通,因为根据路由判断后无法走到容器网关。

容器->主机

iptables SNAT,源IP是容器IP,目的IP不是该容器网络网段,走MASQUERADE。
容器网卡->路由判断->容器网关->
iptables PREROUTING->路由判断->iptables FORWARD->iptables POSTROUTING(SNAT)->
同节点主机网卡->跨节点主机网卡

容器->容器

容器网卡->br_int->vxlan->
iptables OUTPUT->iptables POSTROUTING->
同节点主机网卡->跨节点主机网卡->
iptables PREROUTING->路由判断->iptables INPUT->
br_int->跨节点容器网卡

标签:iptables,ovs,网关,容器,主机,网卡,路由,k8s,vxlan
From: https://www.cnblogs.com/WJQ2017/p/18238810

相关文章

  • 使用jasypt 和 k8s 避免项目中写数据库连接密码
    0引入jasypt<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version></de......
  • k8s里node 宕机后如何提高pod迁移速度
    大概的配置参数:  node故障后,pod会迁移到正常的node上,迁移时间大概8分钟左右,如果是微服务,注册到nacos,服务不受影响,但是对于其他的服务,请求中会有大量失败。 需要几个流程:kubelet自身会定期更新状态到apiserver,通过kubelet的参数node-status-update-frequency配置......
  • k8s学习--ingress详细解释与应用(nginx ingress controller))
    文章目录lngress简介什么是IngressIngress的用途Ingress的工作原理Ingress的工作流程Ingress的应用场景应用实验环境部署nginxingresscontroller1.安装metalLB2.nginxingresscontroller部署3.ingress对象应用案例(基于名称的负载均衡)(1)创建deployment控制......
  • k8s中ingress访问不到服务
    情况:通过k8s部署nacos,部署之后,测试通过service进行访问,但是通过ingress域名访问失败。原因:1、我的ingress-controller部署时使用的是deployment,该方式,只会在一个节点上部署pod,而不是全部的pod上进行部署。2、采用的网络使用的hostNetwork:true,这种方式使用的是本机的网络,除非......
  • 夜莺nightingale的一些k8s指标
    在夜莺nightingale的安装与启动中已经二进制安装了夜莺系统,其web地址为http://<ip>:17000/,默认用户是 root,密码是 root.2020。登录后需要修改密码。使用夜莺系统,主要是使用其告警功能,其告警功能方便易用。本次项目告警设置为:项目通过邮件发送给各项目管理人,系统告警通过企业......
  • k8s——pod控制器
    一、pod控制器定义  Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。二、pod控制器类型ReplicaSet:代用户创建指定数量的pod副本,确保pod副本数量符......
  • k8s——secret配置资源管理
    一、Secret 1.1Secret定义  Secret是用来保存密码、token、密钥等敏感数据的k8s资源,这类数据虽然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。 1.2Secret类型kubernetes.io/service-account-token:由Kubernetes......
  • k8s——安全机制
    一、安全机制说明  Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。APIServer是集群内部各个组件通信的中介,也是外部控制的入口。所以Kubernetes的安全机制基本就是围绕保护APIServer来设计的。 比如kubectl如果想向APIServer请求资......
  • k8s 集群升级
    1.升级概要k8s版本:以x.y.z表示,其中x是主要版本,y是次要版本,z是补丁版本,不能跳过次要版本升级,比如1.28.0->1.30.0,补丁版本可以跳跃更新,比如1.28.0->1.28.10推荐使用与版本匹配的kubelet和kubeadm,最好各组件版本保持一致升级后,因为容器spec的哈希值已更改,所有容器都......
  • k8s - namespace
    简介命名空间,可以根据ns区分业务线、应用、权限一般默认命名空间指向default,可以在kubeconfig中修改默认配置清单文件apiVersion:v1kind:Namespacemetadata:#命名空间名称name:yky常用操作#创建名为yky的nskubectlcreatensyky#删除名为yky......