1.OpenStack介绍及环境部署(PS笔记)

当面对KVM集群的时候,我们对KVM的管理以及宿主机的管理就会遇到很大的难度,例如:

查看每一个宿主机有多少台KVM虚拟机?

查看每一个宿主机资源信息,每一个KVM虚拟机资源信息?查看每一台宿主机配置信息,每一个KVM虚拟机的配置信息查看每一台宿主机IP地址,每一个KVM虚拟机的IP地址?

OpenStack是带计费功能的kvm管理平台,IaaS层自动化管理kvm宿主机,云主机定制化操作。

OpenStack介绍

OpenStack是一个开源的虚拟化编排平台,提供了基础设施即服务(IaaS)的解决方案,帮助服务商和企业内部实现类似于 Amazon EC2 和阿里云的ECS的云基础架构服务(Infrastructure as a Service, IaaS)。

OpenStack核心组件

计算服务Nova:负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作。

镜像服务Glance负责虚拟机镜像管理,例如:上传镜像、删除镜像、编辑镜像基本信息的功能。

身份服务Keystone为OpenStack其他组件通讯时提供身份验证服务

(例如nova去调用镜像按照虚拟机系统,就需要keystone的介入,获得身份,同样glance去联系nova提供镜像需求也会通过keystone去获得身份访问)

网络&地址管理Neutron:提供网络虚拟化技术,为OpenStack其他服务提供网络连接服务,为用户提供网络接口。

块存储 Cinder为运行实例提供稳定的数据块存储服务

例如:创建卷、删除卷,在实例上挂载和卸载卷)

UI 界面 Horizon:OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作。

(例如:启动实例、分配IP地址、配置访问控制等)

1.OpenStack介绍及环境部署(PS笔记)_第1张图片

基础环境介绍

需要两个节点,分别为:controller控制节点;compute计算节点

主机名

IP地址

网络模式

硬件配置

controller

ens32192.168.0.50

管理网络:

NAT

2C,6G内存,50G

硬盘

ens34:不需要配IP

提供商网络:

NAT

compute01

ens32192.168.0.51

管理网络:

NAT

2C,4G内存,50G

硬盘

ens34:不需要配IP

提供商网络:

NAT

上面环境通过OpenStack官方文档建议的最小配置来设置的

controller 控制节点:上面会安装很多的软件启动很多的服务,数据库都也在上面,内存可以给多点;

compute计算节点:主要是用来提供硬件资源,启动虚拟机的,他本身运行的服务有nova和neutron,所以在搭建过程中不需要给太大;

根据官方文档中的介绍,所有节点都需要访问互联网,用于安装软件包、安全更新、DNS和NTP,提供商网络不需要配置IP地址,用于给 neutron服务使用。

两台服务器分别添加第二块网卡:

无需设置IP,这个后续是租户使用,用来个性化其公司内部环境;

1.OpenStack介绍及环境部署(PS笔记)_第2张图片

 1.OpenStack介绍及环境部署(PS笔记)_第3张图片

 VMware环境需要在虚拟机开启cpu虚拟化。

1.OpenStack介绍及环境部署(PS笔记)_第4张图片

controller与 compute节点环境配置

controller与compute节点配置主机名与本地解析

# cat /etc/hosts 
192.168.0.50	controller
192.168.0.51	compute01

时间同步

OpenStack的节点时间是需要进行同步的,但是我使用的是两台机器,而且都是可以进行联网的,完全可以都通过网络源来进行时间同步;

建议将controller和网络源同步时间,然后compute和controller同步时间。

controller控制节点配置

vim /etc/chrony.conf
#...
27 allow 192.168.0.0/24 
#配置允许访问的客户端列表
31 local stratum 10 
#本地的优先级

查看时间同步并设置开机启动:

systemctl restart chronyd 
chronyc sources -v

compute计算节点配置:

compute01上指定时间同步源是controller节点

vim /etc/chrony.conf
...
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server controller iburst

启动服务并查看时间同步:

systemctl restart chronyd
chronyc sources -v

配置阿里Base

OpenStack 只需要 Base 源,如果有 epel 源先删除,应为根据官方的建议在epel源的软件包版本会破坏 OpenStack 的兼容性,会出现版本不兼容的问题。

controllercompute都要配置

rm -rf /etc/yum.repos.d/epel.repo

安装OpenStack仓库

OpenStack目前可用的版本有PQRSTUVWXY,如果想要安装U版本及U版往后的版本,要求CentOS/RHEL8版本以上才可以。

本实验使用T版本的OpenStack部署,T版作为CentOS/EHEL7可以使用的最高版本,后续也不需要考虑版本升级的问题。

controller和compute都要安装

#下载T版本的OpenStack仓库
yum -y install centos-release-openstack-train
#安装RDO仓库RPM来启用OpenStack仓库
yum -y install https://rdoproject.org/repos/rdorelease.rpm
#安装客户端工具
yum -y install python-openstackclient
 

安装MySQL数据库

OpenStack环境中使用mysql数据库来存储各个服务的基础数据,因为

mysql已经商用默认源中是没有他的软件包,所以使用mariadb

参考地址:https://docs.openstack.org/zh_CN/install-guide/environme nt-sql-database-rdo.html

controller节点安装

yum -y install mariadb mariadb-server python2-PyMySQL
 

创建配置文件,并将bind-Address的地址设置为本机管理网络IP地址

vim /etc/my.cnf.d/openstack.cnf

[mysqld]
bind-address = 192.168.0.50
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

设置开机自动启动并启动服务查看状态

systemctl enable mariadb.service && systemctl start
mariadb.service
#对数据库进行初始化操作
mysql_secure_installation
输入root密码:——》[回车]
是否设置root密码?——》[y]
直接设置root密码——》[123456]
是否删除匿名用户?——》[y]
不允许root用户远程登录?——》[y]
是否删除测试数据库?——》[y]
是否重新加载授权表?——》[y]

 安装rabbitMQ消息队列

在OpenStack中,因为控制节点、计算节点、存储节点,相互之间是需要进行通信的,通信的时候需要借用些消息的传递,rabbitMQ就是为他们提供消息的传递,节点之间传递消息的时候会存放到rabbitMQ中,其他节点再到rabbitMQ中调取消息

无法正常执行命令的时候,可以尝试重启下rabbitMQ服务

controller节点安装

yum -y install rabbitmq-server

设置开机启动并启动服务

systemctl enable rabbitmq-server.service && systemctl start rabbitmq-server.service

对于rabbitMQ的配置就是创建一个OpenStack用户设置好权限,这里为了好记密码设置的是123,后面创建OpenStack所有服务的时候,密码也都是123

rabbitmqctl add_user openstack 123
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

安装memcacheh数据库

OpenStack环境中keystone服务颁布的令牌就是使用memcache来缓存的,也就是缓存用户的验证信息。

controller节点安装

yum -y install memcached python-memcached
修改配置文件,配置 IP 地址,让其他服务能够访问 memcached
vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1,controller  #已做域名解析

设置开机启动并启动服务

systemctl enable memcached.service && systemctl start memcached.service

 通过配置文件可以知道它开启的是11211端口

netstat -ntlp | grep 11211

安装etcd数据库

OpenStack 服务可以使用 ETCD ,这是一个分布式的可靠的键值存储,用于分布式密钥锁定、存储配置、跟踪服务的动态性和其他场景。

controller节点安装

yum -y install etcd
编辑 /etc/etcd/etcd.conf 文件,将文件中所有默认的 IP 改为本机管理网络IP,使其他服务能够访问 etcd。(使用vi来编辑配置文件,vim会导致全部成为注释)
vi /etc/etcd/etcd.conf
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://10.0.0.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
sed -i 's/10.0.0.11/192.168.0.50/g' /etc/etcd/etcd.conf

设置开机启动并启动服务

systemctl enable etcd && systemctl start etcd
查看 etcd 服务的端口 2379 2380 是打开的
netstat -ntlp | egrep '2379|2380'
现在基础环境就都安装完成了,检查前边安装的所有服务
systemctl is-active chronyd mariadb.service rabbitmq-server.service memcached.service etcd.service

你可能感兴趣的:(Openstack,运维,网络,kubernetes,openstack)