【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一、先说说云计算的前世今生
IT系统架构的发展到目前为止大致可以分为3个阶段:
-
1、 物理机架构阶段:
应用部署和运行在物理机上。 比如企业要上一个ERP系统,如果规模不大,可以找3台物理机,分别部署Web服务器、应用服务器和数据库服务器。 如果规模大一点,各种服务器可以采用集群架构,但每个集群成员也还是直接部署在物理机上。 早期都是这种架构,一套应用一套服务器,通常系统的资源使用率都很低,达到20%的都是好的。
-
2、虚拟化架构阶段:
决定了物理服务器的计算能力越来越强,虚拟化技术的发展大大提高了物理服务器的资源使用率。 这个阶段,物理机上运行若干虚拟机,应用系统直接部署到虚拟机上。 虚拟化的好处还体现在减少了需要管理的物理机数量,同时节省了维护成本。
-
3、云计算架构阶段:
虚拟化提高了单台物理机的资源使用率,随着虚拟化技术的应用,IT环境中有越来越多的虚拟机,这时新的需求产生了,"如何对IT环境中的虚拟机进行统一和高效的管理"。有需求就有供给,云计算登上了历史舞台。
什么是云计算?
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 通过互联网进入可配置的计算资源共享池(资源包括网络,计算,存储,应用软件,服务)
云计算的服务类型
二、OpenStack介绍
1. 项目起源
-
OpenStack是一个开源的 IaaS 云计算平台,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace(一家美国的云计算厂商)合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
-
2010年 Openstack项目成立,虽然诞生时间不长,但其发展之迅速,在云计算领域的影响力扩展迅速成为业内所有人都不得不关注的焦点。
-
OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。
2. ☆选择OpenStack的原因
-
OpenStack 提供了一个非常好的有关如何来打造类似于主要公有云比如亚马逊( AWS )和 Google Cloud Platform ( GCP )的弹性私有云的样板。OpenStack 将 AWS/GCP 式样的的基础架构即服务( IaaS )推向了每个用户。它就是能实现企业内部 DevOps 的终极平台。
-
OpenStack 能在企业内部提供类似的平台。私有云可以基于公有云模型来构造,使得开发者同时拥有集中式 IT 控制和支配。本质上,它是两者融合的最佳平台,这也是 OpenStack 驱动的私有云的真正价值。
-
社区活跃,学习资料较多,有问题很容易能找到帮助。
-
使用python开发,遵循apache 2.0开源协议,只需修改一个Logo,都能拿来商业化。
-
架构非常的灵活,可扩展性强。
3. OpenStack和其他虚拟化技术的区别?
OpenStack云管理平台框架,有很多功能组件,比如说包含计算虚拟化、存储虚拟化、网络虚拟化、Image管理、身份认证管理、计费管理、前端展示模块等等。
KVM、XenServer、VMware只是计算虚拟化模块调用的后台实现技术而已。
4. OpenStack主要的组件服务
项目名称 | 核心服务 | 描述 |
---|---|---|
仪表盘 | Horizon | 提供了一个基于web的操作界面门户,通过web界面与OpenStack底层服务交互,就可以实现 建云主机,分配网络,配安全组,加云盘等功能。 |
计算服务 | ☆Nova | 是OpenStack云计算架构控制器,管理 OpenStack 云里的计算资源、网络、授权、和扩展需求。是OpenStack中最核心的服务。 |
对象存储服务=========== | ☆Swift | 为OpenStack提供分布式的、最终一致的虚拟对象存储服务;适用于一次写入,多次使用。例如百度网盘, 这个服务不是必须的,是可选服务。Swift 有能力存储数十亿计的对象, Swift 具有内置冗余、容错管理、存档、流媒体的功能。并且高度扩展,不论大小(多个 PB 级别)和能力(对象的数量)。 |
镜像服务 | ☆Glance | 存储和检索虚拟机磁盘镜像系统,OpenStack计算会在实例部署时使用此服务。管理镜像模板的仓库,为虚机提供镜像模板。 |
网络服务 | Neutron | 确保为其它OpenStack服务提供网络服务,为虚拟机提供网络连接服务,就像物理的交换机和路由器。 |
块存储服务 | Cinder | 为OpenStack运行实例而提供的持久性块存储服务。它的可插拔驱动架构的功能有助于创建和管理块存储设备。为虚拟机提供额外的硬盘。 |
认证服务 | Keystone | 为OpenStack各服务组件提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。 |
监控计费服务 | Ceilometer | 为OpenStack的监控计费服务、基准、扩展性以及统计等目的提供监测和计量。为公有云准备的,私有云不需要。属于高级服务。 |
编排服务 | Heat | 为OpenStack编排服务,基于模板自动化部署服务,属于高级服务。 |
数据库服务 | Trove | 为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。 |
项目名称 | 共享服务 |
---|---|
数据库服务 | MariaDB ; MongoDB |
消息传输 | RabbitMQ |
缓存 | Memcached ; NTP |
存储 | CEPH、GFS、LVM、ISICI |
高可用和负载均衡 | Haproxy、Keepalive、LVS |
5. OpenStack的版本
OpenStack是按照A B C D E F G ...的顺序发布版本的,截止到目前19年12月份最新的发行版是 Train
6. 企业级OpenStack需要些什么呢?
-
99.999%的API可用性以及可扩展的控制平面
有高可靠性要求的应用需要高可靠的云API向全新的云和 DevOps 模型转型的一个关键能力是提供云原生应用在弹性云中的容错能力。要使一个应用能实时地适应不同组件的出错,云 API 需要有更高的可用性。
-
健壮的管理和安全模型
安装只是管理 OpenStack 的开端。一个真正的云操作系统将提供一个从设计上就能保证基础设施团队能成功交付服务的以运维为核心的云管理工具套件。
- 可重用的架构模型,通常使用参考网络架构将小集群或者组连接在在一起
- 初始云安装和部署
- 典型的日常云运维工具,包括日志、系统测量值和相关度分析
- 供运维人员使用的用来做整合和自动化的 CLI(命令行界面)和 API(应用程序编程接口)
- 用于可视化和分析的运维图形界面
-
开放的架构
OpenStack 的开放架构,能够减少厂商锁定,进而降低风险。
-
混合云兼容性
-
目前环境下,混合云兼具私有云安全性与公有云的弹性扩展能力,混合云必然成为企业云部署的第一选择。根据应用类别和业务特点,将关键应用、性能敏感型、中高密级应用部署在私有云,其他应用部署在公有云;将同一个应用的不同层部署在不同云中,时延敏感业务就近用户部署,提升最终用户体验。
-
混合云的难点在于解决应用的移植性问题。如果你需要一个公有云和私有云组合而成的混合云,不管应用在某个云中被开发,还是要在两个云之间做迁移,或者从一个云到另一个云,应用的可移植性都是必须的。当你选定一个应用以及它的云原生的自动化框架,并将它们从一个云移动到另一个云中,一些关键的东西必须保持一致:
-
性能相对平稳
-
底层的存储、网络和计算架构保持一致或者近似
-
应用的自动化框架必须和两个云中的 API 都兼容
-
每个云中,运行应用的总所有成本( TCO)都应该在1/2-2倍的范围之内
-
还有行为上的兼容性,意味着非 API 功能也需要吻合
-
支持与相关公有云 API 的兼容
-
-
-
☆可扩展的弹性架构
-
当在系统中增加资源后,其性能会按照所增加资源的某种比例增加时,我们就可以说其服务是可扩展的。
-
从多方面看, OpenStack 自身就是个高扩展性的系统。它被设计为松耦合、基于消息通信的架构,这些技术已经在各种中级到高级扩展的系统中得到应用和验证,它们也可以适应小规模的部署。问题在于配置和部署OpenStack时所做的设计上的决定。
-
一部分默认的配置,以及许多厂商的插件和方案在设计时并没有考虑扩展性。
-
基础架构从来没有真正的弹性过,可是它的特性能支持弹性的应用在它上面运行。一个弹性云,需要被设计为每个资源,比如虚机、块存储和对象存储,其成本尽可能的低。
-
-
全面的支持和服务
OpenStack 作为一个可扩展的、打造下一代弹性云的基础架构,尽管它还不是很完美。但作为一个开源项目,它的吸引力确实不容小视。基于平台开放,会有越来越多的力量促使它更完善和强大,采用 OpenStack 意味着企业云平台会更加自主可控,并实现技术沉淀和自动化运维水平的提升。
7. OpenStack社区与文档的链接
社区: | www.openstack.org ; wiki.openstack.org |
---|---|
邮件列表: | http://wiki.openstack.org/MailingLists#General_List |
贡献代码: | http://wiki.openstack.org/HowToContribute |
源代码管理: | http://wiki.openstack.org/GerritWorkflow |
文档: | http://docs.openstack.org |
二、OpenStack的部署
1. 环境准备
准备两台优化好的虚拟机
CPU | 支持 intel64 或 AMD64 CPU扩展,并启用AMD-H或intel VT硬件虚拟化支持的64位x86处理器 |
---|---|
系统版本 | CentOS7.6 版本 |
内存 | 根据实际测试环境选择 >=2G |
硬盘容量 | 根据实际测试环境选择 >=50G |
防火墙 | 需要关闭 |
SELINUX | 需要关闭 |
YUM源 | 阿里云的Yum源 |
虚拟机分配情况
主机 | IP地址 | 主机名 | 注意事项 |
---|---|---|---|
控制节点 | NAT网络 192.168.1.10 | controller | 至少4G,要开虚拟化 |
计算节点 | NAT网络 192.168.1.20 | computel | 至少2G,要开虚拟化 |
配置域名解析
[root@computel ~]# cat /etc/hosts
192.168.1.10 controller
192.168.1.20 compute1
测试各节点连通性
ping -c 4 controller
ping -c 4 compute1
插件密码参考
密码名称 | 描述 |
---|---|
ADMIN_PASS | admin 用户密码 |
CINDER_DBPASS | 块设备存储服务的数据库密码 |
CINDER_PASS | 块设备存储服务的 cinder 密码 |
DEMO_PASS | demo 用户的密码 |
GLANCE_DBPASS | 镜像服务的数据库密码 |
GLANCE_PASS | 镜像服务的 glance 用户密码 |
KEYSTONE_DBPASS | 认证服务的数据库密码 |
NEUTRON_DBPASS | 网络服务的数据库密码 |
NEUTRON_PASS | 网络服务的 neutron 用户密码 |
NOVA_DBPASS | 计算服务的数据库密码 |
NOVA_PASS | 计算服务中 nova 用户的密码 |
RABBIT_PASS | RabbitMQ的guest用户密码 |
2. 部署OpenStack T版
2.1 安装NTP时间同步服务
-
在controller控制节点安装配置chrony
Chrony是一个开源的自由软件,像CentOS 7或基于RHEL 7操作系统,已经是默认服务,默认配置文件在 /etc/chrony.conf 它能保持系统时间与时间服务器(NTP)同步,让时间始终保持同步。相对于NTP时间同步软件,占据很大优势。其用法也很简单
[root@controller ~]# yum install chrony
...明日继续
来源:oschina
链接:https://my.oschina.net/u/4083202/blog/3142327