OpenStack踩坑之路(1)

简介: OpenStack踩坑之路(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架构图


640.jpg


OpenStack逻辑体系结构


640.jpg


OpenStack基础环境搭建

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


640.jpg


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源出问题了,执行下图的第四条和第五条命令即可


640.jpg


安装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 ".*" ".*" ".*"


640.png


重启消息队列服务


[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 etc



相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
消息中间件 机器学习/深度学习 关系型数据库
|
9月前
|
存储 Kubernetes 负载均衡
k8s学习之路【01.安装】
k8s学习之路【01.安装】
|
Arthas Kubernetes Cloud Native
开源小白到核心开发——我与 sealer 的成长故事
下面将以作者本人与 sealer 的一段成长故事来带领大家体验从小白到核心功能开发者的开源之旅,同时本文也作为一篇引领开源小白入门的文章供大家参考。
开源小白到核心开发——我与 sealer 的成长故事
|
消息中间件 Prometheus 监控
从零开始搭建创业公司全新技术栈
从零开始搭建创业公司全新技术栈
209 0
从零开始搭建创业公司全新技术栈
|
存储 安全 Shell
OpenStack踩坑之路(4)
OpenStack踩坑之路(4)
OpenStack踩坑之路(4)
|
存储 中间件 API
OpenStack踩坑之路(2)
OpenStack踩坑之路(2)
OpenStack踩坑之路(2)
|
存储 Kubernetes Ubuntu
2021-Java后端工程师必会知识点-(Docker)(下)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
138 0
|
运维 Dubbo Java
2021-Java后端工程师必会知识点-(Docker)(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
142 0
|
消息中间件 SQL 移动开发
DevOps 工程师成长日记系列三:版本
原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-part-3-version-76034885a7ab原文作者:Igor Kantor翻译君:CODING 戴维奥普斯 “Close-up of a backlit laptop keyboard” by Markus Petritz on Unsplash 快速回顾 让我们快速回顾一下前文:简而言之,这个系列文章讲述的是现代 DevOps 的精髓——如何将一个想法尽可能快速地转化上线实现盈利。