欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

详解Openstack组件部署 — Overview和前期环境准备

程序员文章站 2022-05-13 21:09:09
前言 一直以来对openstack都是心存向往的,大学的毕业设计题目也是《openstack dashboard的页面定制》,还以此获得了当年的优秀毕业论文。从学生年代懵...

前言

一直以来对openstack都是心存向往的,大学的毕业设计题目也是《openstack dashboard的页面定制》,还以此获得了当年的优秀毕业论文。从学生年代懵懂的将技术方向定位为系统架构到逐渐转型踏上openstack开发之路,走的磕磕碰碰,总得来说还是希望能为openstack做出一些自己的贡献。即便微不足道,我想这正正就是开源的魅力和力量吧。
openstack系列博文会从最基本的部署 –> 组件功能实现原理 –> 源码解析这么个由浅入深的过程来记录。

软件环境

系统 

centos 7

软件版本

  1. vmware 10
  2. openstack-kilo

openstack 简介

what's openstack ?

这个问题,我相信没有任何人能够比openstack官网给出更好的答案。

详解Openstack组件部署 — Overview和前期环境准备 

原文:openstack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

粗译:openstack是一个控制着大量计算能力、存储、乃至于整个数据中心网络资源的云操作系统,通过dashboard这个web界面,让管理员可以控制、赋予他们的用户去提供资源的权限(即:能够通过dashboard控制整个openstack云计算平台的运作)。

openstack 架构

openstack的发展非常快,而且由于其开源的本质,所以导致了即便是前后相隔的两个不同版本,也可能会出现比较大的区别。所以在我们初习openstack的时候,应该考虑从一个体系相对成熟,资料相对丰富的版本入手。当然如果你拥有良好的英文阅读习惯的话,openstack的官网就提供了非常完善的最新版本的文档资料。

本篇是openstack系列的开篇,所以先对openstack整体架构做一个粗略的了解。

详解Openstack组件部署 — Overview和前期环境准备

部署openstack的方法有很多,官方文档step by step、fuel在线安装、devstack、镜像、rdo库等等。当然如果希望更好的理解openstack各组件的功能和关系的话,按照官方文档来一步步部署将会是一个非常不错的选择。

openstack组件

  1. compute (nova) 计算服务
  2. identity service (keystone) 认证服务
  3. image service (glance) 镜像服务
  4. networking (neutron/quantum) 网络服务
  5. dashboard (horizon) 仪表板
  6. object storage (swift) 对象存储
  7. block storage (cinder) 块存储
  8. orchestration (heat) 编排
  9. telemetry (ceilometer) 监控
  10. database service (trove) 数据库服务
  11. data processing (sahara) 数据处理

openstack install overview

硬件参数:

详解Openstack组件部署 — Overview和前期环境准备

这是官方给出的example architecture,因为我们的实验环境是vmware,所以会对架构规划作出相应的修改,如下:

node 拓扑

详解Openstack组件部署 — Overview和前期环境准备 

这是一个相对接近生产环境的拓扑图,涉及到虚拟专用网络、高可用、主从备份、负债均衡等架构思想。

ipaddress 规划

详解Openstack组件部署 — Overview和前期环境准备

  1. managerment network on 192.168.1.0/24 with gateway 192.168.1.1
  2. instance tunnels network on 172.16.0.0/24 with gateway 172.16.0.1

hostname

controller.jmilk.com    192.168.1.5 
network.jmilk.com     192.168.1.6 
compute1.jmilk.com     192.168.1.10   
compute2.jmilk.com     192.168.1.11 
block1.jmilk.com     192.168.1.20 
block2.jmilk.com     192.168.1.21 
object1.jmilk.com     192.168.1.31 
object2.jmilk.com     192.168.1.32

创建node虚拟机

在vmware上至少创建controller、compute1、network三个核心组件node。如果条件允许的话最好能够按照node拓扑来创建node。

这一节的内容在每一个node上都需要进行。

推荐硬件参数:

  1. controller node: 2 cpu, 8 gb memory, and 100 gb storage,1 nip
  2. network node: 2 cpu, 4 mb memory, and 100 gb storage,3 nip
  3. compute node: 4 cpu, 8 gb memory, and 100 gb storage,2 nip

最低要求:

  1. controller node: 1 processor, 4 gb memory, and 5 gb storage
  2. compute node: 1 processor, 2 gb memory, and 10 gb storage

环境准备

所有node都需要执行环境准备的操作

基础设置

step1:关闭防火墙

systemctl mask iptables.service
systemctl mask ip6tables.service
systemctl mask ebtables.service
systemctl mask firewalld.service 

step2:设置主机名

hostnamectl set-hostname new_hostname 

step3:关闭selinux

step4:按照ipaddress规划来设置staticip

注意:当需要联网下载rdo库时,可以将虚拟机的网络选为桥接

example: controller node

复制代码 代码如下:

nmcli connection modify eno16777736 ipv4.addresses "192.168.1.5/24 192.168.1.1" ipv4.dns "202.106.195.68,202.106.46.151" ipv4.method manual

这样就可以连接到外网,在vmware中卫虚拟机添加多网卡的配置,可以参考centos7 修改网卡名称为eth0 & 在vmware中添加多网卡配置

install openstack预备包

#1. 安装yum-plugin-priorities包,防止高优先级软件被低优先级软件覆盖
yum install yum-plugin-priorities 

#2. 安装epel扩展yum源,是一个rhel系列的高质量软件源,可能版本号会被修改
yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm 

#3. 安装extras repository 和 rdo repository 
yum install centos-release-openstack-mitaka
yum install https://rdoproject.org/repos/rdo-release.rpm

#4. 更新系统
yum update -y

#5. 重启系统
reboot

#6. 安装openstack-selinux自动管理selinux 
yum install openstack-selinux 

#7. 安装openstack client
yum install python-openstackclient -y

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。