简述Openstack
- openstack,顾名思义,是开放的堆栈,堆栈是一种数据结构以及调用方式,是一个开放的云计算管理平台项目
- OpenStack它是许多相关服务和工具的集合,可以混合和匹配,来构建一个云计算环境,可以根据需求进行定制化。在边缘计算领域的发展也是比较好的。
- Openstack,能够对裸机,虚拟机以及容器进行智能化的管理。通俗的说,相当于一个大型牧场,有基数很大的牛羊马,经过针对性的训练,能够满足不同的需求,如表演,比赛,或作为食物供给。
Openstack结构
Openstack的架构主要有四部分控制,计算,存储以及网络
- 控制节点(controller):管理其他节点,起到统筹分配的作用
- 计算节点(compute):负责虚拟机运行
- 存储节点(cinder,obs):对虚拟机额外存储进行管理
- 网络节点(neutron):支撑内外网之间的通信
Openstack搭建方式
- 手动部署,依赖较多,部署起来是比较繁琐的,但过程是可控的,详情可见官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-ubuntu/overview.html
- 自动部署,速度快,部署起来是比较方便的,但很容易报错,遇到一些无法解决的,最快的恢复办法是重新开始
可以尝试kolla-ansible destroy -i (指定all-in-one,multinode的path)
kolla-ansible destroy --include-images --yes-i-really-really-mean-it
- kolla-ansible
- kolla(考拉)是实现openstack自动化部署的项目,简单地说,kolla中ansible负责自动部署,docker负责容器服务
基于kolla-ansible的openstack部署
准备环境,Ubantu版本最好是20.04,我用的是18.04,配置双网卡,内网负责管理,外网负责通信
可以使用NAT或者桥接的方式,如果是桥接可以点击复制物理链接
准备工作
- 检查防火墙
sudo ufw status sudo ufw disable
- 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依赖与安装
- 更新包
sudo apt update
- 安装Python依赖
sudo apt install python3-dev libffi-dev gcc libssl-dev
- 安装依赖
sudo apt install python3-venv
python3 -m venv /path/to/venv source /path/to/venv/bin/activate
- pip版本更新
pip install -U pip
- 安装ansible
sudo 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官方文档