云计算介绍

当用户能够通过互联网方便的获取到计算、存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式。每个运维人员心里都有一个对云计算的理解,而最普遍接受的是NIST(美国国家标准与技术研究院)的定义:

云计算是一种按使用量付费的服务模式,这是一种能够提供可用的、便捷的、按需求的网络访问模式,计算共享池能够快速的为用户提供网络、服务器、存储、应用软件及其他服务,并且只需要花费很少的管理时间。

服务层次

NIST还针对于云计算的服务模式提出了3个服务层次:

Iaas:提供给用户的是云计算基础设施,包括CPU、内存、存储、网络等其他的资源服务,用户不需要控制存储与网络等基础设施。
Paas:提供给用户的是云计算中的开发和分发应用的解决方案,用户能够部署应用程序,也可以控制相关的托管环境,比如云服务器及操作系统,但用户不需要接触到云计算中的基础设施。
Saas:提供给用户的是云计算基础设施上的应用程序,用户只需要在客户端界面访问即可使用到所需资源,而接触不到云计算的基础设施。

云计算OpenStack:云计算介绍及组件安装(一)--技术流ken-LMLPHP

OpenStack项目

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

Openstack项目的版本按照ABCDEFG……的顺序发布,每6个月更新一次。

Openstack最初是由NASA和Rackspace共同发起的云端计算服务项目,该项目以Apache许可证授权的方式成为了一款开源产品,目的是将多个组件整合后从而实现一个开源的云计算平台,目前Openstack项目正在被红帽、IBM、AMD、Intel、戴尔、思科、微软等超过一百家厂商共同研发,并已经支持了几乎所有的常见云计算环境,拥有了良好的可扩展性,而且部署搭建Openstack服务也变得十分简单,目前国内对于云计算的需求也逐渐增加,华胜天成、高德地图、京东、阿里巴巴、百度、中兴、华为等中国企业也加入到了Openstack项目研发当中,Openstack项目也正在随着全球内得到了众多厂商的参与支持而快速成熟。

云计算OpenStack:云计算介绍及组件安装(一)--技术流ken-LMLPHP

Open是开放,Stack则是堆砌之意,合起来就是将众多的功能服务堆积起来的集合,让人们通过Openstack云计算项目,能够将诸如计算能力、存储、网络和软件等资源抽象成服务,以便让用户可以通过互联网远程来享用,付费的形式也变得因需而定,调整方便,拥有极强的虚拟可扩展性,是公共和私有云的建设与管理软件中的优秀开源项目。

Openstack作为一个云平台的管理项目,其功能组件覆盖了网络、虚拟化、操作系统、服务器等多个方面,每个功能组件交由不同的项目委员会来研发和管理,目前核心的项目包括有:

Openstack服务组件协同工作拓扑图

云计算OpenStack:云计算介绍及组件安装(一)--技术流ken-LMLPHP

中间菱形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

第五步:开启虚拟机的虚拟化

云计算OpenStack:云计算介绍及组件安装(一)--技术流ken-LMLPHP

第六步:两台虚拟机时间统一

[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

至此,所有的组件已经安装完毕,下节开始安装配置认证服务!

03-21 03:34