1. 程式人生 > >雲計算OpenStack:雲計算介紹及組件安裝(一)

雲計算OpenStack:雲計算介紹及組件安裝(一)

第一步 guid 軟件 sha256 image 私有雲 中國 高德地圖 rabbit

雲計算介紹

當用戶能夠通過互聯網方便的獲取到計算、存儲等服務時,我們比喻自己使用到了“雲計算”,雲計算並不能被稱為是一種計算技術,而更像是一種服務模式。每個運維人員心裏都有一個對雲計算的理解,而最普遍接受的是NIST(美國國家標準與技術研究院)的定義:

雲計算是一種按使用量付費的服務模式,這是一種能夠提供可用的、便捷的、按需求的網絡訪問模式,計算共享池能夠快速的為用戶提供網絡、服務器、存儲、應用軟件及其他服務,並且只需要花費很少的管理時間。

服務層次

NIST還針對於雲計算的服務模式提出了3個服務層次:

Iaas:提供給用戶的是雲計算基礎設施,包括CPU、內存、存儲、網絡等其他的資源服務,用戶不需要控制存儲與網絡等基礎設施。 Paas:提供給用戶的是雲計算中的開發和分發應用的解決方案,用戶能夠部署應用程序,也可以控制相關的托管環境,比如雲服務器及操作系統,但用戶不需要接觸到雲計算中的基礎設施。 Saas:提供給用戶的是雲計算基礎設施上的應用程序,用戶只需要在客戶端界面訪問即可使用到所需資源,而接觸不到雲計算的基礎設施。

技術分享圖片

OpenStack項目

OpenStack官方網站:https://www.openstack.org/

Openstack項目的版本按照ABCDEFG……的順序發布,每6個月更新一次。

Openstack最初是由NASA和Rackspace共同發起的雲端計算服務項目,該項目以Apache許可證授權的方式成為了一款開源產品,目的是將多個組件整合後從而實現一個開源的雲計算平臺,目前Openstack項目正在被紅帽、IBM、AMD、Intel、戴爾、思科、微軟等超過一百家廠商共同研發,並已經支持了幾乎所有的常見雲計算環境,擁有了良好的可擴展性,而且部署搭建Openstack服務也變得十分簡單,目前國內對於雲計算的需求也逐漸增加,華勝天成、高德地圖、京東、阿裏巴巴、百度、中興、華為等中國企業也加入到了Openstack項目研發當中,Openstack項目也正在隨著全球內得到了眾多廠商的參與支持而快速成熟。

技術分享圖片

Open是開放,Stack則是堆砌之意,合起來就是將眾多的功能服務堆積起來的集合,讓人們通過Openstack雲計算項目,能夠將諸如計算能力、存儲、網絡和軟件等資源抽象成服務,以便讓用戶可以通過互聯網遠程來享用,付費的形式也變得因需而定,調整方便,擁有極強的虛擬可擴展性,是公共和私有雲的建設與管理軟件中的優秀開源項目。

Openstack作為一個雲平臺的管理項目,其功能組件覆蓋了網絡、虛擬化、操作系統、服務器等多個方面,每個功能組件交由不同的項目委員會來研發和管理,目前核心的項目包括有:
功能 項目名稱

描述

計算服務 Nova

負責虛擬機的創建、開關機、掛起、遷移、調整CPU、內存等規則。 (核心服務)

對象存儲 Swift

用於在大規模可擴展系統中通過內置的冗余及高容差機制實現對象存儲的系統。(可選服務)

鏡像服務 Glance

用於創建、上傳、刪除、編輯鏡像信息的虛擬機鏡像查找及索引系統。 (核心服務)

身份服務 Keystone

為其他的功能服務提供身份驗證、服務規則及服務令牌的功能。 (核心服務)

網絡管理 Neutron

用於為其他服務提供雲計算的網絡虛擬化技術,可自定義各種網絡規則,支持主流的網絡廠商技術。(核心服務)

塊存儲 Cinder

為虛擬機實例提供穩定的數據塊存儲的創建、刪除、掛載、卸載、管理等服務。(核心服務)

圖形界面 Horizon

為用戶提供簡單易用的Web管理界面,降低用戶對功能服務的操作難度。

測量服務 Ceilometer

收集項目內所有的事件,用於監控、計費或為其他服務提供數據支撐。

部署編排 Heat

實現通過模板方式進行自動化的資源環境部署服務。

數據庫服務 Trove

為用戶提供可擴展的關系或非關系性數據庫服務。

Openstack服務組件協同工作拓撲圖

技術分享圖片

中間菱形VM是虛擬機,圍繞 VM 的那些長方形代表 OpenStack 不同的模塊

OpenStack部署環境規劃

準備兩臺虛擬機,一臺作為控制節點,一臺作為計算節點

控制節點(Controller Node): 管理 OpenStack,其上運行的服務有 Keystone、Glance、Horizon 、Neutron、Cinder以及 Nova 和 Neutron 中管理相關的組件。 控制節點也運行支持 OpenStack 的服務,例如 SQL 數據庫(通常是 MySQL)、消息隊列(通常是 RabbitMQ)和網絡時間服務 NTP。

計算節點(Compute Node):其上運行 Hypervisor(默認使用 KVM)。 同時運行 Neutron 服務的 agent,為虛擬機提供網絡支持。

控制節點IP: 192.168.64.7

計算節點IP: 192.168.64.8

OpenStack部署環境準備

第一步:關閉防火墻

兩臺虛擬機都要操作

[root@ken-node1 ~]# setenforce 0
[root@ken-node1 ~]# systemctl stop firewalld

第二步:域名解析

兩臺節點都需要操作

[root@ken-node1 ~]# vim /etc/hosts
[root@ken-node1 ~]# scp /etc/hosts 192.168.64.8:/etc/
The authenticity of host 192.168.64.8 (192.168.64.8) cant be established.
ECDSA key fingerprint is SHA256:EO1X8PdzqfD689Y2WYB6eLvaO/gvrWwhDd0cGDGmsgo.
ECDSA key fingerprint is MD5:6d:25:31:df:78:ef:63:1f:2a:2e:23:11:73:bb:fc:9b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 192.168.64.8 (ECDSA) to the list of known hosts.
root@192.168.64.8s password: 
hosts                                                                                                                      100%  205   113.9KB/s   00:00    
[root@ken-node1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.7 ken-node1
192.168.64.8 ken-node2

192.168.254.6 download.yunwei.edu #解析公司內部源(外部用戶無法使用)

第三步:測試外網連通性

兩臺都操作

我的兩臺節點都是使用的nat模式

[root@ken-node1 ~]# ping -c 2 baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=128 time=11.2 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=128 time=12.5 ms

--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 11.241/11.889/12.537/0.648 ms

第四步:使用公司源

兩臺主機都安裝

[root@ken-node1 ~]# cat yum-repo.sh 
mkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/C* /etc/yum.repos.d/old/
wget -O /etc/yum.repos.d/Centos7-Base-yunwei.repo    192.168.254.6/shell/Centos7-Base-yunwei.repo  
wget -O /etc/yum.repos.d/epel-yunwei.repo  192.168.254.6/shell/epel-yunwei.repo
wget -O /etc/yum.repos.d/rdo-release-yunwei.repo  192.168.254.6/shell/rdo-release-yunwei.repo
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud  192.168.254.6/shell/RPM-GPG-KEY-CentOS-SIG-Cloud
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7  192.168.254.6/shell/RPM-GPG-KEY-EPEL-7
yum repolist

第五步:開啟虛擬機的虛擬化

技術分享圖片

第六步:兩臺虛擬機時間統一

[root@ken-node2 ~]# ntpdate time1.aliyun.com
20 Mar 14:18:49 ntpdate[1160]: step time server 203.107.6.88 offset -28800.262060 sec
[root@ken-node2 ~]# date
Wed Mar 20 14:18:52 CST 2019

OpenStack組件安裝

OpenStack包

第一步:安裝啟用OpenStack倉庫的包

[root@ken-node1 ~]# yum install centos-release-openstack-ocata -y

第二步:安裝OpenStack客戶端

[root@ken-node1 ~]# yum install python-openstackclient -y

第三步: 安裝 openstack-selinux 軟件包以便自動管理 OpenStack 服務的安全策略

[root@ken-node1 ~]# yum install openstack-selinux -y

SQL數據庫

第一步:安裝軟件包

[root@ken-node1 ~]# yum install mariadb mariadb-server python2-PyMySQL -y

第二步:創建並編輯 /etc/my.cnf.d/openstack.cnf,然後完成如下動作:

  • [mysqld] 部分,設置 ``bind-address``值為控制節點的管理網絡IP地址以使得其它節點可以通過管理網絡訪問數據庫:

[root@ken-node1 ~]# cat /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 192.168.64.7  #綁定控制節點IP

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

第三步:啟動數據庫服務,並將其配置為開機自啟

[root@ken-node1 ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@ken-node1 ~]# systemctl start mariadb.service

第四步:為了保證數據庫服務的安全性,運行``mysql_secure_installation``腳本

[root@ken-node1 ~]# mysql_secure_installation

消息隊列

第一步:安裝

[root@ken-node1 ~]# yum install rabbitmq-server -y

第二步:啟動消息隊列服務並將其配置為隨系統啟動

[root@ken-node1 ~]# systemctl enable rabbitmq-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.
[root@ken-node1 ~]# systemctl start rabbitmq-server.service

第三步:添加 openstack 用戶

密碼為openstack

[root@ken-node1 ~]# rabbitmqctl add_user openstack openstack
Creating user "openstack" ...

第四步:給``openstack``用戶配置寫和讀權限

[root@ken-node1 ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...

Memcached

第一步:安裝

[root@ken-node1 ~]# yum install memcached python-memcached -y

第二步:編輯配置文件/etc/sysconfig/memcached

[root@ken-node1 ~]# vim /etc/sysconfig/memcached
[root@ken-node1 ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,192.168.64.7" #後面添加Ip即可

第三步:啟動

[root@ken-node1 ~]# systemctl enable memcached.service
Created symlink from /etc/systemd/system/multi-user.target.wants/memcached.service to /usr/lib/systemd/system/memcached.service.
[root@ken-node1 ~]# systemctl start memcached.service

至此,所有的組件已經安裝完畢,下節開始安裝配置認證服務!

雲計算OpenStack:雲計算介紹及組件安裝(一)