Openstack

2021-11-19 19:07:23 浏览数 (1)

简述Openstack

  1. openstack,顾名思义,是开放的堆栈,堆栈是一种数据结构以及调用方式,是一个开放的云计算管理平台项目
  2. OpenStack它是许多相关服务和工具的集合,可以混合和匹配,来构建一个云计算环境,可以根据需求进行定制化。在边缘计算领域的发展也是比较好的。
  3. Openstack,能够对裸机,虚拟机以及容器进行智能化的管理。通俗的说,相当于一个大型牧场,有基数很大的牛羊马,经过针对性的训练,能够满足不同的需求,如表演,比赛,或作为食物供给。

Openstack结构

Openstack的架构主要有四部分控制,计算,存储以及网络

  1. 控制节点(controller):管理其他节点,起到统筹分配的作用
  2. 计算节点(compute):负责虚拟机运行
  3. 存储节点(cinder,obs):对虚拟机额外存储进行管理
  4. 网络节点(neutron):支撑内外网之间的通信

Openstack搭建方式

  1. 手动部署,依赖较多,部署起来是比较繁琐的,但过程是可控的,详情可见官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-ubuntu/overview.html
  2. 自动部署,速度快,部署起来是比较方便的,但很容易报错,遇到一些无法解决的,最快的恢复办法是重新开始

可以尝试kolla-ansible destroy -i (指定all-in-one,multinode的path)

kolla-ansible destroy --include-images --yes-i-really-really-mean-it

  1. kolla-ansible
  • kolla(考拉)是实现openstack自动化部署的项目,简单地说,kolla中ansible负责自动部署,docker负责容器服务

基于kolla-ansible的openstack部署

准备环境,Ubantu版本最好是20.04,我用的是18.04,配置双网卡,内网负责管理,外网负责通信

可以使用NAT或者桥接的方式,如果是桥接可以点击复制物理链接

准备工作

  1. 检查防火墙sudo ufw status sudo ufw disable
  2. docker官方脚本安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

docker镜像加速,mkdir /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://u7wdwp72.mirror.aliyuncs.com"] } EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

需要添加你的阿里云镜像地址

创建数据卷mkdir /etc/systemd/system/docker.service.d

vim /etc/systemd/system/docker.service.d/kolla.conf

[Service]

MountFlags=shared#方便后期使用cinder时候添加新磁盘

python依赖与安装

  1. 更新包 sudo apt update
  2. 安装Python依赖sudo apt install python3-dev libffi-dev gcc libssl-dev
  3. 安装依赖sudo apt install python3-venv
  4. python3 -m venv /path/to/venv source /path/to/venv/bin/activate
  5. pip版本更新pip install -U pip
  6. 安装ansiblesudo pip install ansible

时间会比较长,中间可能会几次断开连接,继续尝试重新连接

8.安装kolla-ansible

pip install git https://opendev.org/openstack/kolla-ansible@master

时间也会很长且安装过程中容易报错直到成功,如下

9.创建目录/etc/kolla并将安装目录下的globald.yml复制到此路径下

sudo mkdir -p /etc/kolla

cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

cp /path/to/venv/share/kolla-ansible/ansible/inventory/* .

10.安装kolla-ansible

git clone --branch master https://opendev.org/openstack/kolla-ansible

pip install ./kolla-ansible

cp -r kolla-ansible/etc/kolla/* /etc/kolla

cp kolla-ansible/ansible/inventory/* .

11.编辑all-in-one单点或multinode

vim all-in-one

1,$s/localhost/主机名/

1,$s/ansible_connection//

12.生成kolla密码

kolla-genpwd

13.编辑globals.yml文件,ansible-playbook会自动调用里面的参数

kolla_install_type: 类型

network_interface: 管理网络

neutron_external_interface: 外网

kolla_internal_vip_address: 单点部署,可以写你的内网ip

enable_haproxy:高可用设置"no"

14.部署并登陆

kolla-ansible -i ./all-in-one bootstrap servers #部署依赖的引导

kolla-ansible -i ./all-in-one prechecks#预检

kolla-ansible -i ./all-in-one deploy#部署

部署的过程比较长,大概等待15-20分钟,个人情况不同

部署成功后,可以https://server-ip/dashboard

帐号:admin

密码在password.yml文件中的157行

注:本文参考了openstack官方文档

0 人点赞