@zhangyy
2019-12-16T10:02:36.000000Z
字数 4172
阅读 147
openstack系列
- 一: openstack的介绍以及组件
- 二: openstack的架构
- 三: openstack的环境初始化
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
OpenStack包含了许多组件。有些组件会首先出现在孵化项目中,待成熟以后进入下一个OpenStack发行版的核心服务中。同时也有部分项目是为了更好地支持OpenStack社区和项目开发管理,不包含在发行版代码中,主要组件如下:
Compute (Nova) 计算服务
Identity Service (Keystone) 认证服务
Image Service (Glance) 镜像服务
Networking (Neutron) 网络服务
Dashboard (Horizon) 仪表板
Object Storage (Swift) 对象存储
Block Storage (Cinder) 块存储
Orchestration (Heat) 编排
Telemetry (Ceilometer) 监控
Database Service (Trove) 数据库服务
Data Processing (Sahara) 数据处理
OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合。如下图为OpenStack的概念架构,我们看到的是一个标准的OpenStack项目组合的架构。这是比较典型的架构,但不代表这是OpenStack的唯一架构,我们可以选取自己需要的组件项目,来搭建适合自己的云计算平台。
OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能,如下图为OpenStack的逻辑架构。通过消息队列和数据库,各个组件可以相互调用,互相通信。这样的消息传递方式解耦了组件、项目间的依赖关系,所以才能灵活地满足我们实际环境的需要,组合出适合我们的架构。每个项目都有各自的特性,大而全的架构并非适合每一个用户,譬如Glance在最早的A、B版本中并没有实际出现应用,Nova可以脱离镜像服务独立运行。当用户的云计算规模大到需要管理多种镜像时,才需要像Glance这样的组件。OpenStack的成长是在生产环境中不断被检验,然后再将需求反馈给社区,由社区来实现的一个过程,可以说OpenStack并非脱离实际的理想化开源社区项目,而是与生产实际紧密结合的,可以复制应用的云计算方案。
OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。
这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。
概念架构图:
逻辑架构图:
以上参考:
http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/
https://ilearnstack.com/2013/04/23/introduction-to-openstack-2/
主机名配置
10.0.0.11 controller
10.0.0.31 computer1
10.0.0.41 block1
10.0.0.51 object1
10.0.0.52 object2
controller 节点
两张网卡:
ens33: 10.0.0.11 用作内部通讯
ens37: 172.17.100.6 用作上网网卡
computer1 节点 (上网下包用 10.0.0.11)
两张网卡:
ens33: 10.0.0.31 网关指向 10.0.0.11.
ens37: dhcp 自动获得
block1节点
一张网卡:
ens33: 10.0.0.41 网关指向 10.0.0.11
object1
一张网卡:
ens33:10.0.0.51 网关指向 10.0.0.11
object2
一张网卡:
ens33:10.0.0.52 网关指向 10.0.0.11
配置好时间同步服务器chronyd
controller 节点: 同步 ntp1.aliyun.com
其它节点同步 controller
所用节点执行命令:
timedatectl set-timezone Asia/Shanghai
使用 上海时间
----
vim /etc/chronyd.conf
service chronyd stop
service chronyd start
chronyc sources -v
computer1 节点:
vim /etc/chronyd.conf
--
server controller iburst
--
service chronyd stop
service chronyd start
chronyc sources -v
在 controller 配置好ip路由地址转发
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 172.17.100.6
service iptables save
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
所有节点配置openstack rocky 的 yum 源
yum install epel*
yum install centos-release-openstack-rocky
yum install https://rdoproject.org/repos/rdo-release.rpm
yum upgrade
yum install python-openstackclient openstack-selinux -y
controller 节点准备mariadb 数据库
yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y
vim /etc/my.cnf.d/openstack.cnf
----
[mysqld]
bind-address = 0.0.0.0
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
init-connect = 'SET NAMES utf8'
----
service mariadb start
chkconfig mariadb on
mysql_secure_installation
----(设置mariadb 的 root密码为 flyfish225)
yum install rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
yum install memcached python-memcached
vim /etc/sysconfig/memcached
---
OPTIONS="-l 127.0.0.1,::1,controller"
---
systemctl enable memcached.service
systemctl start memcached.service
yum install etcd
---
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
---
systemctl enable etcd
systemctl start etcd
至此 openstack rocky 控制节点 环境初始化完成 !!!!!!!