雲計算介紹
當用戶能夠通過互聯網方便的獲取到計算、存儲等服務時,我們比喻自己使用到了“雲計算”,雲計算並不能被稱為是一種計算技術,而更像是一種服務模式。每個運維人員心里都有一個對雲計算的理解,而最普遍接受的是NIST(美國國家標准與技術研究院)的定義:
雲計算是一種按使用量付費的服務模式,這是一種能夠提供可用的、便捷的、按需求的網絡訪問模式,計算共享池能夠快速的為用戶提供網絡、服務器、存儲、應用軟件及其他服務,並且只需要花費很少的管理時間。
服務層次
NIST還針對於雲計算的服務模式提出了3個服務層次:
、
OpenStack項目
OpenStack官方網站:https://www.openstack.org/
Openstack項目的版本按照ABCDEFG……的順序發布,每6個月更新一次。
Openstack最初是由NASA和Rackspace共同發起的雲端計算服務項目,該項目以Apache許可證授權的方式成為了一款開源產品,目的是將多個組件整合后從而實現一個開源的雲計算平台,目前Openstack項目正在被紅帽、IBM、AMD、Intel、戴爾、思科、微軟等超過一百家廠商共同研發,並已經支持了幾乎所有的常見雲計算環境,擁有了良好的可擴展性,而且部署搭建Openstack服務也變得十分簡單,目前國內對於雲計算的需求也逐漸增加,華勝天成、高德地圖、京東、阿里巴巴、百度、中興、華為等中國企業也加入到了Openstack項目研發當中,Openstack項目也正在隨着全球內得到了眾多廠商的參與支持而快速成熟。
Open是開放,Stack則是堆砌之意,合起來就是將眾多的功能服務堆積起來的集合,讓人們通過Openstack雲計算項目,能夠將諸如計算能力、存儲、網絡和軟件等資源抽象成服務,以便讓用戶可以通過互聯網遠程來享用,付費的形式也變得因需而定,調整方便,擁有極強的虛擬可擴展性,是公共和私有雲的建設與管理軟件中的優秀開源項目。
功能 | 項目名稱 | 描述 |
計算服務 | Nova | 負責虛擬機的創建、開關機、掛起、遷移、調整CPU、內存等規則。 (核心服務) |
對象存儲 | Swift | 用於在大規模可擴展系統中通過內置的冗余及高容差機制實現對象存儲的系統。(可選服務) |
鏡像服務 | Glance | 用於創建、上傳、刪除、編輯鏡像信息的虛擬機鏡像查找及索引系統。 (核心服務) |
身份服務 | Keystone | 為其他的功能服務提供身份驗證、服務規則及服務令牌的功能。 (核心服務) |
網絡管理 | Neutron | 用於為其他服務提供雲計算的網絡虛擬化技術,可自定義各種網絡規則,支持主流的網絡廠商技術。(核心服務) |
塊存儲 | Cinder | 為虛擬機實例提供穩定的數據塊存儲的創建、刪除、掛載、卸載、管理等服務。(核心服務) |
圖形界面 | Horizon | 為用戶提供簡單易用的Web管理界面,降低用戶對功能服務的操作難度。 |
測量服務 | Ceilometer | 收集項目內所有的事件,用於監控、計費或為其他服務提供數據支撐。 |
部署編排 | Heat | 實現通過模板方式進行自動化的資源環境部署服務。 |
數據庫服務 | Trove | 為用戶提供可擴展的關系或非關系性數據庫服務。 |
Openstack服務組件協同工作拓撲圖
中間菱形VM是虛擬機,圍繞 VM 的那些長方形代表 OpenStack 不同的模塊
OpenStack部署環境規划
本教程部署的openstack版本為O版
准備兩台虛擬機,一台作為控制節點,一台作為計算節點
控制節點(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)' can't 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.8's 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
至此,所有的組件已經安裝完畢,下節開始安裝配置認證服務!