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 service
PAAS(docker) 平台即服务提供软件的运⾏环境,java ,python,go, c#,nodejs ⾃⼰管理代码和数据
platfrom as an service
SAAS 软件即服务,cdn,rds
software as an service
openstack实现的是云计算IAAS,开源的云计算平台,apache 2.0,阿⾥云(飞天云平台)
2.openstack (soa架构)
云平台
(keystone认证服务,glance镜像服务,nova计算服务,neutron⽹络服务,cinder存储服务,horizon web界⾯)
每个服务:数据库,消息队列,memcached缓存,时间同步
⾸页www.jf/index.html
秒杀www.jd/miaosha/index.html
会员:www.jd/plus/index.html
登录:www.jd/login/index
nginx+php +mysql(500张表)
SOA(拆业务,把每⼀个功能都拆成⼀个独⽴的web服务,每⼀个独⽴的web服务,⾄少拥有⼀个集)
微服务架构:亿级⽤户
开源的微服框架
阿⾥开源的dubbo
spring boot
⾃动化代码上线 Jenkins + gitlab ci
⾃动化代码质量检查 sonarqube
官⽹:
openstack 版本
A-Z 开头
3.虚拟机规划
controller:内存3G,cpu开启虚拟化,ip:10.0.0.11
compute01:内存1G,cpu开启虚拟化(必开),ip:10.0.0.31
host解析,
[root@controller ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.11 controller
10.0.0.31 computer1
[root@controller ~]# scp -rp /etc/hosts 10.0.0.31 /etc/hosts
4.配置yum源
1.挂载光盘
[root@computer1 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-onlypython虚拟机
[root@controller ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
#查看(如果有内容代表挂载成功)
[root@computer1 ~]# ll /mnt
total 686
-rw-rw-r-- 1 root root 14 Nov 26 2018 CentOS_BuildTag
drwxr-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 GPL
drwxr-xr-x 3 root root 2048 Nov 26 2018 images
drwxr-xr-x 2 root root 2048 Nov 26 2018 isolinux
drwxr-xr-x 2 root root 2048 Nov 26 2018 LiveOS
drwxrwxr-x 2 root root 663552 Nov 26 2018 Packages
drwxrwxr-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_ 10.0.0.31:/opt
rz 上传openstack_到/opt,并解压
⽣成repo配置⽂件
root@controller opt]# vim/pos.po
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
[openstack]
name=openstack
baseurl=file:///opt/repo
gpgcheck=0
root@controller opt]#echo 'mount /dev/cdrom /mnt' >>/etc/rc.local
root@controller opt]# chmod +x /etc/rc.d/rc.local
[root@controller opt]# scp -rp /pos.po 10.0.0.31:/pos.po [root@computer1 opt]# vim /pos.po
[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 /f
1.
将 p.org iburst 改成
server ntp6.aliyun iburst
另三⾏删掉
2.将 #allow 192.168.0.0/1改成
allow 10.0.0.0/24
#重启服务
[root@controller opt]# vim /f
systemctl restart chronyd
#编辑计算节点
[root@computer1 opt]# vim /f
将 p.org iburst 改成
server 10.0.0.11 iburst
另三⾏删掉
[root@computer1 opt]# systemctl restart chronyd
5.安装openstack客户端和openstack-selinux
1.在所有节点上执⾏
[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
在官⽅⽂档上有
/mitaka/zh_CN/install-guide-obs/environment-sql-database.html
3.创建并编辑 /etc/myf.d/openstackf
[root@control ~]# cat /etc/myf.d/openstackf
[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 = utf8
4.启动mariadb 并加⼊开机⾃启
[root@control ~]# systemctl start mariadb
[root@control ~]# systemctl enable mariadb
5. 为了保证数据库服务的安全性,运⾏
[root@control ~]# mysql_secure_installation ⼀定要执⾏要不然后⾯时间同步会有坑
脚本。特别需要说明的是,为数据库的root⽤户设置⼀个适当的密码。
回车
#需要输⼊当前root⽤户的密码,这⾥我们是空,就直接回车就可以了
Enter current password for root (enter for none):
#设置数据库的密码,这⾥我不想设置选择n
Set root password? [Y/n]
#移除地址⽤户选择yes
Remove anonymous users? [Y/n] Y
#禁⽌root远程登录选择Y
Disallow root login remotely? [Y/n] Y
#移除data的数据库和访问他的权限选择 y
Remove test database and access to it? [Y/n] y
#重载权限表选择 y
Reload privilege tables now? [Y/n] y
7.消息队列
OpenStack 使⽤ message queue 协调操作和各服务的状态信息。消息队列服务⼀般运⾏在控制节点上。OpenStack⽀持好⼏种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,⼤多数发⾏版本的OpenStack包⽀持特定的消息队列服务。本指就是把所有功能拆成独⽴的服务,服务跟服务之间就涉及到调⽤的问题,这时就要通过消息队列进⾏(类似⼀个中介
1.安装rabbitmq并创建⽤户
[root@control ~]# yum install rabbitmq-server -y
2.启动消息队列服务并将其配置为随系统启动
[root@control ~]# systemctl enable rabbitmq-server.service
[root@control ~]# systemctl start rabbitmq-server.service
3.添加 openstack ⽤户:
[root@control ~]# rabbitmqctl add_user openstack RABBIT_PASS
Creating user "openstack" ...
4.给openstack⽤户配置写和读权限
[root@control ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
5.查看端⼝
[root@control ~]# netstat -lntup |grep 5672
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 10118/beam
tcp6 0 0 :::5672 :::* LISTEN 10118/beam
6. 弄⼀个插件
[root@control ~]# rabbitmq-plugins enable rabbitmq_management
查看端⼝发现多⼀个15672
[root@control ~]# netstat -lntup |grep 5672
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 10118/beam
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 10118/beam
tcp6 0 0 :::5672 :::* LISTEN 10118/beam
访问⼀下
默认⽤户:guest
默认密码:guest
8.Memcached
认证服务认证缓存使⽤Memcached缓存令牌。缓存服务memecached运⾏在控制节点。在⽣产部署中,我们推荐联合启⽤防⽕墙、认证和加密保证它的安全。
1.安装软件
[root@control ~]# yum install memcached python-python-memcached -y
2.修改配置⽂件这⼀条在M版本的官⽅⽂档没有,但在o 版本的有
[root@control ~]# sed -i 's#127.0.0.1#10.0.0.11#g' /etc/sysconfig/memcached
3.启动Memcached服务,并且配置它随机启动。
[root@control ~]# systemctl enable memcached.service
[root@control ~]# systemctl start memcached.service
4.查看端⼝
[root@control ~]# netstat -lntup |grep 11211
tcp 0 0 10.0.0.11:11211 0.0.0.0:* LISTEN 11095/memcached
tcp6 0 0 ::1:11211 :::* LISTEN 11095/memcached
udp 0 0 10.0.0.11:11211 0.0.0.0:* 11095/memcached
udp6 0 0 ::1:11211 :::* 11095/memcached
Horizon 是⼀个 dashboard 就是⼀个控制⾯板
Celiometer 是⼀个监控计费
像快照,配置都要计费的
Keystone 是⼀个登录认证
像有些⽹站都是qq登录或者登录
Heat 是⼀个编排服务(playbook)
就是通过定义剧本来批量启动⼀系列的虚拟机,然后⼀键实现⼀个集的搭建(利⽤ansible 来执⾏)
swift 是⼀个对象存储
就是⽤户的东西不在是存在某⼀个⽬录下⾯,因为传统的⽬录下没有数据库,⽽swift (对象存储)就专门建⼀个数据库
把每⼀个⽂件当成⼀个记录对象,⽽不是⽬录级别的,就是⼀个⽂件变成数据库⾥的⼀条记录。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论