云计算部署与管理02

一.Openstack

1.云计算

是一种服务

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

IaaS

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

PaaS

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

SaaS

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

1.2什么是云

现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:

  • 云计算是一种按使用量付费的模式,这种模式提供可用的,便捷的按需的网络访问,进入可配置的计算资源共享池(包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入少量的管理工作,或与服务供应商进行很少的交互

1.3 云计算三大服务模式

中文名称英文名称
基础设施即服务(IaaS)Infrastructure-as-a-Service
平台服务(PaaS)Platform-as-a-Service
软件服务(SaaS)Softtware-as-a-Service

1.3知名云服务商

国外:亚马逊AWS,微软Azure,IBM SCE+ …
国内:华为云,阿里云,百度云,腾通云…

2.Openstack简介

1.1什么是Openstack

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

1.2Openstack版本

2018.2:Queens

2014.10: Juno
2013.10:Havana
2012.9: Folsom
2012.4: Essex
2011.9:Diablo
2011.4:Cactus
2011.2:Bexar
2010.10:Austin

每个版本之间命令变化较大,了解就好,最好用图形操作

1.3 Openstack结构图

在这里插入图片描述

1.4 Openstack主要组件

七大组件

  • Horizon (Dashboard,本质appache,php;管理主机安装)
    用于管理Openstack各种服务的,基于web的管理接口;
    通过图形界面实现创建用户,管理网络,启动实例等操作.

  • Keystone (Identity Service,管理主机安装)
    为其他服务提供认证和授权的集中身份管理服务;
    也提供了集中的目录服务;
    支持多种身份认证模式,如密码认证,令牌认证,以及AWS(亚马孙web服务)登录;
    为用户和其他服务提供了SSO认证服务;
    管理Domains、Projects、Users、Groups、Roles

  • Neutron(Networking,Quantunm,所有主机安装,有专门的软件,图形操作,可以看见网络拓扑)
    一种软件定义网络服务
    用于创建网络,子网,路由器,管理浮动IP地址
    可以实现虚拟交换机,虚拟路由器
    可用于在项目中创建VPN
    提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。

  • Cinder(Volume Service)
    为虚拟机管理存储卷的服务
    为运行在Nova中的实例提供永久的块存储
    可以通过快照进行数据备份
    经常应用在实例存储环境中,如数据库文件

  • Glance(Image Store)
    扮演虚拟机镜像注册的角色
    允许用户为直接存储拷贝服务器镜像
    这些镜像可以用于新建虚拟机的模板
    一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK)

  • Nova(Compute Node,被管理端安装的客户端,除了管理主机不装,其余都装,管理虚拟机的服务,代理和管家)
    在节点上用于管理虚拟机的服务
    Nova是一个分布式的服务,能够与Keystone交互实现认证,与Glance交互实现镜像管理
    Nova被设计成在标准硬件上能够水平扩展
    启动实例时,如果有则需要下载镜像

  • Swift(Object Store,没有的则用本机硬盘存储)
    一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。
    可为Glance提供镜像存储,为Cinder提供卷备份服务。

二.部署安装环境

1.Openstack环境准备

1.1 准备虚拟机

真机至少16G内存,关闭所有虚拟机

[student@room9pc01 images]$ free -m   //查看total 15984 说明是16G内存
              total        used        free      shared  buff/cache   available
Mem:          15984        1580       13134         108        1269       13964
Swap:             0           0           0
1.1.1虚拟机配置

准备3台虚拟机,配置静态IP ifcfg-eth0,配置主机名 /etc/hosts,能够相互ping通,配置dns服务器 /etc/resolv.conf

  • openstack(管理) : 2CPU,6G内存,50G硬盘,配置静态IP:192.168.1.10
    free -m 剩余 6G
    610241024=6291456
    virsh edit openstack 设置时为:8000000,大约为7G;
  • nova01: 2CPU,4.5G内存,100G硬盘,配置静态IP:192.168.1.11
    virsh edit nova01 时 memory :4000000-4500000
  • nova02: 2CPU,4.5G内存,100G硬盘,配置静态IP:192.168.1.12
    virsh edit nova01 时 memory :4000000-4500000
1.1.2 配置DNS(Domain Name Server)

系统环境准备

  • openstack 安装时候需要使用外部dns来解析域名
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114 
//设置真机DNS地址
//注:去掉search开头的所有行;完全主机名,会在主机名后加上".localhost",用主机名连接时,如果主机名为openstack,会自动变为openstack.localhost,导致连接出错

114.114.114.114
国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
8.8.8.8和8.8.4.4
Google DNS服务器.

主域名服务器
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。
辅助域名服务器
当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。
缓存域名服务器
从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息。
转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

  • 将openstack.tedu.cn域名对应的IP解析到我们安装的openstack服务器
vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02

注:DNS服务器不能与openstack安装在同一台主机

步骤:

  • 1)准备三台虚拟机
[student@room9pc01 images]$base-vm openstack nova01 nova02
[student@room9pc01 images]$virsh start openstack
[student@room9pc01 images]$virsh start nova01
[student@room9pc01 images]$virsh start nova02
    1. openstack主机扩容为50G
[student@room9pc01 images]$ virsh blockresize --path /var/lib/libvirt/images/openstack.img --size 100G openstack
[student@room9pc01 images]$ virsh console openstack

[root@localhost ~]# /usr/bin/growpart /dev/vda 1
[root@localhost ~]# /usr/sbin/xfs_growfs /
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  914M   50G   2% /
    1. nova01 和 nova02 主机扩容为100G(以nova01为例)
[student@room9pc01 images]$ virsh blockresize --path /var/lib/libvirt/images/nova01.img --size 50G nova01
重新定义 '/var/lib/libvirt/images/nova01.img' 块设备大小
[root@localhost ~]# /usr/bin/growpart /dev/vda 1
[root@localhost ~]# /usr/sbin/xfs_growfs  /
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       100G  917M  100G   1% /
    1. 三台主机配置静态ip(以一台为例)
      openstack:192.168.1.10
      nova01: 192.168.1.11
      nova02: 192.168.1.12
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
PERSISTENT_DHCLIENT="yes"
IPADDR=192.168.1.10
NETMASK=255.255.255.0   #或 PREFIX=24
GATEWAY=192.168.1.254

  • 5)三台主机修改主机名,配置/etc/hosts,和/etc/resolv.conf文件(以一台为例)
[root@localhost ~]# hostname openstack
[root@localhost ~]# echo openstack > /etc/hostname 
[root@localhost ~]# vim /etc/hosts
192.168.1.10 openstack
192.168.1.11 nova01
192.168.1.12 nova02
[root@localhost ~]# vim /etc/resolv.conf  //去掉search开头的行
; generated by /usr/sbin/dhclient-script
nameserver 192.168.1.254
  • 6)修改三台主机的内存(openstack6G,nova01 和nova02 4G)
[student@room9pc01 ~]$ virsh edit openstack
... 
 <memory unit='KiB'>6588282</memory>
  <currentMemory unit='KiB'>6588282</currentMemory>
...
[student@room9pc01 ~]$ virsh edit nova01
...
  <memory unit='KiB'>4588282</memory>
  <currentMemory unit='KiB'>4588282</currentMemory>
...
[student@room9pc01 ~]$ virsh start  openstack
域 openstack 已开始
[student@room9pc01 ~]$ virsh start  nova01
域 nova01 已开始
[student@room9pc01 ~]$ virsh start  nova02
域 nova02 已开始

1.2 NTP服务

时间服务
nova服务器之间的时间必须保持一致
编辑配置文件 /etc/chrony.conf
-server 192.168.1.254 iburst
-重启服务
-systemctl restart chronyd

测试服务

[student@room9pc01 ~]$ chronyc sources -v //出现*号代表NTP时间可用,?则不可用
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* gateway                      10   6    17     6   +839ns[+6724ns] +/-   28us

1.3 配置yum源

配置 yum 源,软件仓库一共 4 个:
CentOS7-1804.iso 系统文件
RHEL7-extras.iso 提供Python 依赖软件包
RHEL7OSP-10.iso 光盘拥有总舵目录,每个目录都是一个软件仓库,我们配置其中两个软件苍库
-openstack 主要软件仓库
rhel-7-server-openstack-10-rpms
-packstack 软件仓库
rhel-7-server-openstack-10-devtools-rpms:
==yum根据是否有repodata(索引)识别 ==
可以用命令 : createrepo [路径] , 创建索引

[student@room9pc01 ~]$ cd 
[student@room9pc01 openstack]$ ls
cirros.qcow2  RHEL7-extras.iso  RHEL7OSP-10.iso  small.qcow2
[student@room9pc01 openstack]$ mkdir /var/ftp/RHEL7-extras
[student@room9pc01 openstack]$ mkdir /var/ftp/RHEL7OSP-10
[student@room9pc01 openstack]$ mount RHEL7-extras.iso  /var/ftp/RHEL7-extras/
mount: /dev/loop1 写保护,将以只读方式挂载
[student@room9pc01 openstack]$ mount RHEL7OSP-10.iso /var/ftp/RHEL7OSP-10/
mount: /dev/loop2 写保护,将以只读方式挂载
[root@openstack ~]# vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos-1804"
enabled=1
gpgcheck=1
[RHEL7-extras]
name=RHEL7-extras
baseurl="ftp://192.168.1.254/RHEL7-extras"
enabled=1
gpgcheck=0
[RHEL7OSP-package]
name=RHEL7OSP-package
baseurl="ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[RHEL7OSP-devtools]
name=RHEL7OSP-devtools
baseurl="ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0

[root@openstack ~]# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
RHEL7-extras                             | 2.9 kB     00:00     
RHEL7OSP-devtools                        | 2.9 kB     00:00     
RHEL7OSP-package                         | 2.9 kB     00:00     
local_repo                               | 3.6 kB     00:00     
(1/5): RHEL7-extras/primary_db             |  43 kB   00:00     
(2/5): local_repo/group_gz                 | 166 kB   00:00     
(3/5): RHEL7OSP-devtools/primary_db        | 3.7 kB   00:00     
(4/5): RHEL7OSP-package/primary_db         | 318 kB   00:00     
(5/5): local_repo/primary_db               | 5.9 MB   00:00     
源标识                               源名称                                状态
RHEL7-extras                         RHEL7-extras                              0
RHEL7OSP-devtools                    RHEL7OSP-devtools                         3
RHEL7OSP-package                     RHEL7OSP-package                        680
local_repo                           CentOS-7 - Base                       9,911
repolist: 10,594


[root@openstack ~]# scp /etc/yum.repos.d/local.repo 192.168.1.11:/etc/yum.repos.d/
root@192.168.1.11's password: 
local.repo                                                                                          100%  490   484.4KB/s   00:00    
[root@openstack ~]# scp /etc/yum.repos.d/local.repo 192.168.1.12:/etc/yum.repos.d/
root@192.168.1.12's password: 
local.repo

三.部署Openstack

1.基础环境部署

1.1安装额外软件包

nova01,nova02 安装以下5个包:

  • qemu-kvm
  • libvirt-daemon
  • libvirt-daemon-driver-qemu
  • libvirt-client
  • python-setuptools
    openstack上只安装python-setuptools
[root@openstack yum.repos.d]# yum install -y qemu-kvm \
> libvirt-client \
> libvirt-daemon \
> libvirt-daemon-driver-qemu \
> python-setuptools

1.2 检查Openstack环境部署

检查:
是否卸载firewalld和NetworkManager
检查配置主机网络参数(静态IP)
主机名必须能够相互ping通
检查配置主机yum源(4个,10670)
依赖软件包是否安装
检查NTP服务器是否可用
检查 /etc/resolv.conf 不能有search开头的行

  • 1 检查是否卸载卸载firewalld和NetworkManager
[root@openstack ~]# rpm -qa | grep -Pi "firewall|networkmanager"
  • 2 检查配置主机网络参数(静态IP)
[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 

# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
RSISTENT_DHCLIENT="yes"
IPADDR=192.168.1.10
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
  • 3 主机名必须能够相互ping通
[root@openstack ~]# ping openstack
...
64 bytes from openstack (192.168.1.10): icmp_seq=1 ttl=255 time=0.023 ms
64 bytes from openstack (192.168.1.10): icmp_seq=2 ttl=255 time=0.027 ms
...
[root@openstack ~]# ping nova01
PING nova01 (192.168.1.11) 56(84) bytes of data.
64 bytes from nova01 (192.168.1.11): icmp_seq=1 ttl=255 time=0.139 ms
...
[root@openstack ~]# ping nova02
PING nova02 (192.168.1.12) 56(84) bytes of data.
64 bytes from nova02 (192.168.1.12): icmp_seq=1 ttl=255 time=0.251 ms
...
  • 4 检查配置主机yum源
[root@openstack ~]# yum clean all
[root@openstack ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识                                                          源名称                                                           状态
RHEL7-extras                                                    RHEL7-extras                                                        76
RHEL7OSP-devtools                                               RHEL7OSP-devtools                                                    3
RHEL7OSP-package                                                RHEL7OSP-package                                                   680
local_repo                                                      CentOS-7 - Base                                                  9,911
repolist: 10,670
  • 5 检查时间同步是否可用
[root@openstack ~]# chronyc  sources -v
210 Number of sources = 1
....
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* gateway                       3   7   377    28    +31us[  +89us] +/-   25ms
[root@openstack ~]#
  • 6检查/etc/resolv.conf 不能有search开头的行
[root@openstack ~]# cat /etc/resolv.conf 
; generated by /usr/sbin/dhclient-script
nameserver 192.168.1.254

查询主机名,因为主机名后面没有点,就认为是主机名,所以先添加search里的每一项依次组成FQDN(完全合格域名)来查询,完全合格域名查询未找到,就再认为主机名是完全合格域名来查询。
查询主机名,因为主机名中有点(不是末尾有点),就认为是完全合格域名,先用它来查询,查询失败就把它当成是主机名来进行,添加search里的每一项组成FQDN(完全合格域名)来查询。
查询主机名,因为主机名中末尾有点,则认为是完全合格域名,只用它来查询(不会再添加search里的每一项)。查询次数会与search里项域名个数有关。

2.安装Openstack

2.1配置Openstack

安装Openstack需要使用packstack

  • 首先安装ipenstack-packstack
  • 再使用packstack创建通用应答文件
[root@openstack ~]# yum install -y openstack-packstack
//生成应答文件
[root@openstack ~]# packstack --gen-answer-file answer.ini  
//answer.ini与answer.txt是一样的,只是用vim打开answer.ini文件有颜色
Packstack changed given value  to required value /root/.ssh/id_rsa.pub

//修改应答文件
[root@openstack ~]# vim answer.ini
42  CONFIG_SWIFT_INSTALL=n
45  CONFIG_CEILOMETER_INSTALL=n                   //计费相关模块
49  CONFIG_AODH_INSTALL=n                         //计费相关模块
53  CONFIG_GNOCCHI_INSTALL=n                     //计费相关模块
75  CONFIG_NTP_SERVERS=192.168.1.254   //时间服务器的地址
98  CONFIG_COMPUTE_HOSTS=192.168.1.11   //安装nova主机IP
102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11  //安装网络组件主机ip
 333 CONFIG_KEYSTONE_ADMIN_PW=a     //修改管理员的密码
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan   //网络驱动类型:内部云主机通讯vxlan(vlan范围为1-4096,不够用);直连网络flat(云主机管理员(厂商)配置)
 876 CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5  
//设置组播地址,最后一个随意不能为0和255,其他固定
 910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex  //物理网桥的名称(OVS交换机)
 921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0   
//br-ex桥的名称与eth0连接,管理eth0,网桥与哪个物理网卡连接
1179 CONFIG_PROVISION_DEMO=n   //DEMO是否测试(演示案例)

2.2一键部署Openstack

如果前期环境准备无误,只要耐心等待安装结束即可
根据主机配置不同,安装过程需要20分钟左右或更久
如果出现错误,根据屏幕上给出的日志文件进行排错

[root@openstack ~]# packstack --answer-file=answer.ini 
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20190423-170603-b43g_i/openstack-setup.log
Installing:
Clean Up                                             [ DONE ]
Discovering ip protocol version                      [ DONE ]
root@192.168.1.11's password: 
root@192.168.1.10's password: 
Setting up ssh keys
 **** Installation completed successfully ******        //出现这个为成功

3.网络配置

3.1网络拓扑

多计算节点的拓扑如下所示

3.2查看外部OVS网桥

四.Openstack操作基础

1.登录Openstack

[root@openstack ~]# firefox 192.168.1.10  //访问失败

需要修改配置文件

[root@openstack ~]# cd /etc/httpd/conf.d/
[root@openstack conf.d]# vim 15-horizon_vhost.conf
     35   WSGIProcessGroup apache
     36   WSGIApplicationGroup %{GLOBAL}     //添加这一行
[root@openstack conf.d]# apachectl  graceful  //重新载入配置文件

查看用户名和密码

[root@openstack conf.d]# cd
[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

在火狐浏览器中输入用户名和密码,登录后页面如图所示:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值