openstack重點了解的就是服務
前言:
OpenStack覆蓋了網絡、虛擬化、操作系統、服務器等各個方面。
2017年2月OpenStack發佈了最新版本Ocata.一般情況下,每半年左右更新- -次版本。
一:常見的8個核心項目(即OpenStack服務)
序號 | 服務 | 項目名稱 | 描述 |
---|---|---|---|
1 | Compute(計算服務) | Nova | 負責實例生命週期的管理,計算資源的單位。對Hypervisor進行屏蔽,支持多種虛擬化技術(紅帽默認爲KVM),支持橫向擴展。 |
2 | Network(網絡服務) | Neutron | 負責虛擬網絡的管理,爲實例創建網絡的拓撲結構。是面向租戶的網絡管理,可以自定義網絡,並使租戶之間互不影響。 |
3 | Identity(身份認證服務) | Keystore | 類似於LDAP服務,對用戶、租戶和角色、服務進行認證與授權,並且支持多認證機制。 |
4 | Dashboard(控制面板服務) | Horizon | 提供一個Web管理界面,與OpenStack底層服務進行交互。 |
5 | Image Service(鏡像服務) | Glance | 提供虛擬機鏡像模板的註冊與管理,將做好的操作系統複製爲鏡像模板,在創建虛擬機時直接使用。可支持多格式的鏡像。 |
6 | Block Storage(塊存儲服務) | Cinder | 負責爲運行實例提供持久的塊存儲設備,可進行方便的擴展,按需付費,支持多種後端存儲。 |
7 | 0bject Storage(對象存儲服務) | Swift | 爲OpenStack提供基於雲的彈性存儲,支持集羣無單點故障。 |
8 | Telemetry(計量服務) | Ceilometer | 用於度量、監控和控制數據資源的集中來源,爲OpenStack用戶提供記賬途徑。 |
二:OpenStack優勢
-
控制性:完全開源的平臺,模塊化的設計,提供相應的API接口,方便與第三方技術集成,從而滿足自身業務需求。
-
兼容性: OpenStack 兼容其他公有云,方便用戶進行數據遷移
可擴展性: Openstack 採用模塊化的設計,支持主流發行版本的Linux,可以通過橫向擴展,增加節點、添加資源。 -
靈活性:用戶可以根據自己的需要建立基礎設施,也可以輕鬆地爲自己的羣集增加規模。Openstack項目採用Apache2許可,意味着第三方廠家可以重新發布源代碼。
OpenStack在控制性、兼容性、可擴展性、靈活性方面具備有優勢,它可能成爲雲計算領域的行業標準。
三:OpenStack一鍵部署
3.1 實驗環境
本次使用packstack工具實現一鍵部署OpenStack。
通過該安裝工具,只需簡單運行一條命令,即可以快速部署OpenStack, 省去繁瑣的安裝步驟,而直接體驗OpenStack的管理及使用。
本次實驗需要提前部署一臺新安裝的操作系統主機,要求能訪問互聯網,主機的系統採用最小化方式安裝即可。
安裝部署OpenStack環境的硬件設備的最低配置要求
CPU 4核
內存 8G
磁盤 30G
網絡 NAT,還有一張自定義網卡
3.2 實驗步驟
3.2.1 創建新服務器節點
最小化安裝,記得處理器勾選虛擬模式
配置環境,修改主機名
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# su
[root@openstack ~]#
修改hosts文件
[root@openstack ~]# vi /etc/hosts
192.168.247.3 openstack
關閉防火牆,核心防護
[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@openstack ~]# setenforce 0
[root@openstack ~]# vi /etc/selinux/config
SELINUX=disabled
關閉網絡管理工具
[root@openstack ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@openstack ~]# systemctl stop NetworkManager
重啓
[root@openstack ~]# reboot
3.2.2 獲取repo
[root@openstack ~]# vi /etc/resolv.conf
nameserver 8.8.8.8
[root@openstack ~]# ping 192.168.247.2
PING 192.168.247.2 (192.168.247.2) 56(84) bytes of data.
64 bytes from 192.168.247.2: icmp_seq=1 ttl=128 time=0.575 ms
64 bytes from 192.168.247.2: icmp_seq=2 ttl=128 time=0.434 ms
^C
--- 192.168.247.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.434/0.504/0.575/0.073 ms
[root@openstack ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@openstack ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=113 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=118 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=127 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=126 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=128 time=117 ms
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 5 received, 16% packet loss, time 5007ms
rtt min/avg/max/mdev = 113.755/120.764/127.661/5.399 ms
[root@openstack ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@openstack ~]# ping www.baidu.com
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=1 ttl=128 time=31.5 ms
64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=2 ttl=128 time=31.5 ms
64 bytes from 183.232.231.172 (183.232.231.172): icmp_seq=3 ttl=128 time=31.5 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 31.502/31.523/31.558/0.206 ms
[root@openstack ~]# cd /etc/yum.repos.d/
[root@openstack yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Sources.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS.repo CentOS-Vault.repo
[root@openstack yum.repos.d]# mkdir bak
[root@openstack yum.repos.d]# mv C* bak/
[root@openstack yum.repos.d]# curl -o /etc/yum.repos.d/CentOS.repo http://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 68045 0 --:--:-- --:--:-- --:--:-- 70083
[root@openstack yum.repos.d]# ll
total 4
drwxr-xr-x 2 root root 206 Feb 21 14:25 bak
-rw-r--r-- 1 root root 2523 Feb 21 14:25 CentOS.repo
3.2.3 yum安裝openstack-train
[root@openstack yum.repos.d]# yum -y install centos-release-openstack-train
[root@openstack yum.repos.d]# ll
total 24
drwxr-xr-x 2 root root 206 Feb 21 14:25 bak
-rw-r--r-- 1 root root 956 Jun 19 2019 CentOS-Ceph-Nautilus.repo
-rw-r--r-- 1 root root 715 Jun 19 2019 CentOS-NFS-Ganesha-28.repo
-rw-r--r-- 1 root root 1290 Oct 23 01:26 CentOS-OpenStack-train.repo
-rw-r--r-- 1 root root 612 Feb 1 2019 CentOS-QEMU-EV.repo
-rw-r--r-- 1 root root 2523 Feb 21 14:25 CentOS.repo
-rw-r--r-- 1 root root 353 Jul 31 2018 CentOS-Storage-common.repo
更新yum緩存
[root@openstack yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base centos-ceph-nautilus centos-nfs-ganesha28 centos-openstack-train
: centos-qemu-ev extras updates
Cleaning up list of fastest mirrors
[root@openstack yum.repos.d]# yum makecache
時間同步
[root@openstack yum.repos.d]# yum -y install ntpdate
[root@openstack yum.repos.d]# ntpdate ntp.aliyun.com >> /var/log/ntpdate.log
[root@openstack yum.repos.d]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@openstack yum.repos.d]# systemctl restart crond
[root@openstack yum.repos.d]# systemctl enable crond
[root@localhost ~]# tail -f /var/log/ntpdate.log ###動態查看更新日誌文件,這條命令可以不敲
安裝openstack-packstack
[root@openstack yum.repos.d]# yum -y install openstack-packstack
[root@openstack yum.repos.d]# packstack --allinone 在線部署
Testing if puppet apply is finished: 192.168.247.3_controller.pp [ / ] 這個是等待的意思
tail -f /var/log/
[root@openstack ~]# tail -f /var/log/messages 在線查看安裝日誌
顯示成功
**** Installation completed successfully ******
Additional information:
- Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
- A new answerfile was created in: /root/packstack-answers-20200221-143136.txt
- Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
- File /root/keystonerc_admin has been created on OpenStack client host 192.168.247.3. To use the command line tools you need to source the file.
- To access the OpenStack Dashboard browse to http://192.168.247.3/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
- The installation log file is available at: /var/tmp/packstack/20200221-143136-tbr4ug/openstack-setup.log
- The generated manifests are available at: /var/tmp/packstack/20200221-143136-tbr4ug/manifests
[root@openstack yum.repos.d]#
查看賬戶密碼
[root@openstack yum.repos.d]# cd /root
[root@openstack ~]# ls
anaconda-ks.cfg keystonerc_admin keystonerc_demo packstack-answers-20200221-143136.txt
[root@openstack ~]# ll
total 64
-rw-------. 1 root root 1632 Feb 21 2020 anaconda-ks.cfg
-rw------- 1 root root 373 Feb 21 14:35 keystonerc_admin
-rw------- 1 root root 318 Feb 21 14:35 keystonerc_demo
-rw------- 1 root root 51648 Feb 21 14:31 packstack-answers-20200221-143136.txt
[root@openstack ~]# cat /root/keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD='4dc0395edf0a4fe7'
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://192.168.247.3:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
http://192.168.247.3/dashboard/
export OS_USERNAME=admin
export OS_PASSWORD='4dc0395edf0a4fe7'
這種模式就跟阿里雲的一樣了
接下來可以上傳鏡像文件,或者其他源文件,去創建實例
創建實例的數量和質量需要看物理主機的硬件配置
上傳鏡像文件,
###上傳鏡像CentOS-7-x86_64-DVD-1810.iso去opt###
[root@localhost ~]# source keystonerc_admin ###遇到報錯Missing value auth-url required for auth plugin password 解決
[root@localhost ~(keystone_admin)]# ll
總用量 116
-rw-------. 1 root root 1308 4月 22 05:00 anaconda-ks.cfg
-rw------- 1 root root 331 4月 28 00:55 keystonerc_admin
-rw------- 1 root root 312 4月 28 00:55 keystonerc_demo
-rw------- 1 root root 49523 4月 28 00:07 packstack-answers-20190428-000742.txt
-rw------- 1 root root 49523 4月 28 01:33 packstack-answers-20190428-013352.txt
[root@localhost ~(keystone_admin)]# openstack image create --container-format bare --disk-format iso --public --file CentOS-7-x86_64-DVD-1810.iso ISO_CentOS7.6
[Errno 2] 沒有那個文件或目錄: u'CentOS-7-x86_64-DVD-1810.iso'
[root@localhost ~(keystone_admin)]# cd /opt
[root@localhost opt(keystone_admin)]# ll
總用量 4481024
-rw-r--r-- 1 root root 4588568576 4月 28 02:02 CentOS-7-x86_64-DVD-1810.iso
drwxr-xr-x 3 root root 22 4月 28 02:12 stack
[root@localhost opt(keystone_admin)]# openstack image create --container-format bare --disk-format iso --public --file CentOS-7-x86_64-DVD-1810.iso ISO_CentOS7.6
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 5b61d5b378502e9cba8ba26b6696c92a |
| container_format | bare |
| created_at | 2019-04-27T18:15:22Z |
| disk_format | iso |
| file | /v2/images/9a3469e6-4bde-4544-8fe3-daa909c6682d/file |
| id | 9a3469e6-4bde-4544-8fe3-daa909c6682d |
| min_disk | 0 |
| min_ram | 0 |
| name | ISO_CentOS7.6 |
| owner | c44490a1222c4a23861b4b87147a744c |
| protected | False |
| schema | /v2/schemas/image |
| size | 4588568576 |
| status | active |
| tags | |
| updated_at | 2019-04-27T18:16:01Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
上述鏡像上傳完畢,可以在網頁創建實例裝系統了
| 2019-04-27T18:16:01Z |
| virtual_size | None |
| visibility | public |
±-----------------±-----------------------------------------------------+
上述鏡像上傳完畢,可以在網頁創建實例裝系統了