openvswitch centos opendaylight
大家好,今天来为大家解答openvswitch centos这个问题的一些问题点,包括opendaylight也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
OpenShift (OKD) 简介
OpenShift(OKD):云平台的创新力量
OpenShift,由红帽(Red Hat)主导的开源云平台,以其独特的PaaS(平台即服务)特性崭露头角。作为容器应用部署的前沿,它让开发者能在Kubernetes核心架构之上,加速应用的开发、部署和扩展,为企业的应用持续集成与交付提供了强大支持。
在OpenShift的广阔天地里,开发、测试、部署与运维全程自动化,无论是对容器管理(Docker)的需求,还是对Kubernetes容器编排的掌控,都一应俱全。它是首个在企业级环境中为Java开发者量身打造的PaaS平台,兼容JEE6、JBoss和Eclipse,以及Maven和Jenkins的自动化流程。
OpenShift的底层技术基石
OpenShift的构建基于Docker的高效容器引擎和Kubernetes的容器编排力量。Docker为应用提供稳定、安全的运行环境,而Kubernetes则在集群管理、高可用性、安全性和持续集成上发挥核心作用,满足大规模容器集群的调度、网络、存储和性能要求。
OpenShift的功能包括:Docker容器引擎、Kubernetes编排、支持Java、Python等多语言的开发框架和中间件,如Tomcat、MySQL等;应用及服务目录、自动化构建工具S2I,以及OpenVSwitch的软件定义网络,确保了性能监控与日志管理的强大功能。此外,它还提供了友好的用户界面、oc命令行工具和Ansible的自动化部署与管理。
OpenShift与Kubernetes的对比与协作
尽管OpenShift内嵌了Kubernetes,但两者在概念上有所区分:OpenShift是PaaS,而Kubernetes是CaaS。OpenShift支持多种Linux发行版,如RHEL和CentOS,而Kubernetes则更倾向于Ubuntu、Fedora和Debian等。OpenShift的Web UI提供直观的管理界面,而Kubernetes的可视化需要额外配置和身份验证。
在网络层面,OpenShift自带OpenVSwitch的网络解决方案,而Kubernetes则为第三方网络插件提供接口。然而,共同点在于,两者都提供了关键的容器调度、弹性伸缩、异常处理和持久卷等功能。
OpenShift v4的革新突破
OpenShift v4带来了显著的更新。安装过程更简化,通过配置清单文件快速部署,同时引入Red Hat CoreOS,与集群紧密集成,减少了底层主机的管理负担。Kubernetes Operators的引入,使得应用程序的部署和管理更为智能化和高效。最后,新的Web界面拆分为开发者和管理员部分,集群配置统一管理,提升了用户体验。
总结来说,OpenShift以其强大的功能、自动化流程和不断演进的特性,成为企业云平台的首选,助力企业在容器化世界中实现无缝的开发、部署和运维。
openstack neutron网络介绍
由于网络部分出现了许多得新名词。将从整体到分部细致讲解。
来源于网络得一张图
如图所示,连成了一条线。重要得如何实现互联,接下来以表象论证这张图。
最好将图放在一边,边看边对照图。
这里先介绍从虚拟机访问外网。端口A开始:
表现出来就是虚拟机有张网卡A。
查询此虚拟机得子网ip为 10.1.1.5,以及所在节点,记住这个节点。
通过子网ip查询到端口id为 b65c1085-a971-4333-82dc-57012e9be490
记住这个id
图中A与B互联,意味着A与B一定具有某种映射关系。
若没有此命令则安装: yum install-y bridge-utils
可以看到这个id对应的tap设备!
veth pair是什么?后面再介绍。
由图可知,端口B(qvbXXX)和端口C(tapXXX)在同一个linux网桥上。它们俩互通了。
端口D在ovs网桥上。C和D的互联是veth pair的特性。
由图可以看出,qvoXXX在ovs网桥上,qvb在linux网桥上。它们之间的互联是veth pair的特性,它们就像一根导线的两端。
ovs查询命令:
这里可以看到3种网桥: br-int、br-tun、br-ex。这里有个印象就好。
仔细的查看一下,可以看到qvoXXX在br-int网桥上。
至此D端口也找到了
E、F端口通过ovs网桥自身连接。
ovs-vsctl show可以看到两个patch类型的端口,用于连接br-int和br-tun。类似于veth pair。
ovs-vsctl show可以在br-tun网桥上看到vxlan类型的端口,并注明本地ip和remote ip,通过此类型端口,将不同的物理环境互联,对于上层好似就一个网桥。再者br-tun网桥还与br-int互联,这意味,对于再上一层的应用,似乎只有一个br-int。
和【E】【F】相同。
此时携带源ip为子网的流量到达M端口,而L端口得网段为外网网段,因此M网段的流量此时无法直接进入L端口。借助router(网络命名空间),使用iptables,将M端口流量的源ip转换为外网网段。此时流量可进入L端口从而访问外网。(M与N之间连通性非网络对实现,而是ovs tap设备实现。网络对的一个明显特征为 ip a可以看到@符号连接两个端口)
找到虚拟机所在租户的路由id
本机为 894699dc-bc60-4b5e-b471-e95afa20f1d7
根据路由id找到网络命名空间
在所有节点上执行如下命令,找到对应id的qrouter
ip netns
本环境为:qrouter-894699dc-bc60-4b5e-b471-e95afa20f1d7
在此网络命名空间的节点上执行(如下命令意义为进入网络命名空间):
此时已进入网络命名空间。
查看ip
可以看到qg和qr开头的网卡名称。qg为弹性ip地址组,qr为子网网关。此时在虚拟机所在节点上查询ovs网桥,可以在br-int看到与此同名的qg和qr端口。
由于是源地址转换,因此先路由再转换源ip(iptables规则)。
查看路由规则:
route-n
第一条可以看到外网的网关,通过qg网卡发送,规则正好匹配。
选好路由规则之后,进行更改源ip。
可以看到 neutron-l3-agent-float-snat(配置了弹性ip才会出现)、neutron-l3-agent-snat。因为neutron-l3-agent-float-snat优先级高于neutron-l3-agent-snat,如果没有配置弹性ip,则会将源ip改为该路由的外网ip;如果配置了弹性ip则会将源ip改为弹性ip。
总的来说,流量从qr出去绕了一圈(网络命名空间)改变了源ip又从qg进入,然后通过ovs patch进入br-ex。
br-ex如何与外网连接的呢?进入网络节点查看ovs网桥:
可以看到 br-ex与em3网卡互联。因此流量直接走em3出去。还记得你这张网卡是干嘛的吗?是那张不配置ip的物理网卡!
通过iptables的prerouting可以看出,在进入之前修改了目的弹性ip为子网ip,后经路由转发。另,网络命名空间可以通过arp发现子网ip与mac地址的对应关系。
lbaas,负载均衡
dhcp,dhcp服务。
通过前面说的br-tun实现。如果没有单独划分网络,则使用管理网网段。若单独配置了tunnel网络,则br-tun里的网络使用tunnel网络。
br-tun里定义了vxlan,并且指定了 local_ip、remote_ip。根据这两个ip以及路由信息,可以确定 br-tun通过哪张网卡与外部通信。也是因此可以为tunnel配置专用网卡。
都是通过iptables实现。
防火墙:qrouter网络命名空间中得iptables实现。
安全组:虚拟机所在得宿主机得iptables实现。
可以看到防火墙规则。
可以看到对应端口id得安全组规则。
已经知道了qrouter利用nat表实现弹性ip与子网ip之间的映射,但是如何从外部访问到qg网卡的?
这里做了一个简单的模拟操作:
dnsmasq实现。
kolla-ansible的dnsmasq日志相对路径参考:neutron/dnsmasq.log(可通过dnsmasq.conf找到日志路径)
日志中可以看到dhcp的详细过程。过程参考如下:
文档参考:
dhcp也通过网络命名空间实现,名称由网络id决定。dhcp可以拥有多个,通过neutron.conf中 dhcp_agents_per_network决定。
另:centos7虚拟机中的/var/log/messages也记录了dhcp相关操作。
network qos可以理解为网络流量限制,官方名称:网络质量即服务
本环境通过openvswitch实现的qos。
如上图为设置的带宽限制规则。
根据端口号查看流表,命令参考:
上图标记的104就为dscp mark乘 4的结果,乘4是一种规范。
Ubuntu 23.10通过APT安装Open vSwitch
欢迎各位,新年好!
在前文讨论过OpenStack的架构时,提及了Open vSwitch作为构建虚拟网络环境的重要组件。然而,近期在CentOS上部署Open vSwitch遇到挑战,因此本文聚焦于如何在Ubuntu 23.10上安装和配置Open vSwitch,为搭建虚拟网络环境提供指导。
首先,进行系统更新确保软件包最新。
接着,查看与Open vSwitch相关的软件包,关注到包含IPsec、PKI、VTEP、DPDK等功能的版本为3.2.0,与最新版本3.2.1稍有差异,但不影响使用。
关键安装包括openvswitch-switch,作为Open vSwitch的核心,提供虚拟交换机功能;openvswitch-common,作为通用组件及依赖库,支持其他Open vSwitch软件包;openvswitch-doc,提供官方文档,包括用户手册和开发者指南。
安装后,确认Open vSwitch已启动,并设置为开机自启动。
检查当前安装的Open vSwitch版本,版本号为3.2.0,内建数据库schema版本为8.4.0,通过ovs-vsctl工具进行配置。
创建名为tietou的Open vSwitch网桥,操作后确认新网桥成功创建。
使用ovs-vsctl工具查看详细信息,确认OVS系统ID、网桥名称、端口等信息,展示Open vSwitch系统运行状态与配置。
至此,Ubuntu 23.10环境下Open vSwitch的安装与基本配置已完成,为构建虚拟化网络环境提供了基础。