上面左边是我的个人 微 信,如需进一步沟通,请加 微 信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。
Openstack部署安装后,租户网络默认是vxlan ,但是实际项目当中,更多的是租户使用vlan或者flat网络。这里在实验环境里面模拟一下生产环境中如何在安装的时候设置,实现租户vlan网络 。
还是使用3节点的实验环境,采用Ocata版本,使用一键式安装镜像安装完kolla之后,完成以下步骤:
注意:如果是重新部署,除了要执行kolla_ansible destroy 之外,还需要将ceph 的osd盘分区清除,使用fdisk 命令清除分区。
1.上传文件3node ,globals.yml文件 2.所有节点第二块硬盘分区打标签: parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1 查看结果: parted /dev/sdb print 3.control01配置ceph: 创建/etc/kolla/config/ceph.conf: [global] osd pool default size = 3 osd pool default min size = 1 新增:/etc/kolla/config/neutron-openvswitch-agent/ml2_conf.ini以及/etc/kolla/config/neutron-server/ml2_conf.ini 文件: [root@control01 config]# more ml2_conf.ini [ml2] tenant_network_types = 由于是虚拟化测试环境(VMWare或者PVE环境),需要开启qemu ,新增/etc/kolla/config/nova.conf 文件: [root@control01 config]# more nova.conf [libvirt] virt_type = qemu cpu_mode = none 4.修改/etc/kolla/globals.yml文件: 修改后的配置如下: kolla_base_distro: "centos" kolla_install_type: "source" openstack_release: "4.0.2.1" kolla_internal_vip_address: "192.168.170.160" docker_registry: "192.168.170.150:4000" docker_namespace: "kolla" network_interface: "eth0" neutron_external_interface: "eth1" designate_backend: "bind9" designate_ns_record: "sample.openstack.org" tempest_image_id: tempest_flavor_ref_id: tempest_public_network_id: tempest_floating_network_name: enable_cinder: "yes" enable_haproxy: "yes" enable_neutron_***aas: "yes" enable_neutron_lbaas: "yes" enable_neutron_fwaas: "yes" enable_chrony: "yes" enable_neutron_agent_ha: "yes" 注意,neutron_tenant_network_types: 这个参数,默认是vxlan ,这里我们设置为vlan 5.修改 /etc/docker/daemon.json ,将insecure-registry配置项取消 6.部署前 bootstrap-server: /root/kolla-ansible-4.0.3.dev36/tools/kolla-ansible -i 3node bootstrap-servers 7.部署前检查: /root/kolla-ansible-4.0.3.dev36/tools/kolla-ansible -i 3node prechecks 8.部署: /root/kolla-ansible-4.0.3.dev36/tools/kolla-ansible -i 3node deploy 执行完成后,检查ml2_conf.ini 文件,发现tenant_network_types 还是有vxlan参数,如下: [ml2] type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = openvswitch,l2population [ml2_type_vlan] network_vlan_ranges = [ml2_type_flat] flat_networks = physnet1 修改tenant_network_types 、network_vlan_ranges 参数后如下: [ml2] type_drivers = flat,vlan,vxlan tenant_network_types = vlan,flat mechanism_drivers = openvswitch,l2population [ml2_type_vlan] network_vlan_ranges = physnet1 [ml2_type_flat] flat_networks = physnet1 然后重启这2个容器: docker restart neutron_server docker restart neutron_openvswitch_agent 9.部署成功后执行post-deploy: /root/kolla-ansible-4.0.3.dev36/tools/kolla-ansible -i 3node post-deploy
注意,这里我没有执行init-runonce脚本,因为这个脚本默认是以vxlan方式初始化相关配置,我们这里使用的是vlan方式,因此,我们手工初始化镜像、网络、路由。当然,更快的方法是自己修改一下init-runonce这个脚本使之适应vlan。
下载并上传测试镜像cirros ,这里使用raw格式,可以先下载qcow2格式,然后转换,具体自行参考其他资料。
创建实例类型:
关键内容来了,创建vlan的network和subnetwork ,然后在这个vlan的network中创建虚拟机。创建2个network和subnetwork,分别在这个2个network中创建虚拟机,其中同一个network中创建2个虚拟机,测试同一个vlan的network内虚拟机是否通,再测试跨vlan虚拟机是否通。跨vlan需要创建路由器,后面再创建路由器,将2个vlan打通。
测试环境是pve,网卡不能设置trunk模式,没法测试。有些缺憾。