CentOS7安裝OpenStack(Rocky版)-08.啟動一個虛擬機實例


安裝完openstack的必要組件keystone,nova,glance,neutron以后就可以使用openstack命令創建一台雲虛擬機了

------------------- 完美的分割線  --------------------

8.0.neutron 的兩種虛擬網絡

對於實際的網絡環境,購買好路由器交換機等網絡設備后,還需要連接網線,配置局域網絡才可以讓服務器正常連接上網。

同樣,對於 openstack,安裝好 neutron 只相當於購買好了網絡設備,仍然需要創建一個虛擬的網絡才可以讓虛擬機在里面運行。

對於 openstack 的虛擬網絡,在安裝 neutron 時只進行了簡單的敘述,有兩種模式:

1)Provider network

# 網絡結構圖參考:https://docs.openstack.org/install-guide/launch-instance-networks-provider.html

簡單理解就是與現有物理網絡橋接起來的網絡,網絡結構和配置較簡單,適用於小規模服務器集群(幾十台幾百台),網絡結構圖如下,

在這種網絡中,集群中的各個節點通過物理網絡連接,節點內部通過 L2( provider 網橋/交換機)與物理網絡進行連接,這個網絡可以包括為實例提供 IP 地址的 DHCP 服務器。

集群中的實例(虛擬機)通過 Provider 網絡為其分配映射的tap端口與橋接網卡傳輸數據從而進行內外部通信,類似 kvm 虛擬機采用橋接模式使得網絡結構,網絡結構示意圖如下:

# ok

2)Self-service network(自服務網絡)

# 網絡結構圖參考:https://docs.openstack.org/install-guide/launch-instance-networks-selfservice.html

類似阿里雲的內部私有網絡,可以讓使用者自己構建一個內部使用對外隔離的網絡,結構靈活,適用於大規模服務器集群(上千台),結構如下圖:

是在provider網絡上的擴展,通過self-service網橋使用vxlan技術創建一個獨立的網絡,這個獨立的網絡也可以通過vxlan tunnels連接到物理網絡進行數據傳輸

網絡連接拓撲圖如下:

# ok

8.1.創建 provider 網絡

1)在控制節點上,創建網絡接口

# 加載 admin 憑證來獲取管理員能執行的命令訪問權限

cd /server/tools/
source keystone-admin-pass.sh
openstack network create --share --external --provider-physical-network provider  --provider-network-type flat provider
openstack network list

# 實例演示:

[root@openstack01 tools]# openstack network create --share --external --provider-physical-network provider  --provider-network-type flat provider
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2018-11-06T06:34:01Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | 25346d04-0f1f-4277-b896-ba3f01425d86 |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | None                                 |
| is_vlan_transparent       | None                                 |
| mtu                       | 1500                                 |
| name                      | provider                             |
| port_security_enabled     | True                                 |
| project_id                | 3706708374804e2eb4ed056f55d84666     |
| provider:network_type     | flat                                 |
| provider:physical_network | provider                             |
| provider:segmentation_id  | None                                 |
| qos_policy_id             | None                                 |
| revision_number           | 0                                    |
| router:external           | External                             |
| segments                  | None                                 |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tags                      |                                      |
| updated_at                | 2018-11-06T06:34:01Z                 |
+---------------------------+--------------------------------------+
[root@openstack01 tools]# openstack network list
+--------------------------------------+----------+---------+
| ID                                   | Name     | Subnets |
+--------------------------------------+----------+---------+
| 25346d04-0f1f-4277-b896-ba3f01425d86 | provider |         |
+--------------------------------------+----------+---------+

# 附:舊版的命令(在這個版本中會少創建一些東西),可以參考

neutron net-create --shared --provider:physical_network [自定義的物理網卡的名稱] --provider:network_type flat(單一扁平網絡) [創建的虛擬網絡名稱]
neutron net-create --shared --provider:physical_network provider  --provider:network_type flat provider

2)檢查網絡配置

# 確認 ml2_conf.ini 以下配置選項

# 上面的命令 --provider-network-type flat 網絡名稱 provider 與此對應

vim /etc/neutron/plugins/ml2/ml2_conf.ini
-----------------------------
[ml2_type_flat]
flat_networks = provider
-----------------------------

# 確認 linuxbridge_agent.ini 以下配置選項

# 上面的命令 --provider-physical-network provider 於此對應,網卡注意要於此對應,控制節點的網卡名稱

vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
-----------------------------
[linux_bridge]
physical_interface_mappings = provider:eno16777736
-----------------------------

3)創建 provider 子網

openstack subnet create --network provider --no-dhcp --allocation-pool start=192.168.1.210,end=192.168.1.220 --dns-nameserver 4.4.4.4 --gateway 192.168.1.1 --subnet-range 192.168.1.0/24 provider-subnet01
openstack subnet create --network provider --dhcp --subnet-range 192.168.2.0/24 provider-subnet02
openstack subnet list

# 實例演示:

[root@openstack01 tools]# openstack subnet create --network provider --no-dhcp --allocation-pool start=192.168.1.210,end=192.168.1.220 --dns-nameserver 4.4.4.4 --gateway 192.168.1.1 --subnet-range 192.168.1.0/24 provider-subnet01
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| allocation_pools  | 192.168.1.210-192.168.1.220          |
| cidr              | 192.168.1.0/24                       |
| created_at        | 2018-11-12T12:48:08Z                 |
| description       |                                      |
| dns_nameservers   | 4.4.4.4                              |
| enable_dhcp       | False                                |
| gateway_ip        | 192.168.1.1                          |
| host_routes       |                                      |
| id                | 2aaf50aa-ab80-4ed5-99c8-58d4d4d31ff3 |
| ip_version        | 4                                    |
| ipv6_address_mode | None                                 |
| ipv6_ra_mode      | None                                 |
| name              | provider-subnet01                    |
| network_id        | 25346d04-0f1f-4277-b896-ba3f01425d86 |
| project_id        | 3706708374804e2eb4ed056f55d84666     |
| revision_number   | 0                                    |
| segment_id        | None                                 |
| service_types     |                                      |
| subnetpool_id     | None                                 |
| tags              |                                      |
| updated_at        | 2018-11-12T12:48:08Z                 |
+-------------------+--------------------------------------+
[root@openstack01 tools]# openstack subnet create --network provider --dhcp --subnet-range 192.168.2.0/24 provider-subnet02
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| allocation_pools  | 192.168.2.2-192.168.2.254            |
| cidr              | 192.168.2.0/24                       |
| created_at        | 2018-11-12T12:48:13Z                 |
| description       |                                      |
| dns_nameservers   |                                      |
| enable_dhcp       | True                                 |
| gateway_ip        | 192.168.2.1                          |
| host_routes       |                                      |
| id                | 0d21b823-ae0c-4c3e-87e6-22e3b2d794c4 |
| ip_version        | 4                                    |
| ipv6_address_mode | None                                 |
| ipv6_ra_mode      | None                                 |
| name              | provider-subnet02                    |
| network_id        | 25346d04-0f1f-4277-b896-ba3f01425d86 |
| project_id        | 3706708374804e2eb4ed056f55d84666     |
| revision_number   | 0                                    |
| segment_id        | None                                 |
| service_types     |                                      |
| subnetpool_id     | None                                 |
| tags              |                                      |
| updated_at        | 2018-11-12T12:48:13Z                 |
+-------------------+--------------------------------------+
[root@openstack01 tools]# openstack subnet list
+--------------------------------------+-------------------+--------------------------------------+----------------+
| ID                                   | Name              | Network                              | Subnet         |
+--------------------------------------+-------------------+--------------------------------------+----------------+
| 0d21b823-ae0c-4c3e-87e6-22e3b2d794c4 | provider-subnet02 | 25346d04-0f1f-4277-b896-ba3f01425d86 | 192.168.2.0/24 |
| 2aaf50aa-ab80-4ed5-99c8-58d4d4d31ff3 | provider-subnet01 | 25346d04-0f1f-4277-b896-ba3f01425d86 | 192.168.1.0/24 |
+--------------------------------------+-------------------+--------------------------------------+----------------+

# 至此,provider 網絡創建完成,可以創建虛擬機

8.2.在在控制節點使用普通用戶 myuser 創建密鑰對

# 大部分雲鏡像支持功功秘鑰認證而不是密碼認證,也可以不創建,使用已有的公鑰
# 秘鑰對用於使用 openstack 的 dashboard 遠程管理虛擬機
# 可以使用管理員 admin 創建也可以使用普通用戶 myuser 創建,這里使用普通用戶進行虛擬機創建的演示

1)使用普通用戶myuser的權限

cd /server/tools/
source keystone-demo-pass.sh

2)生成秘鑰對

ssh-keygen -q -N ""

3)添加公鑰到openstack秘鑰系統

openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

4)查看可用的公鑰(驗證公鑰的添加)

openstack keypair list

8.3.在控制節點為示例項目myproject增加安全組規則 

# 默認情況下,每個項目都有其自己的default默認安全組,適用於所有項目中的實例並且包括拒絕遠程訪問實例的防火牆規則。
# 項目自身的管理員只可以管理自身項目中的安全組規則,admin管理員也無法管理其他項目的安全組規則
# 對諸如CirrOS這樣的Linux鏡像,建議至少允許ICMP (ping) 和安全shell(SSH)規則。

1)使用普通用戶myuser的權限

cd /server/tools/
source keystone-demo-pass.sh

2)允許 ICMP (ping)

openstack security group rule create --proto icmp default

3)允許安全 shell (SSH) 的訪問

openstack security group rule create --proto tcp --dst-port 22 default

4)查看安全組和相關的規則

openstack security group list
openstack security group rule list

8.4.在控制節點使用普通用戶在 provider 網絡創建虛擬機實例 

1)控制機:使用 admin 用戶創建主機模板

# 注意:虛擬機模板配置只能由 admin 管理員創建和管理,普通用戶 myuser 只能使用已有的虛擬機模板
# 列表查看實例配置模板

cd /server/tools/
source keystone-admin-pass.sh openstack flavor list

# 使用 admin 用戶創建自定義配置的主機模板 flavor

openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
openstack flavor create --id 1 --vcpus 1 --ram 1024 --disk 50 m1.tiny openstack flavor create --id 2 --vcpus 1 --ram 2048 --disk 500 m1.small openstack flavor create --id 3 --vcpus 2 --ram 4096 --disk 500 m1.medium openstack flavor create --id 4 --vcpus 4 --ram 8192 --disk 500 m1.large openstack flavor create --id 5 --vcpus 8 --ram 16384 --disk 500 m1.xlarge openstack flavor list

# 以下為常用命令,在此列出下:

## 查看可用的虛擬機配置模板

openstack flavor list

## 查看可用的鏡像

openstack image list

# 查看可用的網絡

openstack network list
openstack subnet list

## 查看可用的公鑰(驗證公鑰的添加)

openstack keypair list

## 查看可用的安全組

openstack security group list
openstack security group rule list

2)控制機:使用普通用戶創建一台虛擬機實例

# R 版的可以使用網絡名稱和 ID 創建虛擬機,如果只有一個網絡也可以不使用 --nic 選項

cd /server/tools/
source keystone-demo-pass.sh
openstack server create --flavor m1.nano --image cirros --nic net-id=provider --security-group default --key-name mykey cirros-01
openstack server create --flavor m1.nano --image cirros --nic net-id=25346d04-0f1f-4277-b896-ba3f01425d86 --security-group default --key-name mykey cirros-02
openstack server create --flavor m1.nano --image cirros --security-group default --key-name mykey cirros-03

# 檢查實例的狀態

openstack server list

# 當構建過程完全成功后,狀態會從 BUILD 變為 ACTIVE

3)顯示主機的 novnc 地址(vnc控制台)

openstack console url show cirros-01

# 得出的地址可以直接使用瀏覽器進行訪問,並管理相應用主機

login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.

# 至此文檔已經補充完畢,20200618

8.5.創建私有網絡(暫略)

# openstack 的私有網絡類似阿里雲等雲廠商的VPC子網,用戶可以自行定義子網內的網絡架構,比較靈活

# 附官方文檔:Create the self-service network 

https://docs.openstack.org/install-guide/launch-instance-networks-selfservice.html

 


免責聲明!

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



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