[关闭]
@zhangyy 2019-12-16T10:02:36.000000Z 字数 4172 阅读 147

Openstack 云计算(二): Openstack Rocky部署一 环境初始化

openstack系列


  • 一: openstack的介绍以及组件
  • 二: openstack的架构
  • 三: openstack的环境初始化

一: openstack的介绍以及组件

1.1: openstack的介绍

  1. OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
  2. OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
  3. OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。

1.2:openstack的组件

  1. OpenStack包含了许多组件。有些组件会首先出现在孵化项目中,待成熟以后进入下一个OpenStack发行版的核心服务中。同时也有部分项目是为了更好地支持OpenStack社区和项目开发管理,不包含在发行版代码中,主要组件如下:
  2. Compute (Nova) 计算服务
  3. Identity Service (Keystone) 认证服务
  4. Image Service (Glance) 镜像服务
  5. Networking (Neutron) 网络服务
  6. Dashboard (Horizon) 仪表板
  7. Object Storage (Swift) 对象存储
  8. Block Storage (Cinder) 块存储
  9. Orchestration (Heat) 编排
  10. Telemetry (Ceilometer) 监控
  11. Database Service (Trove) 数据库服务
  12. Data Processing (Sahara) 数据处理

二:Openstack的架构

  1. OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合。如下图为OpenStack的概念架构,我们看到的是一个标准的OpenStack项目组合的架构。这是比较典型的架构,但不代表这是OpenStack的唯一架构,我们可以选取自己需要的组件项目,来搭建适合自己的云计算平台。

image_1d7jo3r8q1cl1ep4sksfdr1hv19.png-2060.1kB

  1. OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能,如下图为OpenStack的逻辑架构。通过消息队列和数据库,各个组件可以相互调用,互相通信。这样的消息传递方式解耦了组件、项目间的依赖关系,所以才能灵活地满足我们实际环境的需要,组合出适合我们的架构。每个项目都有各自的特性,大而全的架构并非适合每一个用户,譬如Glance在最早的AB版本中并没有实际出现应用,Nova可以脱离镜像服务独立运行。当用户的云计算规模大到需要管理多种镜像时,才需要像Glance这样的组件。OpenStack的成长是在生产环境中不断被检验,然后再将需求反馈给社区,由社区来实现的一个过程,可以说OpenStack并非脱离实际的理想化开源社区项目,而是与生产实际紧密结合的,可以复制应用的云计算方案。
  2. OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。
  3. 这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。

image_1d7jo5dg71f01hil1fkg1fmt1qugm.png-1291kB

  1. 概念架构图:

image_1d7jo74731bmd1an31tgerl1ffn13.png-112.6kB

image_1d7jo95111f3n1pedhit1q9e7sc1g.png-288.4kB

image_1d7jo9pdji9tcku20afhpl5j1t.png-53.6kB

  1. 逻辑架构图:

image_1d7jobrrk1b7p1eedmgq1ia24m2q.png-392.4kB

image_1d7jocfa61l0815sebap1uvf1rco37.png-1112kB

  1. 以上参考:
  2. http://ken.pepple.info/openstack/2012/09/25/openstack-folsom-architecture/
  3. https://ilearnstack.com/2013/04/23/introduction-to-openstack-2/

三: openstack的环境初始化

3.1:部署网络

image_1d8l5b7uc1v0hkeur9a1g7v3081k.png-266.9kB

主机网络

image_1d8l5m1o31pnr1pjl12hv1o3o1c0524.png-162.6kB

3.2: 环境初始化

  1. 主机名配置
  2. 10.0.0.11 controller
  3. 10.0.0.31 computer1
  4. 10.0.0.41 block1
  5. 10.0.0.51 object1
  6. 10.0.0.52 object2
  1. controller 节点
  2. 两张网卡:
  3. ens33: 10.0.0.11 用作内部通讯
  4. ens37: 172.17.100.6 用作上网网卡
  5. computer1 节点 (上网下包用 10.0.0.11
  6. 两张网卡:
  7. ens33: 10.0.0.31 网关指向 10.0.0.11.
  8. ens37: dhcp 自动获得
  9. block1节点
  10. 一张网卡:
  11. ens33: 10.0.0.41 网关指向 10.0.0.11
  12. object1
  13. 一张网卡:
  14. ens3310.0.0.51 网关指向 10.0.0.11
  15. object2
  16. 一张网卡:
  17. ens3310.0.0.52 网关指向 10.0.0.11

3.3: 配置chronyd时间服务器

  1. 配置好时间同步服务器chronyd
  2. controller 节点: 同步 ntp1.aliyun.com
  3. 其它节点同步 controller
  4. 所用节点执行命令:
  5. timedatectl set-timezone Asia/Shanghai
  6. 使用 上海时间
  7. ----
  8. vim /etc/chronyd.conf

image_1d8l7g4g13ba1hfm17eisli7v72h.png-161.8kB

  1. service chronyd stop
  2. service chronyd start
  3. chronyc sources -v

image_1d8l7p0hcn4l1ucm18ip18ql1nst2u.png-175.2kB

  1. computer1 节点:
  2. vim /etc/chronyd.conf
  3. --
  4. server controller iburst
  5. --
  6. service chronyd stop
  7. service chronyd start
  8. chronyc sources -v

image_1d8l7sheq1ffmlii1dru1aig11q83b.png-108.8kB

image_1d8l7udak1kpe17bqg45gjp1dtt3o.png-120.7kB

3.4 配置controller 节点的路由转发

  1. controller 配置好ip路由地址转发
  2. iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 172.17.100.6
  3. service iptables save
  4. vim /etc/sysctl.conf
  5. net.ipv4.ip_forward = 1
  6. sysctl -p

image_1d8l823eo11lrpcuib31djve6245.png-207.9kB

image_1d8l841mac9118hl115o10tf1mh24i.png-26.3kB

image_1d82k9fmm1ql5pbt2i4794o2a2s.png-116.4kB

3.5 配置节点的openstack rocky的yum 源

  1. 所有节点配置openstack rocky yum
  2. yum install epel*
  3. yum install centos-release-openstack-rocky
  4. yum install https://rdoproject.org/repos/rdo-release.rpm
  5. yum upgrade
  6. yum install python-openstackclient openstack-selinux -y

image_1d8l8ieno3va1mtc1dll10l31pid4v.png-124.5kB

image_1d8l8l56m1t0p9mr1lq1158c13iv6u.png-155.9kB

image_1d8l8nof248v1tvd187o119jmhj7b.png-146kB


3.6 controller 节点 准备mariadb数据库

  1. controller 节点准备mariadb 数据库
  2. yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y
  3. vim /etc/my.cnf.d/openstack.cnf
  4. ----
  5. [mysqld]
  6. bind-address = 0.0.0.0
  7. default-storage-engine = innodb
  8. innodb_file_per_table = on
  9. max_connections = 4096
  10. collation-server = utf8_general_ci
  11. character-set-server = utf8
  12. init-connect = 'SET NAMES utf8'
  13. ----
  14. service mariadb start
  15. chkconfig mariadb on
  16. mysql_secure_installation
  17. ----(设置mariadb root密码为 flyfish225)

image_1d82l25dk5q310g01oj5jsn1epa59.png-175.1kB

image_1d82l2t4p1ncn28d1bkd148i1e1e5m.png-87kB

image_1d82l3jdf15i1me3as2ue5f4u63.png-162.8kB

image_1d82l4ke18gdc7j10u8nb7s426g.png-121kB

3.7 controller 节点准备 消息队列 rabbitmq-server

  1. yum install rabbitmq-server
  2. systemctl enable rabbitmq-server.service
  3. systemctl start rabbitmq-server.service
  4. rabbitmqctl add_user openstack openstack
  5. rabbitmqctl set_permissions openstack ".*" ".*" ".*"

image_1d8lbe4ac1hh69c1mkr17fk1knr7u.png-180.3kB

3.8 controller 节点 准备 Memcached

  1. yum install memcached python-memcached
  2. vim /etc/sysconfig/memcached
  3. ---
  4. OPTIONS="-l 127.0.0.1,::1,controller"
  5. ---
  6. systemctl enable memcached.service
  7. systemctl start memcached.service

image_1d8lbovog1sn71segk511rdk1dvj8b.png-145.8kB

image_1d8lbri0s1o91a4pidd95naqkaa.png-40.3kB

image_1d8lbqi381l7s1abjv01rq1v499e.png-94.7kB

3.9 控制节点准备ETCD 服务器

  1. yum install etcd
  2. ---
  3. #[Member]
  4. ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
  5. ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
  6. ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
  7. ETCD_NAME="controller"
  8. #[Clustering]
  9. ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
  10. ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
  11. ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
  12. ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
  13. ETCD_INITIAL_CLUSTER_STATE="new"
  14. ---
  15. systemctl enable etcd
  16. systemctl start etcd
  17. 至此 openstack rocky 控制节点 环境初始化完成 !!!!!!!

image_1d8lc0ifu50hnqq1o4v64dm31c7.png-134.4kB

image_1d8lc3cr71ao51p1d123219721il0ck.png-52.9kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注