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

news2024/11/16 19:33:44

当面对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地址、配置访问控制等)

基础环境介绍

需要两个节点,分别为: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,这个后续是租户使用,用来个性化其公司内部环境;

 

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#异步详解

异步编程是指在程序执行过程中,不需要等待某个操作完成,就可以继续执行后续的代码。比如我们开发了一个web页面中有一个上传文件功能,我们上传文件时使用异步操作,就不用等待文件的上传时间,可以先在网页上进行其他操作…

Linux 命令(9)—— top

文章目录 1、命令简介2、使用方法3、命令行参数4、显示摘要5、进程列表字段6、交互命令a、全局命令b、摘要区域命令c、任务区域命令d、颜色映射e、可选显示窗口 7、配置文件a、系统配置文件b、个人配置文件 1、命令简介 top提供运行系统的动态实时视图。它可以显示系统摘要信息…

RK3399平台开发系列讲解(Pinctrl子系统)pinctrl的使用

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、配置 pinctrl二、调用 pinctrl2.1、Iomux 配置2.2、驱动强度配置2.3、上下拉配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍pinctrl设备树的使用方法。 一、配置 pinctr…

牛客网专项练习——C语言错题集(6)

文章目录 数组地址的移位C 源程序和函数的关系二维数组值的表示方式(n & (n-1)) 0容易出错的 位运算fseek 可以实现的操作 数组地址的移位 个人理解: 这题的 A C 选项的差别应该在优先级上(下文有 C 语言运算符优先级表)&am…

移动端测试-Adb工具

移动端测试_Adb工具 Adb的基本使用简要介绍通用操作步骤一、连接设备二、断开设备三、安装四、卸载五、抓取日志六、文件传输七、截屏八、清除apk缓存九、查看终端各apk占用内存 Adb的基本使用 简要介绍 adb其实就是移动端的调试工具, 全称为Android Debug Bridge…

chatgpt赋能python:Python设置画笔粗细:从入门到精通

Python设置画笔粗细:从入门到精通 在Python中,画图是非常常见的操作。设置画笔的粗细是其中的一个重要部分。本文将从最基础的设置粗细开始讲起,逐步深入,带您了解Python设置画笔粗细的各种方法。 一、使用pensize()函数 pensi…

【备战秋招】每日一题:5月13日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-火车调度 在线评测链接:P1288 题目描述 塔子哥是一位火车车厢调度员。 这一天,一列带有 n 个编号车厢的列车进站了,编号为 1\rightarrow …

【瑞萨RA_FSP】GPT—— 通用PWM定时器

文章目录 一、PWM简介二、GPT简介三、GPT的框图分析1. 计数器2. 周期设置和周期设置缓冲寄存器3. 时钟输入4. 控制寄存器5. 比较器和比较/输入捕获寄存器6. 中断请求信号7. IO输入输出引脚8. ELC事件输入9. 输出相位切换 一、PWM简介 PWM 的全称是脉冲宽度调制(Pul…

chatgpt赋能python:如何安装PyQt5

如何安装PyQt5 Python是现在最受欢迎的编程语言之一。Python与它的第三方库使得开发者能够在不同的领域中编写高质量的代码。因此,Python已经成为了许多开发者的首选之一,而PyQt5则是Python中使用最多的图形界面开发工具之一。在这篇文章中,…

chatgpt赋能python:Python环境安装必知必会

Python环境安装必知必会 Python作为一种高效、易用、广受欢迎的程序语言,在数据分析、人工智能、Web开发等领域都得到了广泛应用。如果您也想学习Python,或者需要开发Python程序,那么必须首先安装Python环境。本文将为您介绍Python环境安装的…

分享!!前端也需要了解的一些技术!!

目录 1、临时路径共享使用 2、关闭指定端口号的进程 1、临时路径共享使用 场景:自己开发中的pc、移动端、app等,由于还在开发中,没有上线,此时有的人需要暂时使用它么,那么就可以创建一个临时路径,共享给…

Anaconda jupyter lab安装及初使用

之前写了一篇: Anaconda、Jupyter的安装部署及使用问题总结 最近又用python比较多,升级了一下本机的anaconda版本,并使用jupyter lab来编写python脚本,本文记录一下升级、使用过程。 安装anaconda 下载安装包 Anaconda3-2023.03…

【Biomechanics】1 Biomechanics as an Interdiscipline

无回到目录第2章 文章目录 1.0 Introduction1.1 Measurement, Description, Analysis, and Assessment1.1.1 Measurement, Description, and Monitoring1.1.2 Analysis1.1.3 Assessment and Interpretation 1.2 Biomechanics and its Relationship with Physiology and Anatomy…

基于flask的web应用开发——搭建一个云盘

目录 0. 前言1. 实现开放下载链接2. 稍加改装3. 效果演示4. 云服务器项目部署 0. 前言 本节利用 flask 开放下载链接 操作系统:Windows10 家庭版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库:fla…

Opencv的getRotationMatrix2D函数底层解析

源码 cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale ) {angle * CV_PI/180;double alpha cos(angle)*scale;double beta sin(angle)*scale;Mat M(2, 3, CV_64F);double* m M.ptr<double>();m[0] alpha;m[1] beta;m[2] (1-alpha)*…

chatgpt赋能python:Python怎么装pip库

Python怎么装pip库 Python是一种高级编程语言&#xff0c;由于其简单易学和功能强大&#xff0c;成为众多开发者的选择。但是在开发过程中&#xff0c;需要使用到各种库。pip是Python的软件包管理器&#xff0c;通过pip工具&#xff0c;我们可以轻松地安装和管理Python库。 什…

iOS 单元测试之常用框架 OCMock 详解 | 京东云技术团队

一、单元测试 1.1 单元测试的必要性 测试驱动开发并不是一个很新鲜的概念了。在日常开发中&#xff0c;很多时候需要测试&#xff0c;但是这种输出是必须在点击一系列按钮之后才能在屏幕上显示出来的东西。测试的时候&#xff0c;往往是用模拟器一次一次的从头开始启动 app&a…

chatgpt赋能python:Python怎么让输出不换行

Python怎么让输出不换行 Python是一款具有高度灵活性和扩展性的语言&#xff0c;代码简洁易懂&#xff0c;易上手。在Python编程中&#xff0c;输出的相关操作也是非常常见的。在某些情况下&#xff0c;我们需要让输出内容在同一行显示&#xff0c;这时我们需要使用Python提供…

【Docker】技术架构演进

基本概念 应用&#xff08;Application&#xff09; / 系统&#xff08;System&#xff09; ​ 为了完成一整套服务的一个程序或者一组相互配合的程序群。生活例子类比&#xff1a;为了完成一项任务&#xff0c;而搭建的由一个人或者一群相互配的人组成的团队。 模块&#xff0…

C++【STL】之list的使用

文章目录&#xff1a; list介绍list使用1. 默认成员函数1.1 构造函数1.2 拷贝构造1.3 赋值重载1.4 析构函数 2. 迭代器3. 容量操作4. 数据访问5. 数据修改5.1 插入删除5.2 交换调整清理 6. 其他操作6.1 链表拼接6.2 链表移除6.3 排序6.4 链表逆置 list介绍 list是可以在常数范围…