OpenStack——Neutron安装

Neutron概览

Neutron中最为核心的工作便是对二层物理网络的抽象和管理

组成部分


  • neutron-server :接收和路由API请求到合适的OpenStack网络插件,以达到预想的目的。
  • OpenStack Networking plug-ins and agents:

插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。
  • Messaging queue
    大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态

控制节点数据库创建

为Neutron创建数据库

    mysql  -u root -p
    CREATE DATABASE neutron;
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
    IDENTIFIED BY 'NEUTRON_DBPASS';
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
     IDENTIFIED BY 'NEUTRON_DBPASS';

创建neutron用户和服务实例、端点

     openstack user create --domain default --password-prompt neutron
     openstack role add --project service --user neutron admin

创建服务实例

openstack service create --name neutron   --description     "OpenStack Networking" network 

创建服务端点

    openstack endpoint create --region RegionOne   network public http://controller:9696
    openstack endpoint create --region RegionOne  network internal http://controller:9696
    openstack endpoint create --region RegionOne network admin http://controller:9696

配置控制节点的网络选项(不支持私有网络)

安装服务和代理服务模块

    apt-get install neutron-server neutron-plugin-ml2 \
    neutron-linuxbridge-agent neutron-dhcp-agent \
    neutron-metadata-agent

网络服务器(现在是controller节点)的配置修改

/etc/neutron/neutron.conf配置文件如下:

    [database]
    ...
    connection =mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron 
    [DEFAULT]
   ...
   core_plugin = ml2
   service_plugins =

   [DEFAULT]
   ...
  rpc_backend = rabbit

  [oslo_messaging_rabbit]    
  ...
  rabbit_host = controller
  rabbit_userid = openstack
  rabbit_password = RABBIT_PASS

   [DEFAULT]
  ...
  auth_strategy = keystone

  [keystone_authtoken]
  ... 
  auth_uri = http://controller:5000
  auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = neutron
    password = NEUTRON_PASS


    [DEFAULT]
    ...
    notify_nova_on_port_status_changes = True
    notify_nova_on_port_data_changes = True

    [nova]
    ...
    auth_url = http://controller:35357
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = nova
    password = NOVA_PASS


/etc/neutron/plugins/ml2/ml2_conf.ini
ML2插件使用Linux桥接机制为实例创建layer-2 (桥接/交换)虚拟网络基础设施

[ml2]
...
type_drivers = flat,vlan
[ml2]
...
tenant_network_types =   #禁用私有网络选项
[ml2]
...
mechanism_drivers = linuxbridge
[ml2]
...
extension_drivers = port_security  #启用端口安全扩展驱动

[ml2_type_flat]
...
flat_networks = provider #配置公共flat提供网络
[securitygroup]
...
enable_ipset = True

/etc/neutron/plugins/ml2/linuxbridge_agent.ini
为实例创建包括私有网络的VXLAN隧道和处理安全组的layer-2(桥接/交换)虚拟网络设施

    [linux_bridge]
    physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
    [vxlan]
    enable_vxlan = False#因为没有私有网络的功能所以禁用
    [securitygroup]
    enable_security_group = True
    firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

/etc/neutron/dhcp_agent.ini

    [DEFAULT]
    interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
    dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
    enable_isolated_metadata = True

配置控制节点的元数据代理

/etc/neutron/metadata_agent.ini

[DEFAULT]
...
nova_metadata_ip = controller
metadata_proxy_shared_secret = METADATA_SECRET

配置控制节点的计算服务使用网络

/etc/nova/nova.conf

    [neutron]
    ...
    url = http://controller:9696
    auth_url = http://controller:35357
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = neutron
    password = NEUTRON_PASS

    service_metadata_proxy = True
    metadata_proxy_shared_secret = METADATA_SECRET

同步数据库并重启

    su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
    --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
    init 6  

计算节点配置

安装网桥代理组建

    apt-get install neutron-linuxbridge-agent

配置neutron服务(/etc/neutron/neutron.conf)

    [DEFAULT]
    ...
    rpc_backend = rabbit

    [oslo_messaging_rabbit]
    ...
    rabbit_host = controller
    rabbit_userid = openstack
    rabbit_password = RABBIT_PASS
    [DEFAULT]
    ...
    auth_strategy = keystone

    [keystone_authtoken]
    ...
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    memcached_servers = controller:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = neutron
    password = NEUTRON_PASS

*配置计算节点的Linux bridge服务

    [linux_bridge]
    physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME(改成eth1)
    [vxlan]
    enable_vxlan = False
    [securitygroup]
    enable_security_group = True
    firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

配置计算节点的计算服务使用网络

    [neutron]
    ...
    url = http://controller:9696
    auth_url = http://controller:35357
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = neutron
    password = NEUTRON_PASS

验证服务

    neutron agent-list

如果列表host里出现compute1,就已经成功了。
参考:
http://docs.openstack.org/mitaka/install-guide-ubuntu/common/get_started_networking.html

网络配置解释

  • Flat network:基于不使用 VLAN 的物理网络实现的虚拟网络。每个物理网络最多只能实现一个虚拟网络。

  • Provider network: 基于不使用 VLAN 的物理网络实现的虚拟网络。每个物理网络最多只能实现一个虚拟网络。

    • /etc/neutron/plugins/ml2/ml2_conf.ini 这个配置文件其实是Neutron ML2模块的配置文件。这个模块统一管理着 Layer 2 网络的虚拟化(Neutron支持L2-L7的虚拟化),目前支持 Open vSwitch,linux bridge,SR-IOV 等虚拟化 。在上面的配置选项中,我们选择了linux bridge这个代理。
  • 网络类型的支持由 ML2 的 types drivers 来完成。’local’,’flat’,’vlan’,’gre’,’vxlan’,’geneve’。实际上就是 ML2 内部所有支持的网络类型。
    下面是ML2的工作方式
    这里写图片描述

ML2和agent之间的关系:
这里写图片描述
OpenStack网络类型(管理,数据,外接和API):
这里写图片描述
Flat结构:
这里写图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenStack中,RabbitMQ是消息代理的核心组件,负责处理各种消息,包括API请求、队列通信和通知。为了保证高可用性和可扩展性,我们可以将RabbitMQ部署为集群。 以下是在OpenStack中部署RabbitMQ集群的步骤: 1. 安装RabbitMQ软件包 在每个节点上安装RabbitMQ软件包。可以使用以下命令进行安装: ``` sudo apt-get install rabbitmq-server ``` 2. 配置RabbitMQ 在每个节点上,编辑RabbitMQ配置文件/etc/rabbitmq/rabbitmq-env.conf,指定以下环境变量: ``` NODE_IP_ADDRESS=<本地IP> NODE_PORT=5672 CLUSTER_WITH=<其他节点IP> ``` 其中,NODE_IP_ADDRESS是本地IP地址,CLUSTER_WITH是其他节点的IP地址。这些变量将用于RabbitMQ节点间通信。 3. 启用RabbitMQ插件 在每个节点上启用RabbitMQ集群插件。可以使用以下命令启用插件: ``` sudo rabbitmq-plugins enable rabbitmq_management rabbitmq_peer_discovery_aws ``` 4. 启动RabbitMQ节点 在每个节点上启动RabbitMQ节点。可以使用以下命令启动节点: ``` sudo rabbitmq-server -detached ``` 5. 将节点加入集群 在任何一个节点上,执行以下命令将节点加入集群: ``` sudo rabbitmqctl stop_app sudo rabbitmqctl join_cluster rabbit@<其他节点名称> sudo rabbitmqctl start_app ``` 其中,<其他节点名称>是集群中的其他节点的名称。 6. 验证集群状态 在任何一个节点上,执行以下命令验证集群状态: ``` sudo rabbitmqctl cluster_status ``` 如果输出包含所有节点的信息,则集群已成功部署。 注意:在部署RabbitMQ集群时,需要确保集群节点之间的网络连接正常,并且防火墙已正确配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值