OpenStack踩坑之路(1)

2019-07-28 13:53:42 浏览数 (1)

谁终将声震人间,必长久深自缄默;谁终将点燃闪电,必长久如云漂泊。 ——尼采


关于OpenStack

该系统由OpenStack的若干服务组成,这些服务根据您的云一起工作,服务包括该计算机的身份、网络、图像、存储块,对象存储、遥测、业务流程及数据库服务。任何项目的安装可以分开和独立的配置作为连接或实体。

OpenStack各组件名称及功能

项目名称

项目代码

描述

Dashboard

Horizon

为OpenStack提供了一个web管理界面,可在web界面创建实例等操作

Network

Neutron

实现了虚拟机的网络资源管理。

Computer

Nova

通过虚拟化技术提供计算资源池

Identify Service

Keystone

为其他服务提供管理身份验证,授权和端点目录

Block Service

Cinder

为运行的实例提供持久的存储

Object Service

Swift

是一个多租户对象存储系统,用于存储帐户,容器和对象的磁盘

Image Service

Glance

Image服务使用户能够发现,注册和检索虚拟机映像

Orchestration Service

Heat

编排服务通过运行OpenStack API调用来生成正在运行的云应用程序,从而提供基于模板的业务流程来描述云应用程序。

Bare Metal Service

Ironic

裸机服务是一组组件集合,可以为管理和配置物理机器提供支持。

Database Service

Trove

数据库服务为关系数据库引擎和非关系数据库引擎提供了可扩展且可靠的云配置功能。用户可以快速轻松地使用数据库功能,而无需处理复杂的管理任务。云用户和数据库管理员可以根据需要配置和管理多个数据库实例。

Metering & Data Collecting Service

Ceilometer

提供监控和数据采集、计量服务

Containers Service

Zun

Zun是Openstack中提供容器管理服务的组件

Clustering Service

Senlin

Senlin是OpenStack云的集群服务。它创建并运行由其他OpenStack服务公开的同类对象群集。使相似对象的集合更容易编排。

Shared File Systems Service

Manila

为虚拟机提供文件存储。文件共享系统服务提供了管理和供应文件共享的抽象化。该服务还支持共享类型的管理以及驱动程序支持共享快照。

Load-balancer Service

Octavia

Octavia是一款开源的运营商级负载均衡解决方案,旨在与OpenStack配合使用。

OpenStack架构图

OpenStack逻辑体系结构

OpenStack基础环境搭建

1.查看环境配置,配置好名称解析,并关闭selinux和firewall,在计算节点也做相同配置

2.安装并配置时间服务器

[root@controller~]# yum install chrony

为了使其他节点连接到控制器上的chrony守护程序

[root@controller~]# sed -i '7a server 173.168.16.224 iburst' /etc/chrony.conf

[root@controller~]# sed -i '8a allow 173.168.16.0/24' /etc/chrony.conf

启动时间服务器并随系统开机启动

[root@controller~]# systemctl enable chronyd

[root@controller~]# systemctl start chronyd

3.安装OpenStack软件包(在所有节点上安装)

安装OpenStack存储库(这里我选择的是OpenStack的pike版本)

[root@controller ]# yum install centos-release-openstack-pike

升级所有节点上的安装包

[root@controller~]# yum upgrade

注意:这里出现一个错误,yum源出问题了,执行下图的第四条和第五条命令即可

安装openstack客户端

[root@controller ]#yum -y install python-openstackclient

安装openstack-selinux软件包

[root@controller ]# yum install openstack-selinux

4.安装并配置mariadb数据库

[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL

创建并编辑该/etc/my.cnf.d/openstack.cnf文件并添加以下部分:

[mysqld]

bind-address= 173.168.16.224

default-storage-engine= innodb

innodb_file_per_table= on

max_connections= 4096

collation-server= utf8_general_ci

character-set-server= utf8

启动数据库并随着系统开机启动

[root@controllermy.cnf.d]# systemctl enable mariadb

[root@controllermy.cnf.d]# systemctl start mariadb

初始化mariadb数据库,运行mysql_secure_installation脚本来保护数据库服务。特别是为数据库root帐户选择一个合适的密码。

5.安装消息队列

[root@controller /]# yum install rabbitmq-server

启动消息队列服务并将其配置为在系统引导时启动

[root@controller/]# systemctl enable rabbitmq-server.service

[root@controller/]# systemctl start rabbitmq-server.service

添加OpenStack用户

[root@controller/]# rabbitmqctl add_user openstack openstack

允许用户进行配置,写入和读取访问openstack

[root@controller/]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

重启消息队列服务

[root@controller/]# systemctl restart rabbitmq-server

6.安装memcached缓存服务

[root@controller /]# yum install memcached python-memcached

启动Memcached服务并将其配置为在系统引导时启动

[root@controller/]# systemctl enable memcached

[root@controller/]# systemctl start Memcached

7.安装ETCD

OpenStack服务可能使用Etcd,这是一个分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务的实时性和其他场景。

安装软件包

[root@controller /]# yum install etcd

编辑/etc/etcd/etcd.conf文件并设置控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址

#[Member]

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS=http://173.168.16.224:2380

ETCD_LISTEN_CLIENT_URLS=http://173.168.16.224:2379

ETCD_NAME="controller"

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS=http://173.168.16.224:2380 ETCD_ADVERTISE_CLIENT_URLS=http://173.168.16.224:2379 ETCD_INITIAL_CLUSTER="controller=http://173.168.16.224:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new"

开启etcd服务并随系统开机启动

[root@controller/]# systemctl enable etcd

[root@controller/]# systemctl start etcd


至此,openstack基础环境搭建完成,公众号回复openstack即可获取openstack的pike所有安装文档

参考链接:https://docs.openstack.org/install-guide/environment.html

0 人点赞