Openstack 部署
- 格式:docx
- 大小:1.05 MB
- 文档页数:7
基于 OpenStack 高可用云计算平台研究与部署摘要】云计算是继互联网、计算机后在信息时代有一种新的革新,云计算是信息时代的一个大飞跃,未来的时代可能是云计算的时代。
随着云计算兴起与发展,对OpenStack的研究也风起云涌。
不同的云平台也都研究openstack技术,在此基础上搭建各自的私有云或公有云,本文深入分析OpenStack技术,并给出搭建云平台的不同部署方案。
【关键词】OpenStack;高可用云计算平台;研究;部署1. OpenStack技术概述1.1什么是云计算云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。
因而,云计算又称为网格计算。
通过这项技术,可以在很短的时间内(几秒种)完成对数以万计的数据的处理,从而达到强大的网络服务。
云计算不是一种全新的网络技术,而是一种全新的网络应用概念,云计算的核心概念就是以互联网为中心,在网站上提供快速且安全的云计算服务与数据存储,让每一个使用互联网的人都可以使用网络上的庞大计算资源与数据中心。
1.2什么是openstackOpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。
由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。
项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
1.3Openstack组件类型OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。
下面介绍10个核心项目1、计算(Compute):Nova。
尊敬的客户,以下是按照您的要求撰写的关于“OpenStack使用手册”的文章:第一部分:OpenStack简介1. 什么是OpenStack?OpenStack是一个开源的云计算评台,它提供了一套丰富的工具和服务,用于构建和管理公有云和私有云环境。
2. OpenStack的核心组件OpenStack由多个核心组件构成,包括计算(Nova)、网络(Neutron)、存储(Cinder和Swift)、身份认证(Keystone)等。
这些组件共同构建了一个高性能、可扩展和灵活的云计算评台。
第二部分:OpenStack的安装和部署3. 搭建OpenStack环境的准备工作在搭建OpenStack环境之前,需要准备好一系列的硬件设备、网络环境以及操作系统等基础设施。
还需要选择合适的OpenStack发行版,并进行相应的安装和配置。
4. OpenStack环境的部署方法在部署OpenStack环境时,可以选择使用一些自动化部署工具,例如OpenStack Ansible、OpenStack Charms等,这些工具可以大大简化安装和配置的过程,提高部署效率。
第三部分:OpenStack的基本操作和管理5. 创建和管理虚拟机实例使用OpenStack的计算组件(Nova)可以轻松创建和管理虚拟机实例,包括对虚拟机的启动、停止、迁移等操作。
6. 网络配置和管理OpenStack的网络组件(Neutron)提供了丰富的网络功能,包括虚拟网络的创建、子网的管理、网络安全组的配置等。
第四部分:OpenStack高级功能和扩展7. 存储管理OpenStack的存储组件(Cinder和Swift)可以实现虚拟机实例的持久化存储,同时还可以提供对象存储服务,满足不同的存储需求。
8. OpenStack的扩展和定制通过OpenStack的插件机制和API接口,可以实现对OpenStack评台的定制和扩展,满足特定的业务需求和应用场景。
OpenStack部署与管理之Fuel介绍成胜汉柏科技有限公司内容 Fuel简介Fuel架构Fuel功能Fuel扩展2OpenStack部署OpenStack发展很猛,很多朋友都很认同,为了解决OpenStack部署的问题,让安装,配置变得更加简单易用,很多公司都投入人力去做这个。
说到部署,肯定和OS有关,对于OpenStack来说,无非就是Ubuntu还是CentOS,当然也会和OpenStack版本有关。
其实部署工具,最麻烦的地方,不是软件的配置和安装,而是网络。
用户的网络情况太多,还有OpenStack本身的网络也很复杂。
部署工具:RDO:REDHAT出品,支持Redhat、CentOS等系统。
RDO基于puppet部署各个组件,支持单节点或多节点部署,在Redhat系操作系统上使用非常方便。
devstack:这个应该是最老的Fuel简介了,可以用来快速部署一个OpenStack测试环境,基于git最新代码部署服务,并将所有服务都起在screen中,不适合生产环境直接使用。
Fuel:Mirantis出品,支持在ubuntu和centos上通过web界面配置并部署OpenStack,应该是目前最为直观的Fuel简介。
支持自动发现部署节点,并部署OpenStackHA,对OpenStack作健康检查等。
Mirantis一家很牛逼的OpenStack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM,Rackspace)。
相对于其他几个社区发行版,Fuel的版本节奏很快,平均每两个月就能提供一个相对稳定的社区版。
Fuel是什么Fuel是一个开源的部署和管理openstack的工具,它提供了一个直观的图形用户部署和管理界面,专注于openstack的部署、测试和第三方选件。
其功能含盖自动的PXE方式的操作系统安装,DHCP服务,Orchestration服务和puppet配置管理相关服务等。
形考作业(三)部署-___-服务实训概述本文档旨在提供形考作业(三)部署___服务实训的指导。
OpenStack是一个开源的云计算平台,可用于创建和管理云环境中的各种资源,如虚拟机、网络和存储等。
本次实训旨在帮助学生了解并掌握OpenStack的基本使用和部署方法。
步骤一: 安装OpenStack1. 系统要求- 操作系统: 推荐使用Ubuntu Server 18.04 LTS- 硬件要求: 至少4GB RAM和100GB硬盘空间- 网络要求: 推荐使用静态IP地址,并确保网络连通性2. 系统准备- 更新系统软件包: 在终端中运行命令`sudo apt update`和`sudo apt upgrade`来更新系统软件包。
- 安装依赖项: 运行命令`sudo apt install python3-dev python3-pip`来安装Python相关依赖项。
- 安装OpenStack客户端: 运行命令`sudo pip3 install python-___来安装OpenStack客户端。
3. 安装OpenStack服务- 安装___主节点: 运行命令`sudo apt install ___来安装OpenStack主节点。
- 安装___网络节点: 运行命令`sudo apt install neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent`来安装OpenStack网络节点。
- 安装OpenStack存储节点: 运行命令`sudo apt install cinder-volume`来安装OpenStack存储节点。
步骤二: 配置OpenStack1. 配置数据库- 创建数据库: 运行命令`sudo mysql`进入MySQL命令行界面,并执行以下命令创建数据库:___;___ 'openstack'@'localhost' IDENTIFIED BY '密码';___'@'%' IDENTIFIED BY '密码';- 修改配置文件: 打开文件`/etc/neutron/neutron.conf`,找到并修改如下部分:[database]n = mysql+[DEFAULT]core_plugin = ml2service_plugins = routerallow_overlapping_ips = true- 重启服务: 运行命令`sudo service apache2 restart`来重启Apache服务。
OpenStack——云平台使⽤⼀、如何创建云主机使⽤双节点部署,控制节点(controller):192.168.16.10,计算节点(compute):192.168.16.20(⼀)、创建镜像1、在控制节点中找到qcow2镜像[root@controller ~]# cd /opt/iaas/images/[root@controller images]# lsCentOS_6.5_x86_64_XD.qcow2 CentOS_7.2_x86_64_XD.qcow2 MySQL_5.6_XD.qcow22、通过glance命令,将qcow2镜像上传到平台[root@controller images]# source /etc/keystone/admin-openrc.sh[root@controller images]# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2(⼆)、创建⽹络1、创建外部⽹络选择菜单栏:项⽬ -> ⽹络 -> ⽹络。
单击“创建⽹络”,来创建虚拟机⽹络。
创建⽹络名称为net-gre,配置⼦⽹名称为net-subnet,⽹络地址为192.168.20.0/24,⽹关为192.168.20.2。
再配置DHCP地址池,激活DHCP,配置DNS为114.114.114.114。
点击“已创建”创建⽹络。
选择菜单栏:管理员 -> 系统 -> ⽹络。
对已创建的net-gre⽹络,点击 “编辑⽹络”,在弹框中勾选“外部⽹络”。
2、创建内部⽹络选择菜单栏:项⽬ -> ⽹络 -> ⽹络。
单击“创建⽹络”,来创建虚拟机⽹络。
创建⽹络名称为int-gre,配置⼦⽹名称为int-subnet,⽹络地址为10.10.0.0/24,⽹关为10.10.0.1。
kolla-ansible部署openstackallinone单节点环境准备2 network interfaces8GB main memory40GB disk space1.修改hostnamehostnamectl set-hostname kolla2.配置域名解析echo '10.1.10.161 kolla' >> /etc/hostsInstall packages1.安装依赖yum install python-devel libffi-devel gcc openssl-devel libselinux-python -y2.安装 pip,ansible##如果⽆法安装python-pip,先导⼊epel源yum install epel-release -yyum install python-pip ansible -ypip install -U pip安装 docker-ce(CentOS 7 使⽤ yum 进⾏安装)# step 1: 安装必要的⼀些系统⼯具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件源信息sudo yum-config-manager --add-repo https:///docker-ce/linux/centos/docker-ce.repo# Step 3: 更新并安装Docker-CEsudo yum makecache fastsudo yum -y install docker-ce# Step 4: 开启Docker服务systemctl enable docker;systemctl restart docker3.配置 docker 镜像加速mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://"]}EOFsystemctl daemon-reload;systemctl restart docker4.安装 kolla-ansiblepip install kolla-ansible##ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall ##出现报错不能卸载PyYAML,使⽤下⾯命令,忽略PyYAML错误pip install kolla-ansible --ignore-installed PyYAMLmkdir -p /etc/kollachown $USER:$USER /etc/kolla##Copy globals.yml and passwords.ymlcp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla##Copy all-in-one and multinode inventory filescp /usr/share/kolla-ansible/ansible/inventory/* .Prepare initial configuration1.Configure Ansible /etc/ansible/ansible.cfg[defaults]host_key_checking=Falsepipelining=Trueforks=1002.配置主机清单⽂件,根据部署场景,这⾥选择 all-in-one ⽂件[control]kolla[network]kolla[compute]kolla[storage]kolla[monitoring]kolla[deployment]kolla3.对 /etc/kolla/passwords.yml ⽂件⽣成随机密码,或者修改为⾃定义密码kolla-genpwdvim /etc/kolla/passwords.yml##admin密码可以修改为⾃定义,在登录dashboard会⽤到keystone_admin_password: 1234qwer4.配置 /etc/kolla/globals.yml ⽂件kolla_base_distro: "centos"kolla_install_type: "source"openstack_release: "train"kolla_internal_vip_address: "10.1.10.161"network_interface: "ens32"neutron_external_interface: "ens34"enable_haproxy: "no"nova_compute_virt_type: "qemu"5.配置 ssh ⽆密钥登录,授权节点ssh-keygenssh-copy-id -i ~/.ssh/id_rsa.pub root@kollaDeployment##检查主机连接ansible -i all-in-one all -m ping##检查Bootstrap servers依赖kolla-ansible -i ./all-in-one bootstrap-servers##检查配置kolla-ansible -i ./all-in-one prechecks##pull镜像kolla-ansible pull -i ./all-in-one##执⾏部署kolla-ansible -i ./all-in-one deploy报错1:执⾏kolla-ansible -i ./all-in-one bootstrap-serversTASK [baremetal : Generate /etc/hosts for all of the nodes]********************************************************************************************************************************fatal: [kolla]: FAILED! => {"msg": "The conditional check 'inventory_hostname not in groups['bifrost'] or 'ansible_' +hostvars[inventory_hostname]['api_interface'] in hostvars[inventory_hostname]' failed. The error was: error while evaluating conditional (inventory_hostname not in groups['bifrost'] or 'ansible_' + hostvars[inventory_hostname]['api_interface'] inhostvars[inventory_hostname]): 'ansible.vars.hostvars.HostVars object' has no attribute u'kolla'\n\nThe error appears to have been in '/usr/share/kolla-ansible/ansible/roles/baremetal/tasks/pre-install.yml': line 31, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Generate /etc/hosts for all of the nodes\n ^ here\n"} to retry, use: --limit @/usr/share/kolla-ansible/ansible/kolla-host.retry解决办法:yum upgrade -y更新的软件包如图报错2:执⾏kolla-ansible -i ./all-in-one prechecksTASK [prechecks : Checking Docker version]*************************************************************************************************************************************************fatal: [kolla]: FAILED! => {"msg": "The conditional check 'result is failed or result.stdout | regex_replace('.*(\\\\d+\\\\.\\\\d+\\\\.\\\\d+).*', '\\\\1') is version(docker_version_min, '<')' failed. The error was: template error while templating string: no test named 'version'. String: {% if result is failed or result.stdout | regex_replace('.*(\\\\d+\\\\.\\\\d+\\\\.\\\\d+).*', '\\\\1') is version(docker_version_min, '<') %} True {% else %} False {% endif %}"}to retry, use: --limit @/usr/share/kolla-ansible/ansible/site.retry解决办法:同上,更新软件包后⼀并解决报错3:执⾏kolla-ansible -i ./all-in-one prechecksTASK [cinder : Checking LVM volume group exists for Cinder]********************************************************************************************************************************fatal: [kolla]: FAILED! => {"changed": false, "cmd": ["vgs", "cinder-volumes"], "delta": "0:00:00.023537", "end": "2019-12-2716:37:44.519563", "failed_when_result": true, "msg": "non-zero return code", "rc": 5, "start": "2019-12-27 16:37:44.496026", "stderr": "Volume group \"cinder-volumes\" not found\n Cannot process volume group cinder-volumes", "stderr_lines": [" Volume group \"cinder-volumes\" not found", " Cannot process volume group cinder-volumes"], "stdout": "", "stdout_lines": []}解决办法:报错没错找到cinder-volumes卷⼿动创建pvcreate /dev/sdbvgcreate cinder-volumes /dev/sdbUsing OpenStack1.安装CLI客户端pip install python-openstackclient2.⽣成环境脚本kolla-ansible post-deploy . /etc/kolla/admin-openrc.sh报错4:/usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.7) or chardet (2.2.1) doesn't match a supported versionpip uninstall urllib3pip uninstall chardetpip install --upgrade requests报错5:ImportError: cannot import name decoratesed -i '/^from decorator import decorate/s/from/#from/' /usr/lib/python2.7/site-packages/dogpile/cache/region.py3.使⽤脚本⽂件初始化运⾏环境/usr/share/kolla-ansible/init-runonce4.删除部署的openstack环境kolla-ansible destroy -i all-in-one --yes-i-really-really-mean-it参考链接:。
openstack的安装和部署1.什么是云计算1:什么是云计算?云计算是通过虚拟化技术去实现的,它是⼀种按量付费的模式!2:为什么要⽤云计算?⼩公司:1年,20⼈+,500w,招⼀个运维,15k,(10台*1.5w,托管IDC机房,8k/年,带宽 100M,5个公⽹ip, 10k/⽉), 买10台云主机,600*10=6000⼤公司:举⾏活动,加集群,把闲置时间出租,超卖(kvm)16G,kvm,64G(ksm),⾦牌⽤户(200w+/⽉)3:云计算有哪些功能?虚拟机的管理平台(计费)kvm:1000宿主机(agent),虚拟出2w虚拟机,虚拟机的详细情况:硬件资源,ip情况统计?虚拟机管理平台:每台虚拟机的管理,都⽤数据库来统计4:云计算的服务类型IAAS 基础设施即服务 ECS云主机⾃⼰部署环境,⾃⼰管理代码和数据infrastructure as an servicePAAS(docker) 平台即服务提供软件的运⾏环境,java ,python,go, c#,nodejs ⾃⼰管理代码和数据platfrom as an serviceSAAS 软件即服务企业邮箱,cdn,rdssoftware as an serviceopenstack实现的是云计算IAAS,开源的云计算平台,apache 2.0,阿⾥云(飞天云平台)2.openstack (soa架构)云平台(keystone认证服务,glance镜像服务,nova计算服务,neutron⽹络服务,cinder存储服务,horizon web界⾯)每个服务:数据库,消息队列,memcached缓存,时间同步⾸页/index.html秒杀/miaosha/index.html会员:/plus/index.html登录:/login/indexnginx+php +mysql(500张表)SOA(拆业务,把每⼀个功能都拆成⼀个独⽴的web服务,每⼀个独⽴的web服务,⾄少拥有⼀个集群)微服务架构:亿级⽤户开源的微服框架阿⾥开源的dubbospring boot⾃动化代码上线 Jenkins + gitlab ci⾃动化代码质量检查 sonarqube官⽹:openstack 版本A-Z 开头3.虚拟机规划controller:内存3G,cpu开启虚拟化,ip:10.0.0.11compute01:内存1G,cpu开启虚拟化(必开),ip:10.0.0.31host解析,[root@controller ~]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.11 controller10.0.0.31 computer1[root@controller ~]# scp -rp /etc/hosts 10.0.0.31 /etc/hosts4.配置yum源1.挂载光盘[root@computer1 ~]# mount /dev/cdrom /mntmount: /dev/sr0 is write-protected, mounting read-only[root@controller ~]# mount /dev/cdrom /mntmount: /dev/sr0 is write-protected, mounting read-only#查看(如果有内容代表挂载成功)[root@computer1 ~]# ll /mnttotal 686-rw-rw-r-- 1 root root 14 Nov 26 2018 CentOS_BuildTagdrwxr-xr-x 3 root root 2048 Nov 26 2018 EFI-rw-rw-r-- 1 root root 227 Aug 30 2017 EULA-rw-rw-r-- 1 root root 18009 Dec 10 2015 GPLdrwxr-xr-x 3 root root 2048 Nov 26 2018 imagesdrwxr-xr-x 2 root root 2048 Nov 26 2018 isolinuxdrwxr-xr-x 2 root root 2048 Nov 26 2018 LiveOSdrwxrwxr-x 2 root root 663552 Nov 26 2018 Packagesdrwxrwxr-x 2 root root 4096 Nov 26 2018 repodata-rw-rw-r-- 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-7-rw-rw-r-- 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-7-r--r--r-- 1 root root 2883 Nov 26 2018 TRANS.TBL[root@controller ~]# scp -rp openstack_rpm.tar.gz 10.0.0.31:/optrz 上传openstack_rpm.tar.gz到/opt,并解压⽣成repo配置⽂件root@controller opt]# vim/etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0[openstack]name=openstackbaseurl=file:///opt/repogpgcheck=0root@controller opt]#echo 'mount /dev/cdrom /mnt' >>/etc/rc.localroot@controller opt]# chmod +x /etc/rc.d/rc.local[root@controller opt]# scp -rp /etc/yum.repos.d/local.repo 10.0.0.31:/etc/yum.repos.d/local.repo [root@computer1 opt]# vim /etc/yum.repos.d/local.repo[root@computer1 opt]# echo 'mount /dev/cdrom /mnt' >>/etc/rc.local[root@computer1 opt]# chmod +x /etc/rc.d/rc.local#注意:两台都要配2.安装基础服务在所有节点上执⾏:a:时间同步[root@controller opt]# yum install -y chrony[root@computer1 opt]# yum install -y chrony#编辑控制节点配置⽂件[root@controller opt]# vim /etc/chrony.conf1.将 server iburst 改成server iburst另三⾏删掉2.将 #allow 192.168.0.0/1改成allow 10.0.0.0/24#重启服务[root@controller opt]# vim /etc/chrony.confsystemctl restart chronyd#编辑计算节点[root@computer1 opt]# vim /etc/chrony.conf将 server iburst 改成server 10.0.0.11 iburst另三⾏删掉[root@computer1 opt]# systemctl restart chronyd5.安装openstack客户端和openstack-selinux1.在所有节点上执⾏[root@control ~]# yum install python-openstackclient openstack-selinux -y[root@computer1 ~]# yum install python-openstackclient openstack-selinux -y查看官⽅⽂档6.安装数据库以及安全初始化2.仅控制节点执⾏:[root@control ~]# yum install mariadb mariadb-server python2-PyMySQL -y在官⽅⽂档上有https:///mitaka/zh_CN/install-guide-obs/environment-sql-database.html3.创建并编辑 /etc/f.d/f[root@control ~]# cat /etc/f.d/f[mysqld]bind-address = 10.0.0.11 # 值为控制节点的管理⽹络IP地址以使得其它节点可以通过管理⽹络访问数据库default-storage-engine = innodb #默认存储引擎innodb_file_per_table #为每个表独⽴表空间⽂件max_connections = 4096 #最⼤连接数collation-server = utf8_general_ci # 默认字符集character-set-server = utf84.启动mariadb 并加⼊开机⾃启[root@control ~]# systemctl start mariadb[root@control ~]# systemctl enable mariadb5. 为了保证数据库服务的安全性,运⾏[root@control ~]# mysql_secure_installation ⼀定要执⾏要不然后⾯时间同步会有坑脚本。
项目一 OpenStack安装云计算技术OpenStack云计算平台能力CAPACITY 要求了解云计算的概念、架构和模式,以及主流的云计算平台了解OpenStack项目,调查OpenStack的应用情况理解OpenStack的架构,了解OpenStack的物理部署了解OpenStack部署工具,掌握OpenStack的快捷安装方法内容导航CONTENTS任务一了解云计算任务二了解OpenStack项目任务三理解OpenStack架构任务四部署与安装OpenStack任务说明01OPTION02OPTION03OPTION了解OpenStack部署拓扑了解OpenStack部署工具准备OpenStack安装环境04OPTION使用Packstack安装器安装OpenStack知识引入•什么是虚拟化•虚拟化是云计算的基础。
•虚拟化是指计算元件在虚拟的而不是真实的硬件基础上运行。
•虚拟化将物理资源转变为具有可管理性的逻辑资源,以消除物理结构之间的隔离,将物理资源融为一个整体。
虚拟化是一种简化管理和优化资源的解决方案。
知识引入•什么是云计算•云(Cloud)是网络、互联网的一种比喻说法。
•云计算是提供虚拟化资源的模式。
•云计算提供的是IT资源租用服务。
•云计算是IT系统架构不断发展的产物。
知识引入•云计算架构知识引入云计算部署模式公有云(Public Cloud)私有云(Private Cloud )混合云(Hybrid Cloud )知识引入•裸金属云•裸金属云(Bare Metal Cloud)是一种提供物理服务器服务的云产品。
•裸金属云没有虚拟机管理程序(Hypervisor)。
•裸金属云支持的处理器ØIntelØPOWERØARMØGPUØFPGA•随着容器技术的兴起,物理服务器正成为更多用户的选择。
•Amazon 公司的AWS(Amazon Web Services )•Microsoft 公司的Azure •阿里云(AliCloud )了解商用云计算平台任务实现11项目一 OpenStack安装任务一 了解云计算开源云计算平台OpenStack OpenNebula Eucalyptus CloudStack任务实现项目一 OpenStack安装12 内容导航CONTENTS任务一了解云计算任务二了解OpenStack项目任务三理解OpenStack架构任务四部署与安装OpenStack任务说明01OPTION 02OPTION 03OPTION 了解OpenStack的概念了解OpenStack项目的组成了解OpenStack版本演变04OPTION 了解OpenStack基金会与社区05OPTION 调查OpenStack的应用情况知识引入•什么是OpenStack•OpenStack是一系列开源软件项目的组合。
kolla-ansible-----快速部署openstack 基本环境操作系统:CentOS Linux release 7.5.1804 (Core)内核版本:3.10.0-862.el7.x86_64docker版本:1.13.11、禁⽤宿主机的 Libvirt 服务⼤多数操作系统会默认启动 Libvirt,但使⽤ Kolla 来部署 OpenStack 的话,Libvirt 应该在容器中运⾏并管理虚拟机。
所以宿主机的 Libvirt 需要被关闭,以免造成冲突。
systemctl stop libvirtd.servicesystemctl disable libvirtd.service部署kolla1、安装依赖yum install epel-release python-pipyum install -y python-devel libffi-devel openssl-devel gccpip install -U pip2、配置国内pip源不然这个速度很慢mkdir ~/.pipcat << EOF > ~/.pip/pip.conf[global]index-url = https:///simple/[install]trusted-host=EOF3、安装stable版kolla下载源码git clone https:///openstack/kolla -b stable/rocky安装依赖pip install -r kolla/requirements.txt -r kolla/test-requirements.txt源码安装pip install kolla/4、安装tox,⽣成配置⽂件pip install -U toxcd kolla/tox -e genconfigcp -rv etc/kolla /etc/编辑 kolla-build.conf:控制 Kolla Image Build 的细则。
kolla多节点部署openstackkolla 介绍简介kolla 的使命是为 openstack 云平台提供⽣产级别的、开箱即⽤的交付能⼒。
kolla 的基本思想是⼀切皆容器,将所有服务基于 Docker 运⾏,并且保证⼀个容器只跑⼀个服务(进程),做到最⼩粒度的运⾏ docker。
kolla 要实现 openetack 部署总体上分为两步,第⼀步是制作 docker 镜像,第⼆步是编排部署。
因此,kolla 项⽬⼜被分为两个⼩项⽬:kolla、kolla-ansible 。
kolla 的优势 kolla 的优势主要得益于容器技术:得益于成熟的部署⼯具 ansible 和 docker,部署快速且稳定。
⼀个容器只跑⼀个服务,所以能将 openstack 服务控制到很⼩的粒度。
可以以组件为单位进⾏升级和回滚,例如升级 nova 组件,使⽤ kolla-ansible -i /path/to/inventory -t nova 命令即可。
kolla 采⽤⼀切皆容器的基本思想,所以只需操作系统与 docker 兼容,从⽽规避了很多安装包依赖冲突的问题。
⽬前 kolla 项⽬在社区内的热度相对较⾼,社区⽀持更好。
kolla 的缺点完全依赖于 docker ,docker 的不稳定性会给整个环境带来巨⼤的灾难,不过⽬前 docker 已经问题很少了。
使⽤ kolla 部署好云平台后,给开发的 debug 和运维的故障排查会带来更多的复杂度,这个问题也可能通过写⼀个简单的 client 解决。
环境配置与需求硬件配置:三台 8C16G50G 服务器每台服务器两块⽹卡第⼀台服务器额外挂载⼀块 500G 磁盘操作系统:Ubuntu 18.04.2 LTS 操作系统内核版本 4.15.0-45-generic节点规划:三台服务器做⾼可⽤,部署 API 服务第⼀台服务器做为部署节点,部署 ansible、kolla-ansible、私有registry、apt源等剩余两台服务器复⽤,均作为计算节点和⽹络节点⾼可⽤注意事项:如⽆特殊说明,命令默认在部署节点执⾏设置主机名与 host 解析(该步骤需在所有节点上执⾏)使⽤ hostnamectl 设置主机名hostnamectl set-hostname --static server-xx配置 host 解析cat << EOF >> /etc/hosts172.20.xx.31 server-31172.20.xx.32 server-32172.20.xx.33 server-33172.20.xx.31 dev.registry.ioEOF其中,dev.registry.io 是私有 registry 的域名。