OpenStack Train版-12.創建虛擬網絡並啟動實例(控制節點)


使用VMware虛擬機創建網絡可能會有不可預測到的故障,可以通過dashboard界面,管理員創建admin用戶的網絡環境

1.第一種: 建立公共提供商網絡
在admin管理員用戶下創建

source ~/admin-openrc

openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider
#參數解釋:
--share 允許所有項目使用虛擬網絡
--external 將虛擬網絡定義為外部,如果想創建一個內部網絡,則可以使用--internal。默認值為internal
--provider-physical-network provider 
#指明物理網絡的提供者,provider 與下面neutron的配置文件對應,其中provider是標簽,可以更改為其他,但是2個地方必須要統一
#配置文件/etc/neutron/plugins/ml2/ml2_conf.ini中的參數
[ml2_type_flat]
flat_networks = provider
[linux_bridge]
physical_interface_mappings = provider:eth0
--provider-network-type flat 指明這里創建的網絡是flat類型,即實例連接到此網絡時和物理網絡是在同一個網段,無vlan等功能。
最后輸入的provider 指定網絡的名稱 

在網絡上創建一個子網 192.168.0.0/24 ; 子網對應真實的物理網絡

openstack subnet create --network provider \
--allocation-pool start=192.168.0.195,end=192.168.0.210 \
--dns-nameserver 255.5.5.5 --gateway 192.168.0.254 \
--subnet-range 192.168.0.0/24 provider

#參數解釋: 
--network provider 指定父網絡
--allocation-pool start=192.168.0.195,end=192.168.0.210 指定子網的起始地址和終止地址
--dns-nameserver 223.5.5.5 指定DNS服務器地址
--gateway 192.168.0.254 指定網關地址
--subnet-range 192.168.0.0/24 指定子網的網段
最后的provider 指定子網的名稱 

查看已創建的網絡

openstack network list

查看已創建的子網

openstack subnet list

2.第二種: 建立普通租戶的私有自助服務網絡
自助服務網絡,也叫租戶網絡或項目網絡,它是由openstack租戶創建的,完全虛擬的,是租戶私有的,只在本網絡內部連通,不能在租戶之間共享

在普通租戶下創建網絡

source ~/myuser-openrc
openstack network create selfservice

非特權用戶通常無法為該命令提供其他參數。該服務使用以下配置文件中的信息自動選擇參數

cat /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
[ml2_type_vxlan]
vni_ranges = 1:1000

創建一個子網 172.18.1.0/24

openstack subnet create --network selfservice \
--dns-nameserver 223.5.5.5 --gateway 172.18.1.1 \
--subnet-range 172.18.1.0/24 selfservice

#參數解釋: 
--network selfservice 指定父網絡
--allocation-pool start=172.16.10.2,end=172.18.1.200 
可以指定子網的起始地址和終止地址,不添加此參數則分配從172.16.1.2到172.18.1.254的IP地址
--dns-nameserver 223.5.5.5 指定DNS服務器地址
--gateway 172.18.1.1 指定網關地址
--subnet-range 172.18.1.0/24 指定子網的網段
最后的selfservice 指定子網的名稱 

查看已創建的網絡

openstack network list

查看已創建的子網

openstack subnet list 

創建路由器,用myuser普通租戶創建

source ~/myuser-openrc
openstack router create router01

查看創建的路由

openstack router list

將創建的租戶自助服務網絡子網添加為路由器上的接口

openstack router add subnet router01 selfservice

在路由器的公共提供商網絡上設置網關

openstack router set router01 --external-gateway provider

查看網絡名稱空間,一個qrouter名稱空間和兩個 qdhcp名稱空間

[root@controller ~]# ip netns
qrouter-919685b9-24c7-4859-b793-48a2add1fd30 (id: 2)
qdhcp-a7acab4d-3d4b-41f8-8d2c-854fb1ff6d4f (id: 0)
qdhcp-926859eb-1e48-44ed-9634-bcabba5eb8b8 (id: 1)

#使用ip netns命令找到這個虛擬路由器之后,用這個虛擬路由器ping真實物理網絡中的網關
#ping通即證明OpenStack內部虛擬網絡與真實物理網絡銜接成功
[root@controller ~]# ip netns exec qrouter-919685b9-24c7-4859-b793-48a2add1fd30 ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
64 bytes from 192.168.0.254: icmp_seq=1 ttl=128 time=0.570 ms
64 bytes from 192.168.0.254: icmp_seq=2 ttl=128 time=0.276 ms

驗證查看創建網絡和子網中的IP地址范圍,回到admin用戶下

source ~/admin-openrc

列出路由器上的端口,以確定提供商網絡上的網關IP地址

openstack port list --router router01

...|ip_address='172.18.1.1', |...| ACTIVE
...|ip_address='192.168.0.209', |...| ACTIVE

從控制器節點或物理提供商網絡上的任何主機ping此IP地址進行驗證

[root@controller ~]# ping 192.168.0.209
PING 192.168.0.209 (192.168.0.209) 56(84) bytes of data.
64 bytes from 192.168.0.209: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 192.168.0.209: icmp_seq=2 ttl=64 time=0.066 ms

創建一個m1.nano的類型模板

#Flavor:類型模板,虛機硬件模板被稱為類型模板,包括RAM和硬盤大小,CPU核數等。
#創建一台1核cpu 128M硬盤的類型模板與CirrOS映像一起使用進行測試

openstack flavor create --id 0 --vcpus 1 --ram 128 --disk 1 m1.nano

查看創建的類型模板

openstack flavor list

創建租戶的秘鑰對(可選)

#生產中登陸最好不要用常規的密碼驗證登陸,啟動實例前要 將公共的秘鑰添加
#秘鑰在文檔開始時的配置基礎環境中已經生成,所以可以直接添加
source ~/myuser-openrc
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

#查看創建的密鑰對
openstack keypair list

配置安全組規則

#默認情況下,default安全組適用於所有實例,並包括拒絕對實例進行遠程訪問的防火牆規則。對於CirrOS之類的Linux映像,建議至少允許ICMP(ping)和ssh。
#許可ICMP協議(ping命令)
openstack security group rule create --proto icmp default

#允許SSH訪問(22端口)
openstack security group rule create --proto tcp --dst-port 22 default

#查看安全組
openstack security group list

#查看安全組規則
openstack security group rule list

3.啟動一個實例

#要啟動實例,必須至少指定實例類型,映像名稱,網絡,安全組,密鑰和實例名稱
#部署的網絡環境可以在提供商網絡和自助服務網絡上啟動實例

#查看可用的類型模板
openstack flavor list

#查看可用的鏡像
openstack image list

#查看可用的網絡
openstack network list

#查看安全組
openstack security group list

3.1 在公共提供商網絡上啟動實例
創建公共提供商網絡下的實例(也可以在dashboard界面上創建,建議掌握命令行的操作)

#net-id:可用的網絡的ID,這里使用公共提供商網絡的ID 實例名稱(provider-vm1)
source ~/myuser-openrc
openstack server create --flavor m1.nano --image cirros \
--nic net-id=926859eb-1e48-44ed-9634-bcabba5eb8b8 --security-group default \
--key-name mykey provider-vm1

查看創建的實例

[root@controller ~]# openstack server list
+--------------------------------------+--------------+--------+------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+--------------+--------+------------------------+--------+---------+
| 9c2c558f-0573-4483-8031-ec3ba9c41f57 | provider-vm1 | ACTIVE | provider=192.168.0.199 | cirros | m1.nano |
+--------------------------------------+--------------+--------+------------------------+--------+---------+

使用虛擬控制台訪問實例

openstack console url show provider-vm1

登陸到cirros實例驗證對公共提供商網絡網關的訪問

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: seq=0 ttl=64 time=5.128 ms

驗證對互聯網的訪問

$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: seq=0 ttl=128 time=17.904 ms

從控制器節點或提供商網絡上的任何其他主機使用SSH訪問實例

[root@controller ~]# ssh cirros@192.168.0.199
$ hostname 
provider-vm1
$ pwd
/home/cirros

3.2 在租戶自助網絡上啟動實例
創建租戶自助網絡下的實例(也可以在dashboard界面上創建)

#net-id:可用的網絡的ID,這里使用租戶自助網絡的ID 實例名稱(selfservice-vm1)
source ~/myuser-openrc
openstack server create --flavor m1.nano --image cirros \
--nic net-id=0e3e56b8-67be-4a83-89c4-b23880d7e688 --security-group default \
--key-name mykey selfservice-vm1

查看創建的實例

[root@controller ~]# openstack server list
+--------------------------------------+-----------------+--------+-------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------------+--------+-------------------------+--------+---------+
| a9397f81-9f4d-4130-b72c-d607060c2856 | selfservice-vm1 | ACTIVE | selfservice=172.18.1.22 | cirros | m1.nano |
| 9c2c558f-0573-4483-8031-ec3ba9c41f57 | provider-vm1 | ACTIVE | provider=192.168.0.199 | cirros | m1.nano |
+--------------------------------------+-----------------+--------+-------------------------+--------+---------+

使用虛擬控制台訪問實例

openstack console url show selfservice-vm1

訪問實例的控制台並登陸cirros實例驗證對公共提供商網絡網關的訪問

$ ping 172.18.1.1
PING 172.18.1.1 (172.18.1.1): 56 data bytes
64 bytes from 172.18.1.1: seq=0 ttl=64 time=25.527 ms

驗證對互聯網的訪問

$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: seq=0 ttl=127 time=20.649 ms

從控制器節點使用SSH遠程訪問租戶實例

在公共提供商網絡上創建一個浮動IP地址

openstack floating ip create provider

Dashboard創建

查看已創建的浮動IP

[root@controller ~]# openstack floating ip list
+--------------------------------------+---------------------+------------------+------+--------------------------------------+-------
| ID | Floating IP Address | Fixed IP Address | Port | Floating Network | Projec
+--------------------------------------+---------------------+------------------+------+--------------------------------------+-------
| f31e429a-4ebd-407a-ae78-220311008f4f | 192.168.0.198 | None | None | 926859eb-1e48-44ed-9634-bcabba5eb8b8 | 6535a5
+--------------------------------------+---------------------+------------------+------+--------------------------------------+-------

將浮動IP地址與實例相關聯

openstack server add floating ip selfservice-vm1 192.168.0.198

Dashboard關聯


查看浮動IP地址綁定的狀態

[root@controller ~]# openstack server list
+--------------------------------------+-----------------+--------+----------------------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-----------------+--------+----------------------------------------+--------+---------+
| a9397f81-9f4d-4130-b72c-d607060c2856 | selfservice-vm1 | ACTIVE | selfservice=172.18.1.22, 192.168.0.198 | cirros | m1.nano |
| 9c2c558f-0573-4483-8031-ec3ba9c41f57 | provider-vm1 | ACTIVE | provider=192.168.0.199 | cirros | m1.nano |
+--------------------------------------+-----------------+--------+----------------------------------------+--------+---------+

通過控制器節點或公共提供商網絡上任何主機的浮動IP地址驗證與實例的連接性

[root@controller ~]# ping 192.168.0.198
PING 192.168.0.198 (192.168.0.198) 56(84) bytes of data.
64 bytes from 192.168.0.198: icmp_seq=1 ttl=63 time=22.0 ms

從控制器節點或提供商網絡上的任何其他主機使用SSH訪問實例

[root@controller ~]# ssh cirros@192.168.0.198
$ hostname 
selfservice-vm1
$ pwd
/home/cirros

安裝文檔創建的網絡拓撲環境


創建的一個新的網絡拓撲,兩個獨立的租戶網絡創建路由,並在路由上設置訪問外網的網關


3.3 故障記錄
安裝網橋管理工具brctl來查看網絡

yum install bridge-utils -y
brctl show

重啟實例的方法,可在控制節點命令行重啟 也可在dashboard界面進行重啟

source ~/myuser-openrc 
openstack server list
nova reboot <ID>

如果重啟報錯則使用hard重啟

nova reboot --hard provider-vm1

nova reboot是軟重啟虛擬機
nova reboot --hard 是硬重啟虛擬機
nova reset-state 是重置虛擬機狀態

Web瀏覽器在無法解析controller主機名的主機上運行

可以替換nova.conf的配置文件中的[vnc]模塊,將controller替換為控制節點的IP地址

openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://192.168.0.10:6080/vnc_auto.html

報錯:找不到磁盤無法啟動的問題
Booting from Hard Disk... GRUB

解決方法,修改計算節點的nova.conf文件

[root@computel01 ~]# vim /etc/nova/nova.conf
[libvirt]
cpu_mode = none
virt_type = qemu

重啟計算節點的nova計算服務

[root@computel01 ~]# systemctl restart openstack-nova-compute.service

外部網絡沒有網的問題

在用VMware虛擬機進行測試時候,要為實例多添加網卡,通過虛擬網絡編輯器,否則會導致創建的可訪問外部網絡沒有網
我們部署openstack,大多數都是使用虛擬機,在網絡節點的外部網卡,我們需要注意,這個是不需要配置ip地址的。
同時由於每個虛擬機是需要聯網的。所以我們需要在原先的網絡規划的基礎上,在增加一個上網的網卡。

neutron報timeout超時
/etc/neutron/neutron.conf中會有一個配置項rpc_response_timeout,它用來配置RPC的超時時間,默認為60s,所以導致超時異常.解決方法為設置

#在controller節點上
[root@controller ~]# vim /etc/neutron/neutron.conf
[DEFAULT]
...
rpc_response_timeout=180

systemctl restart neutron-linuxbridge-agent.service


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM