Cloud Native应用交付
  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
☁️We are in new App Mesh era: imesh.club ☁️
  1. 首页
  2. 化云为雨/Openstack
  3. 正文

Ubuntu 14.04安装openstack icehouse版本(多节点模式)

2014年12月18日 8315点热度 0人点赞 0条评论

在三台vmware的虚拟机上模拟安装三节点openstack,网络设计如下,该结构在控制节点上安装nova,glance,keystone,neutron, horizon, 在network节点上安装网络服务相关的各种plugin,计算节点上安装nova计算Opentack 多结点网络结构

在上述网络中,compute的 eth1 和 network的eth1 通过GRE tunnel构成二层互联,DHCP服务运行在network节点上,当一个vm在compute上启动后,dhcp服务可以通过GRE隧道给该vm自动分配IP。

在network节点上, eth2与br-ex接口同时连接在br-ex这个桥上,br-ex接口分配192.168.0.139的IP,eth2设置为混杂模式。当openstack配置external网络后,external网络接口被连接到br-ex桥上:

Shell
1
2
3
4
5
6
7
8
9
10
11
12
Bridge br-ex
        Port "eth2"
            Interface "eth2"
Port veth-ex
Interface veth-ex
type: internal
        Port br-ex
            Interface br-ex
                type: internal
Port "qg-6f726a6c-41"
            Interface "qg-6f726a6c-41"
                type: internal

 

条件准备:

1. ubuntu 14.04 64位版本

root@controller:/home/mycisco# lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

分别安装三台vm,安装时候只安装openssh服务,不要安装任何其他服务,保证vm能够连接互联网,我是利用上述的管理员位于vmware workstation网络的NAT网络中,因此可以通过管理口上网更新安装包

2.各台机器的安装按照下面这个文档进行:

https://github.com/ChaimaGhribi/OpenStack-Icehouse-Installation/blob/3d9581f92919fedbd984105cb24be623a40c56ec/OpenStack-Icehouse-Installation.rst

整个过程可以完全step by step这个文档,只是需要将相关IP或者hostname替换为自己的,我没有使用hostname,所以所有配置文件中都是配的IP

==========
各节点安装的服务内容
==========

控制节点:
apt-get install -y nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy nova-scheduler python-novaclient
neutron
apt-get install -y neutron-server neutron-plugin-ml2

controller

网络节点:
apt-get install -y vlan bridge-utils
apt-get install -y neutron-plugin-ml2 neutron-plugin-openvswitch-agent dnsmasq neutron-l3-agent neutron-dhcp-agent

network-openstack

计算节点:
apt-get install -y kvm libvirt-bin pm-utils
apt-get install -y nova-compute-kvm python-guestfs
apt-get install -y neutron-common neutron-plugin-ml2 neutron-plugin-openvswitch-agent

compute-openstack

 

Openstack 网络理解:
一个虚机的数据外出的路径path:
1 计算节点上执行 /var/lib/nova/instances/***instaneID***/libvirtu.xml中找到:
<source bridge="qbrfe14f930-df"/>
<target dev="tapfe14f930-df"/>
source bridge是 ifconfig输出里的qbr开头的接口,这个bridge负责vm和linux host系统之间的桥接. tap即表示该vm上的自身的虚拟接口。

2. 查找qbr对应桥包含哪些port,计算节点上执行 brctl show:

1
2
3
4
5
6
7
8
root@compute:/home/mycisco# brctl show
bridge name     bridge id               STP enabled     interfaces
qbr01f68373-1a          8000.a2973af9e29b       no              qvb01f68373-1a
qbr02cbe170-46          8000.928b3817502b       no              qvb02cbe170-46
qbrd1b64bc7-d8          8000.aec37b36f441       no              qvbd1b64bc7-d8
qbrfe14f930-df          8000.c69b1321712b       no              qvbfe14f930-df
tapfe14f930-df
virbr0          8000.000000000000       yes

可以看到qbrfe14f930-df 上连接了两个端口,一个是tapfe14f930-df一个是qvb开头的接口,tap是vm自己接口, qvb是 oopenvswitch中br-int这个桥的一个接口,这样vm的接口

就和ovs连接起来。

3. 查看ovs中各个接口情况,计算节点上执行 ovs-vsctl show

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
root@compute:/home/mycisco# ovs-vsctl show
b5553502-95e4-4ad2-90a6-a3da02d3819d
Bridge br-tun
Port "gre-0a0a648b"
Interface "gre-0a0a648b"
type: gre
options: {in_key=flow, local_ip="10.10.100.140", out_key=flow, remote_ip="10.10.100.139"}
Port br-tun
Interface br-tun
type: internal
Port patch-int
Interface patch-int
type: patch
options: {peer=patch-tun}
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port "qvo02cbe170-46"
tag: 2
Interface "qvo02cbe170-46"
Port "qvod1b64bc7-d8"
tag: 1
Interface "qvod1b64bc7-d8"
Port patch-tun
Interface patch-tun
type: patch
options: {peer=patch-int}
Port "qvo01f68373-1a"
tag: 3
Interface "qvo01f68373-1a"
Port "qvofe14f930-df"《《《《《《《《《《《《《《《《《《《《《《《《
tag: 2
Interface "qvofe14f930-df"
ovs_version: "2.0.2"

qvofe14f930-df这个接口其实就对应于qvbfe14f930-df。

4. 然后只要 br-int这个桥中有一个接口和另一个包含有实际linux host物理口的桥对接上,本例实际是物理接口形成的GRE 隧道

所以针对上述实验网络数据去公网或者两个tenant之间的数据路由path逻辑就是:
compute节点的vm interface(tap***)---qbr****-qvb****(br-int桥里的qvo****)---gre tunnel(br-int桥里的tunnel 端口)----br-tunnel 桥(tunnel通道)----network节点br-tunnel--network节点的br-int----路由器接口.....

下面这张图清晰描述了一个compute主机内vm是如何和provide网络通信的(vlan tagged 网络类型):

openstack-vm-network

-------------------------------------------------------------

网络节点上ovs-vsctl show输出意义
qr-****表示路由器接口
tap***一般会代表一个设备接口,例如代表dhcp服务器接口,注意根据ID和GUI上各个设备或者网络的ID来对应

brctl show在 计算节点上输出linux的 bridge
ovs-vsctl show 在网络节点上输出ovs的bridge
ip netns list 网络节点上输出namespace

----------------------------------------

demo-openstack

------
如何查看openstack中虚拟路由器的内部路由,接口情况,或模拟路由器上执行命令:
1. ip netns show 获得路由器的namespace

Shell
1
2
3
4
root@network:/home/mycisco# ip netns show
qdhcp-70f7aa46-b66b-455e-896e-05f94a08fcb8
qrouter-040c1455-6096-4806-ba91-fec64cdaed81 <<<<<<<<<<<
qdhcp-4e3f621f-d6b9-4438-be58-aa51d3c2e061

 

2. 在namespace的上下文中执行名利即可

Shell
1
2
3
4
ip netns exec qrouter-040c1455-6096-4806-ba91-fec64cdaed81  ip route
ip netns exec qrouter-040c1455-6096-4806-ba91-fec64cdaed81  ifconfig
ip netns exec qrouter-040c1455-6096-4806-ba91-fec64cdaed81  ping 。。。
ip netns exec qrouter-040c1455-6096-4806-ba91-fec64cdaed81  iptables-save

-------------------------------------------
在openstack的GUI上配public 网络的步骤
1. admin--network 下配置一个网络,该子网的网段填写和物理机对外连接网络相同IP, 网关填写外部网络的真实网关
2. project-routers 直接点击set router gateway 并选择对应的public网络。 此步操作后,网络节点上,系统将自动在bri-ex桥中加入一个qg-****这样的接口,这个qg接口就是GUI界面上external网络的路由器接口。

 

注:如果想在ubuntu 12版本上安装havana的话,可以参考

http://www.revolutionlabs.net/2013/11/part-1-how-to-install-openstack-havana.html

我曾按照这个在14.04上安装,出现各种问题,虽然最后google解决,并安装出来,horizon上操作时候总是会报未授权错误,虽然操作还能继续。。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 14.04 bigip F5 icehouse openstack ubuntu
最后更新:2014年12月24日

纳米

http://linjing.io

打赏 点赞
< 上一篇
下一篇 >

纳米

http://linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 分类目录
    • Avi Networks (3)
    • Cisco ACI (1)
    • CISCO资源 (21)
    • F5 with ELK (8)
    • F5-Tech tips (38)
    • F5技术 (203)
    • Juniper (4)
    • Linux (7)
    • Nginx (18)
    • SDN (4)
    • ServiceMesh (19)
    • WEB编程 (8)
    • WINDOWS相关 (7)
    • 业界文章 (18)
    • 交换机技术 (20)
    • 化云为雨/Openstack (35)
    • 协议原理 (52)
    • 容器/k8s (64)
    • 我的工作 (19)
    • 我的生活 (70)
    • 网站技术 (19)
    • 路由器技术 (80)
    • 项目案例 (28)
    文章归档
    标签聚合
    F5 k8s openstack nginx istio DNS envoy gtm docker network flannel api irule bigip neutron cc kubernetes ELK vxlan BGP dhcp VPN IPSec lbaas ingress ingress controller nginx plus sidecar IPSec VPN NAT sql
    最新 热点 随机
    最新 热点 随机
    Say hello for 2021 二进制flannel部署,非cni网络模式下与k8s CIS结合方案 又是一年国庆 Service Account Token Volume Projection Istio ingressgateway 静态TLS证书加载与SDS发现方式配置区别 Istio里Gateway的port定义与实际ingressgateway的listener端口关系及规则 Helm 3 部署NGINX Ingress Controller 应用交付老兵眼中的Envoy, 云原生时代下的思考 Istio sidecar iptables以及流量控制分析 Istio 熔断策略及envoy配置
    Say hello for 2021
    博客备案终于好了,终于可以重新开博了~ docker 容器粗体验之:快速搭建 Wordpress in containers F5 offload ssl and 2 way certificate 如何为CIS发现的服务提供备份访问服务 看看谁的网名最厉害-一个有有点搞笑的FLASH CMI, Device group 同步逻辑图解 Web Accelerator v11 update GTM Essentials,详细介绍GTM重要知识点 UPDATED TO V1.5.2 Cisco ACI - F5 协同演示 F5 DDOS/DOS防御 部署白皮书/参考手册/实践推荐
    链接表
    • Jimmy Song‘s Blog
    • SDNap
    • SDNlab
    • SDN论坛
    • Service Mesh社区
    • 三斗室
    • 个人profile

    COPYRIGHT © 2020 Cloud Native应用交付. ALL RIGHTS RESERVED.

    THEME KRATOS MADE BY VTROIS

    京ICP备14048088号-1

    京公网安备 11010502041506号

    [ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin