Openstack

云平台部署与管理
openstack 私有云
docker 弹性云
公有云

大型架构配置
ansible
ELK
hadoop

云计算简介

什么是云计算

  • 基于互联网的相关服务的增加、使用和交付模式
  • 这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池
  • 这些资源能够被快速提供,只需投入很少的管理工作, 或与服务供应商进行很少的交互
  • 通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源

IaaS

  • Iaas( Infrastructure as Service),即基础设施即服务
  • 提供给消费者的服务是对所有计算基础设施的利用, 包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序
  • IaaS通常分为三种用法:公有云、私有云和混合云

PaaS

  • PaaS( Platform-as-a-Service),意思是平台即服务
  • 以服务器平台或者开发环境作为服务进行提供就成为了PaaS
  • PaaS运营商所需提供的服务,不仅仅是单纯的基础平台,还针对该平台的技术支持服务,甚至针对该平台而进行的应用系统开发、优化等服务
  • 简单地说,PaaS平台是指云环境中的应用基础设施 服务,也可以说是中间件即服务

SaaS

  • SaaS(Software-as-a-Service)软件即服务,是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务
  • 用户不用再购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动,不用对软件进行维护,提供商会全权管理和维护软件,同时也提供软件的离线操作和本地数据存储

Openstack简介

  • OpenStack是一个由NASA(美国国家航空航天局) 和Rackspace合作研发并发起的项目
  • OpenStack是一套IaaS解决方案
  • OpenStack是一个开源的云计算管理平台
  • 以 Apache许可证为授权

openstack结构

在这里插入图片描述
Openstack主要组件

  • Horizon

    • 用于管理 Openstack各种服务的、基于web的管理接口
    • 通过图形界面实现创建用户、管理网络、启动实例等操作
  • Glance 管理镜像

    • 扮演虚拟机镜像注册的角色
    • 允许用户为直接存储拷贝服务器镜像
    • 这些镜像可以用于新建虚拟机的模板
  • Nova 管理虚拟机

    • 在节点上用于管理虚拟机的服务
    • Nova是一个分布式的服务,能够与 Keystone交互实现认证,与 Glance交互实现镜像管理
    • Nova被设计成在标准硬件上能够进行水平扩展
    • 启动实例时,如果有则需要下载镜像
  • Swift 存储云组件,对象存储

  • Neutron 网络组件(最复杂)

    • 一种软件定义网络服务
    • 用于创建网络、子网、路由器、管理浮动IP地址
    • 可以实现虚拟交换机、虚拟路由器
    • 可用于在项目中创建VPN
  • Cinder 存储卷

    • 经常应用在实例存储环境中,如数据库文件
    • 为虚拟机管理存储卷的服务
    • 为运行在Nova中的实例提供永久的块存储
    • 可以通过快照进行数据备份
  • Keystone 集中式的认证和授权

    • 为用户和其他服务提供了SSO认证服务
    • 为其他服务提供认证和授权的集中身份管理服务
    • 也提供了集中的目录服务
    • 支持多种身份认证模式,如密码认证、令牌认证、以及Aws(亚马逊Web服务)登陆

部署安装环境

  • 虚拟机配置4台
角色 主机名 IP地址 内存 CPU核心数 硬盘容量
yum服务器 yum 192.168.1.100 1G 2 20G
openstack管理节点 openstackmgm 192.168.1.10 8G 2 50G
nova01 nova01 192.168.1.11 3G 2 100G
nova02 nova02 192.168.1.12 3G 2 100G
  • 所有虚拟机的firewalld/NetworkManager必须关闭,SELinux设置为disabled

1)配置yum服务器

yum -y install httpd
cd /var/www/html/
mkdir openstack extras centos-1804
mount -t iso9660 -o ro,loop /iso/CentOS-7-x86_64-DVD-1804.iso centos-1804
mount -t iso9660 -o ro,loop /iso/RHEL7-extras.iso extras
mount -t iso9660 -o ro,loop /iso/RHEL7OSP-10.iso openstack
systemctl start httpd
lftp http://192.168.1.100/extras     # 查看是否成功
> ls

2)配置ntp时间同步

服务器:yum

] yum -y install chrony
] vim /etc/chrony.conf
bindacqaddress 0.0.0.0
allow 0/0
] systemctl restart chronyd

客户端:openstack_manager/nova01/nova02

] yum -y install chrony
] vim /etc/chrony.conf
server 192.168.1.100 iburst
] rsync -av /etc/chrony.conf 192.168.1.11:/etc/chrony.conf
] rsync -av /etc/chrony.conf 192.168.1.12:/etc/chrony.conf
] systemctl restart chronyd
] chronyc sources -v    # 检查
^* 192.168.1.100                  2   6   377    51    -37us[  -51us] +/-   10ms   # 出现*表示服务可用

3)配置DNS

所有机器相同配置

] vim /etc/resolv.conf
# 需要虚拟机可以上网
nameserver 8.8.8.8
# 去掉search开头的行
] vim /etc/hosts    
192.168.1.10 openstackmgm
192.168.1.11 nova01
192.168.1.12 nova02

4)配置yum源

vim /etc/yum.repos.d/openstack.repo
[openstack]
baseurl=http://192.168.1.100/openstack/rhel-7-server-openstack-10-rpms
gpgcheck=0
enabled=1
name=rhel openstack rpm

[openstack-tools]
baseurl=http://192.168.1.100/openstack/rhel-7-server-openstack-10-devtools-rpms
gpgcheck=0
enabled=1
name=rhel openstack devtools

[extrasrpm]
baseurl=http://192.168.1.100/extras/
gpgcheck=0
enabled=1
name=extras rpm

rsync -av /etc/yum.repos.d/openstack.repo nova01:/etc/yum.repos.d/
rsync -av /etc/yum.repos.d/openstack.repo nova02:/etc/yum.repos.d/

yum makecache
yum repolist

部署Openstack

1)依赖软件包安装

openstackmgm:
yum -y install python-setuptools openstack-packstack
nova01/nova02:
yum -y install qemu-kvm libvirt-daemon libvirt-daemon-driver-qemu libvirt-client python-setuptools
python-setuptools  # python工具包
openstack-packstack # openstack安装脚本
qemu-kvm # kvm虚拟化模块,启动虚拟机的底层硬件仿真工具
libvirt-daemon # 给用户提供管理虚拟化工具
libvirt-daemon-drive-qemu # 管理驱动
libvirt-client # 客户端命令行程序

2)检查基础环境

  • 是否卸载firewalld和NetworkManager
yum remove -y firewalld-*
systemctl mask NetworkManager # 禁止服务启动
systemctl unmask xxx # 取消禁止
  • 检查配置主机网络参数

不用NetworkManager修改网卡参数

vim /etc/sysconfig/network-scripits/ifcfg-xxxxx
systemctl start network
  • 主机名必须能够解析 /etc/hosts
  • 检查配置主机yum源
  • 依赖软件包是否安装
  • 检查NTP服务器是否可用
  • 检查/etc/resolv.conf不能有search开头的行
  • 检查SELinux是否禁用
  • 阿-里-云 环境练习,安装前执行pip uninstall urllib3

3)安装Openstack

] packstack --gen-answer-file=answer.ini  # 创建应答文件
] vim answer.ini
  42 CONFIG_SWIFT_INSTALL=n		#不安装swift模块
  45 CONFIG_CEILOMETER_INSTALL=n 	#计费相关模块
  49 CONFIG_AODH_INSTALL=n	 #计费相关模块
  53 CONFIG_GNOCCHI_INSTALL=n 	#计费相关模块
  75 CONFIG_NTP_SERVERS=192.168.1.100	 #时间服务器的地址
  98 CONFIG_COMPUTE_HOSTS=192.168.1.11	#计算节点
 102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11	#网络节点
 333 CONFIG_KEYSTONE_ADMIN_PW=a 		#修改管理员的密码
 840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan	 #驱动类型,flat直连连接,vxlan为可划分数量极多的vlan
 876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5  #设置组播地址,最后一个随意不能为0和255,其他固定
 910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex 	#物理网桥的名称
 921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 	#br-ex桥与eth0连接,管理eth0,网桥与哪个物理网卡连接
1179 CONFIG_PROVISION_DEMO=n	 #DEMO是否测试

] packstack --answer-file=answer.ini	 #执行应答文件

执行安装后,如果前期服务准备无误,等待安装结束即可,根据主机配置不同,需要等待20分钟左右,如果出现错误,按输出的日志文件进行排错

4)网络配置

  • 多计算节点的网络拓扑

在这里插入图片描述
在这里插入图片描述

  • 查看外部OVS网桥
cat /etc/sysconfig/network-scripts/ifcfg-br-ex
  • 查看外部OVS网桥端口
cat /etc/sysconfig/network-scripts/ifcfg-eth0
  • 验证OVS配置
ovs-vsctl show

Openstack操作基础

1)Horizon配置

  • Horizon是一个用以管理、控制 OpenStack服务的Web控制面板,也称之为Dashboard仪表盘
  • 可以管理实例、镜像、创建密钥对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例
  • 基于python的django web框架进行开发

功能与特点

实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
访问与安全管理:创建安全群组,管理密钥对,设置浮动IP等
偏好设定:对虚拟硬件模板可以进行不同偏好设定
镜像管理:编辑或删除镜像
用户管理:创建用户等
卷管理:创建卷和快照
对象存储处理:创建、删除容器和对象

Horizon BUG处理

[root@openstack ~] cd /etc/httpd/conf.d/
[root@openstack conf.d] vim 15-horizon_vhost.conf
36   WSGIApplicationGroup %{GLOBAL}   #添加这一行
[root@openstack conf.d] systemctl restart httpd

2)登录管理

  • web访问openstack服务器
firefox 192.168.1.10/dashboard

访问dashboard报404解决办法
cd /etc/httpd/conf.d/
mv 15-default.conf 15-default.conf.bak
systemctl restart httpd
  • 命令行接口
[root@openstack ~] ls
answer.ini   keystonerc_admin  #keystonerc_admin生成的文件,里面有用户名和密码
[root@openstack ~] cat keystonerc_admin 
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin  #用户名,假如修改了用户名和密码,则使用命令行登录时需要修改此文件
    export OS_PASSWORD=a  #密码
    export OS_AUTH_URL=http://192.168.1.10:5000/v2.0
    export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_TENANT_NAME=admin
export OS_REGION_NAME=RegionOne
[root@openstack ~] source keystonerc_admin 
[root@openstack ~(keystone_admin)] openstack    #连接openstack
(openstack) help    #查看帮助
发布了103 篇原创文章 · 获赞 7 · 访问量 5999
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章