Ⅰ python杩愮淮瀛︿粈涔
杩愮淮宸ョ▼甯堝拰寮鍙戜汉鍛樹竴鏍凤紝鍚屽睘浜嶪T浠庝笟浜哄憳锛屽緢澶氫汉璁や负杩愮淮浜哄憳涓嶉渶瑕佹噦寮鍙戯紝鍏跺疄涓嶇劧锛屼笉鎳傚紑鍙戠殑杩愮淮閬撹矾浼氳秺璧拌秺绐勩傜幇闃舵碉紝鎺屾彙涓闂≒ython寮鍙戝凡缁忔垚涓洪珮绾ц繍缁村伐绋嬪笀鐨勫繀澶囨妧鑳戒簡锛岄偅涔圥ython杩愮淮瑕佸︿範鍝浜涘唴瀹癸紝濡備綍鎵嶈兘瀛﹀ソ?
涓浜哄缓璁瀛︿範鐨勮矾绾垮備笅锛
鍒濈骇鍏ラ棬锛
1銆丩inux鍩虹鐭ヨ瘑銆佸熀鏈鍛戒护锛堣捣婧愩佺粍鎴愩佸父鐢ㄥ懡浠ゅ俢p銆乴s銆乫ile銆乵kdir绛夊父瑙佹搷浣滃懡浠わ級
2銆丩inux鐢ㄦ埛鍙婃潈闄愬熀纭
3銆丩inux绯荤粺杩涚▼绠$悊杩涢樁
4銆乴inux楂樻晥鏂囨湰銆佹枃浠跺勭悊鍛戒护锛坴im銆乬rep銆乻ed銆乤wk銆乫ind绛夊懡浠わ級
5銆乻hell鑴氭湰鍏ラ棬锛堝彲杈圭粌涔犺竟瀛︿範锛
涓绾ц繘闃
涓绾ц繘闃堕渶瑕佸湪鍏呭垎浜嗚Вlinux鍘熺悊鍜屽熀纭鐭ヨ瘑涔嬪悗锛屽逛笂灞傜殑搴旂敤鍜屾湇鍔¤繘琛屾繁鍏ュ︿範锛屽叾涓璇村埌鏈嶅姟鑲瀹氭秹鍙婂埌缃戠粶鐨勭浉鍏崇煡璇嗭紝鏄闇瑕佽姳鏃堕棿瀛︿範鐨勩
1銆乀CP/IP缃戠粶鍩虹锛堝樊涓嶅欳CNA銆丯P鐨勭煡璇嗗氨澶熺敤锛
2銆丩inux浼佷笟甯哥敤鏈嶅姟锛堝俤ns銆乭ttp銆乫tp銆乵ail銆乶fs绛夛級
3銆丩inux浼佷笟绾у畨鍏ㄥ師鐞嗗拰闃茶寖鎶宸э紙绯荤粺鎬ц兘/瀹夊叏銆佸畨鍏ㄥ▉鑳佹ā鍨嬪拰淇濇姢鏂规硶
4銆 鍔犲瘑/瑙e瘑鍘熺悊鍙婃暟鎹瀹夊叏銆佺郴缁熸湇鍔¤块棶鎺у埗鍙婃湇鍔″畨鍏ㄥ熀纭
5銆乮ptables瀹夊叏绛栫暐鏋勫缓
6銆乻hell鑴氭湰杩涢樁锛堜富瑕佹槸缁撳悎涓浜涘簲鐢锛屽啓涓浜涙堜緥锛
7銆丮ySQL搴旂敤鍘熺悊鍙婄$悊鍏ラ棬锛堣兘绠$悊鍜屾惌寤轰竴涓涓浜哄崥瀹㈢珯鐐癸級
瀛﹀埌杩欓噷锛屾帉鎻$殑鍩烘湰鎶鑳斤紝宸茬粡澶熺敤浜嗭紝宸茬粡鑳藉仛涓浜涘熀纭鐨勮繍缁村伐浣滃拰绠鍗曠淮鎶や簡銆
楂樼骇鎻愬崌
1銆乭ttp鏈嶅姟浠g悊缂撳瓨鍔犻燂紙鍏朵腑涓昏佸︿範varnish銆乶ginx缂撳瓨绯荤粺锛岃佸笴DN鐨勭煡璇嗘湁鎵浜嗚В銆傦級
2銆佷紒涓氱骇璐熻浇闆嗙兢锛堝叾涓涓昏佸︿範nginx銆乭aproxy銆乴vs瑕佸逛富瑕佺煡璇嗙啛缁冩帉鎻★紝瀵硅礋杞藉潎琛$畻娉曟湁娓呮櫚璁よ瘑锛岋級
3銆佷紒涓氱骇楂樺彲鐢ㄩ泦缇 锛堝叾涓闇瑕佸筴eepalived锛宧eartbeat绛夎繘琛屾繁鍏ヨ茶В锛
4銆佽繍缁寸洃鎺zabbix璇﹁В锛堜富瑕佹槸zabbix銆乧acti銆乶agios绛夌洃鎺х郴缁燂紝鐜板湪鐢ㄧ殑姣旇緝澶氱殑鏄痾abbix锛
5銆佽繍缁磋嚜鍔ㄥ寲瀛︿範锛堥渶瑕佸︿竴浜涘紑婧愯繍缁磋嚜鍔ㄥ寲宸ュ叿鐨勪娇鐢ㄥ俛nsible銆乸uppet銆乧obbler绛夎繍缁磋嚜鍔ㄥ寲宸ュ叿锛
Ⅱ OpenStack部署都有哪些方式
对于每一个刚接触到OpenStack的新人而言,安装无疑是最困难的,同时这也客观上提高了大家学习OpenStack云计算的技术门槛。想一想,自己3年前网上偶然接触到OpenStack时,一头茫然,手动搭建一个多节点环境时居然用了3个星期。
时至今日,真是感触颇多,从某种角度而言,也很庆幸当时自己并未因困难而放弃OpenStack,否则,应该是去做其他领域了吧!
言归正传,咱们就来数落数落部署OpenStack都有哪些方式吧。这里,我们根据使用者群体的不同类型来进行分类和归纳:
个人使用方面
DevStack
无疑,在可预见的未来时间内,DevStack仍将是众多开发者们的首选安装方式或工具。该方式主要是通过配置参数,执行shell脚本来安装一个OpenStack的开发环境。
Github: https://github.com/openstack-dev/devstack
Wiki: https://wiki.openstack.org/wiki/DevStack
Rdo
Rdo是由Red Hat开源的一款部署OpenStack的工具,同DevStack一样,支持单节点和多节点部署。但Rdo只支持CentOS系列的操作系统。需要注意的是,该项目并不属于OpenStack官方社区项目。
Docs:https://www.rdoproject.org/install/quickstart
手动部署
手动部署all-in-one、multi-node、multi-HA-node环境。
其他
企业、团体方面
Puppet
Puppet由Ruby语言编写。应当说,Puppet是进入OpenStack自动化部署中的早期一批项目,历史还算悠久。目前,它的活跃开发群体们是Red hat、 Mirantis、UnitedStack等。
Red
hat自从收购Ansible之后,如今仍然保持强势劲头在Puppet
OpenStack项目中的Commit数量和质量,其技术实力不容小觑;Mirantis出品的Fuel部署工具中,大量的模块代码便使用的是
Puppet。就国内而言,UnitedStack是Puppet社区贡献和使用的最大用户。
Github:
https://github.com/openstack/puppet-keystone
Governance:
Wiki:
https://wiki.openstack.org/wiki/Puppet
Ansible
Ansible
是新近出现的自动化运维工具,已被Red
Hat收购。基于Python开发,集合了众多运维工具(puppet、cfengine、chef、saltstack等)的优点,实现了批量系统配
置、批量程序部署、批量运行命令等功能,它一方面总结了Puppet的设计上的得失,另一方面也改进了很多设计。比如是基于SSH方式工作,故而不需要在
被控端安装客户端。使得在和OpenStack结合上没有历史包袱,更加能够轻装上阵,未来发展潜力不容小觑号称是“你一直寻找的下一代Iaas”的
Zstack,使用到的部署工具也是基于Ansible。
Openstack-ansible项目,最早是由老牌Rackspace公司在Launchpad官网上注册。
在最新的Ansible OpenStack项目社区Commit贡献中,Rackspace也可谓是遥遥领先,而紧随其后的是Red Hat、国内九州云等公司。
Github:https://github.com/openstack/openstack-ansible
SaltStack
SaltStack
也是一款开源的自动化部署工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能,和Ansible也是挺相近的。不同之一
是,由于SaltStack的master和minion认证机制和工作方式,需要在被控端安装minion客户端,在加之其他原因,自然和
Ansible相比,其优缺点便很明显了。
需要注意的是,使用Saltstack部署OpenStack,并不属于OpenStack社区项目。目前,主要还是处于用户自研自用的阶段。据笔者所知,目前国内的携程应该是使用Saltstack部署OpenStack规模最大的用户。
Saltstack部署OpenStack示例:https://github.com/luckpenguin/saltstack_openstack
Saltstack部署OpenStack模块:
TripleO
Tripleo
项目最早由HP于2013.4在launchpad上注册BP。用于完成OpenStack的安装与部署。TripleO全称“OpenStack On
OpenStack”,意思即为“云上云”,可以简单理解为利用OpenStack来部署OpenStack,即首先基于V2P(和P2V相反,也就是指
把虚拟机的镜像迁移到物理机上)的理念事先准备好一些OpenStack节点(计算、存储、控制节点)的镜像,然后利用已有openstack环境的裸机
服务Ironic项目去部署裸机,软件安装部分的diskimage-builder,最后通过Heat项目和镜像内的DevOps工具(Puppet
Or Chef)再在裸机上配置运行openstack。
和其他部署工具不同的是,TripleO利用OpenStack本来的基础设施来部署OpenStack,基于Nova、 Neutron、Ironic和Heat,来自动化部署和伸缩OpenStack集群。
应
当确切的说,TripleO项目属于当前OpenStack社区主推的“Big Tent”开发模式下的big tent
project(OpenStack下的项目分为三种,core project: nova/neutron等核心项目,big tent
project: 非核心项目,但也被OpenStack 基金会接受;第三种就是其它项目,只是放在OpenStack下,但是社区还没有接受)。
在该项目的社区Commit贡献上,Red hat可谓是遥遥领先,而紧随其后的是IBM等公司。
Wiki:https://wiki.openstack.org/wiki/TripleO
Kolla
在
国内一些互联网资料上,常看到关于kolla是TripleO项目的一部分这样的描述,其实是不准确的。真实的是,Kolla项目起源于Tripleo项
目,时至今日,与它没有任何关系(虽然它们的目标都是做自动化部署,但走的道路却不同)。比之于Tripleo和其他部署工具,Kolla走的是
docker容器部署路线。
kolla项目起源于TripleO项目,聚焦于使用docker容器部署OpenStack服务。该项目由
Cisco于2014年9月提出,是OpenStack的孵化项目。当前Kolla项目在Kollaglue
repo提供了以下服务的docker镜像。 # docker search kollaglue
Kolla的优势和使用场景,体现在如下几个方面:
原子性的升级或者回退OpenStack部署;
基于组件升级OpenStack;
基于组件回退OpenStack;
这里,我们予以拆分来理解:
Kolla
的最终目标是为OpenStack的每一个服务都创建一个对应的Docker Image,通过Docker
Image将升级的粒度减小到Service级别,从而使升级时,对OpenStack影响能达到最小,并且一旦升级失败,也很容易回滚。升级只需要三
步:Pull新版本的容器镜像,停止老版本的容器服务,然后启动新版本容器。回滚也不需要重新安装包了,直接启动老版本容器服务就行,非常方便。
Kolla是通过Docker Compose来部署OpenStack集群的,现在主要是针对裸机部署的,所以在部署Docker Container时,默认的网络配置都是Host模式。
首
先,只需要通过一个命令就可以把管理节点部署完成,这个命令是调用Docker
Compose来部署OpenStack的所有服务,然后我们可以在每一个计算节点上通过Docker
Compose安装计算节点需要的服务,就能部署一个OpenStack集群。因为Kolla的Docker
Image粒度很小,它针对每个OpenStack服务都有特定的Image,所以我们也可以通过Docker
Run来操作某个具体的OpenStack服务。
目前,我所在的公司九州云的一位同事近日获得提名成为Kolla项目Core。为OpenStack社区中增添了一份来自于中国的力量。
Fuel
Fuel
是针对OpenStack生产环境目标
(非开源)设计的一个端到端”一键部署“的工具,大量采用了Python、Ruby和JavaScript等语言。其功能含盖自动的PXE方式的操作系统
安装,DHCP服务,Orchestration服务 和puppet 配置管理相关服务等,此外还有OpenStack关键业务健康检查和log
实时查看等非常好用的服务。
Fuel,这款让很多人即爱且痛的工具,在国内外都很盛名。爱的原因是,它确实很棒;痛的原因是,要想彻底掌握
它,可不是一件容易事(各个模块集成度高、使用技术复杂)。既然提到Fuel,自然不能不提它的父母——Mirantis。Mirantis是一家技术实
力非常雄厚的OpenStack服务集成商,他是社区贡献排名前5名中唯一一个靠OpenStack软件和服务盈利的公司。同时,Fuel的版本节奏也很
快,平均每半年就能提供一个相对稳定的社区版。
从和笔者接触到的一些情况来看,国内研究、使用Fuel的个人、群体还是为数不少的。不少国内OpenStack初创公司的安装包就是基于Fuel去修改的。
Ⅲ kubernetes 提供什么功能
Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和裸机场景中。它可以完美运行在现代的操作系统环境(比如CoreOS
和Red Hat
Atomic),并提供可以被你管控的轻量级的计算节点。Kubernetes使用Golang开发,具有轻量化、模块化、便携以及可扩展的特点。我们
(Kubernetes开发团队)正在和一些不同的技术公司(包括维护着Mesos项目的MesoSphere)合作来把Kubernetes升级为一种
与计算集群交互的标准方式。Kubernetes重新实现了Google在构建集群应用时积累的经验。这些概念包括如下内容:
Pods:一种将容器组织在一起的方法;
Replication Controllers:一种控制容器生命周期的方法(译者注:Replication Controller确保任何时候Kubernetes集群中有指定数量的pod副本(replicas)在运行);
Labels:一种可以找到和查询容器的方法;
Services:一个用于实现某一特定功能的容器组;
因此,只要使用Kubernetes你就能够简单并快速的启动、移植并扩展集群。在这种情况下,集群就像是类似虚拟机一样灵活的资源,它是一个逻辑运算单元。打开它,使用它,调整它的大小,然后关闭它,就是这么快,就是这么简单。
Mesos和Kubernetes的愿景差不多,但是它们在不同的生命周期中各有不同的优势。Mesos是分布式系统内核,它可以将不同的机器整
合在一个逻辑计算机上面。当你拥有很多的物理资源并想构建一个巨大的静态的计算集群的时候,Mesos就派上用场了。有很多的现代化可扩展性的数据处理应
用都可以在Mesos上运行,包括Hadoop、Kafka、Spark等,同时你可以通过容器技术将所有的数据处理应用都运行在一个基础的资源池中。在
某个方面来看,Mesos是一个比Kubernetes更加重量级的项目,但是得益于那些像Mesosphere一样的贡献者,Mesos正在变得更加简
单并且容易管理。
有趣的是Mesos正在接受Kubernetes的理念,并已经开始支持Kubernetes
API。因此如果你需要它们的话,它将是对你的Kubernetes应用去获得更多能力的一个便捷方式(比如高可用的主干、更加高级的调度命令、去管控很
大数目结点的能力),同时能够很好的适用于产品级工作环境中(毕竟Kubernetes仍然还是一个初始版本)。
当被问到区别的时候,我会这样回答:
如果你是一个集群世界的新手,那Kubernetes是一个很棒的开始。它可以用最快的、最简单的、最轻量级的方式来解决你的问题,并帮
助你进行面向集群的开发。它提供了一个高水平的可移植方案,因为很多厂商已经开始支持Kubernetes,例如微软、IBM、Red
Hat、CoreOS、MesoSphere、VMWare等。
如果你拥有已经存在的工作任务(Hadoop、Spark、Kafka等),那Mesos可以给你提供了一个将不同工作任务相互交错的框架,然后还可以加入一些新的东西,比如Kubernetes应用。
如果你想使用的功能Kuberntes还没实现,那Mesos是一个不错的替代品,毕竟它已经成熟。