OpenStack 部署与清理
概述
参考:
部署方式
手动部署 OpenStack 中的每一个组件
https://docs.openstack.org/xena/install/
使用自动化部署工具,部署工具有多种类型可供选择
由大型公司维护的部署工具
- TripleO # 由 RedHat 公司维护。是 RedHat OpenStack Platform(RHOSP) 的上游版本。
- OpenStack Charms # 由 Canonical 公司维护(Ubuntu 发行版公司)。使用 MAAS 和 Juju 部署。
由社区驱动的部署工具
- OpenStack Kolla # 通过 Ansible 部署,并将大部分组件以容器的方式启动
- 非常简单高效得部署一个用来 生产、开发、测试 的 OpenStack。支持 all-in-one 和 multinode 两种模式(即所有组件都在一个节点或分散在多个节点)
- OpenStack Ansible # 通过 Ansible 部署。
其他
原始的 OpenStack 不管是什么部署方式,通常都需要至少两张网卡。
对于小规模部署,还可以使用其他 OpenStack 的发行版:
支持的操作系统
从 Ussuri 版本开始,OpenStack 不再支持 CentOS 7 作为主机操作系统。Train 版本同时支持 CentOS 7 和 8,并提供了迁移路径。有关迁移到 CentOS 8 的信息,请参阅 Kolla Ansible Train 文档。
不再支持 CentOS Linux 8(相对于 CentOS Stream 8)作为主机操作系统。Victoria 版本将来会同时支持 CentOS Linux 8 和 CentOS Stream 8,并提供迁移途径。
- CentOS Stream 8
- Debian Bullseye (11)
- RHEL 8(已弃用)
- Rocky Linux 8
- Ubuntu Focal (20.04)
支持的容器镜像
为获得最佳结果,基本容器映像分发应与主机操作系统分发匹配。支持以下值 kolla_base_distro:
- centos
- debian
- rhel(已弃用)
- ubuntu
有关哪些发行版支持哪些图像的详细信息,请参阅 Kolla 支持矩阵。
逐一安装每个组件
想要一个正常可用的 OpenSatck 集群,我们至少需要按照顺序安装下列服务:
- Identity service – keystone installation for Yoga
- Image service – glance installation for Yoga
- Placement service – placement installation for Yoga
- Compute service – nova installation for Yoga
- Networking service – neutron installation for Yoga
还可以安装一些补充服务,比如 Web 页面等:
- Dashboard – horizon installation for Yoga
- Block Storage service – cinder installation for Yoga
Kolla-ansible
参考:
使用 Kolla-ansible 部署 OpenStack 的服务器必须满足如下要求:
- 至少需要两个可用的网卡,在
/etc/kolla/globals.yml文件中,被描述为如下两个关键字- network_interface # 管理网络、API 网络的网卡
- neutron_external_interface # Neutron 外部接口就是虚拟机对外访问的出口。该网络设备将会桥接到
ovs-switch这个桥设备上。虚拟机是通过这块网卡访问外网。
- 至少 8G 内存
- 至少 40G 硬盘
安装依赖并使用虚拟环境
sudo apt update
sudo apt install python3-dev libffi-dev gcc libssl-dev
创建一个 Python 虚拟环境以安装部署工具
export KOLLA_DIR=/root/kolla
mkdir -p ${KOLLA_DIR}
sudo apt install python3-venv
python3 -m venv ${KOLLA_DIR}/venv
source ${KOLLA_DIR}/venv/bin/activate
pip install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install 'ansible<5.0' -i https://pypi.tuna.tsinghua.edu.cn/simple
安装 Kolla-ansible
这里说的 Kolla-ansible 主要指的是用于部署 Openstack 的 Ansible Playbook~~~~
确定要安装的版本。Kolla-ansible 的版本号与 Openstack 的版本号保持一致,这里以 Openstack 的 xena 版本为例
export KOLLA_BRANCH_NAME=xena
使用 pip 安装 kolla-ansible 及其依赖项。
pip install git+https://opendev.org/openstack/kolla-ansible@${KOLLA_BRANCH_NAME}
创建配置目录
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
cp -r ${KOLLA_DIR}/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
将 Ansible Playbook 所需的 Inventory 拷贝到当前目录
cp ${KOLLA_DIR}/venv/share/kolla-ansible/ansible/inventory/* .
配置 Ansible
mkdir -p /etc/ansible
tee /etc/ansible/ansible.cfg > /dev/null <<EOF
[defaults]
host_key_checking=False
pipelining=True
forks=100
EOF
All-in-one 部署 OpenStack
配置 Kolla
为 /etc/kolla/passwords.yml 文件生成密码
kolla-genpwd
配置 /etc/kolla/globals.yml 文件
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
network_interface: "eno3"
# Neutron 外部接口就是虚拟机对外访问的出口。该网络设备将会桥街道 ovs-switch 这个桥设备上。
neutron_external_interface: "eno4"
kolla_internal_vip_address: "192.168.88.236"
enable_cinder: "yes"
openstack_release: "xena"
enable_haproxy: "no"
配置 Inventory
略,直接使用 localhost 即可
部署依赖并检查环境
kolla-ansible -i ./all-in-one bootstrap-servers
kolla-ansible -i ./all-in-one prechecks
部署 OpenStack
kolla-ansible -i ./all-in-one pull ???待验证
kolla-ansible -i ./all-in-one deploy
Multinode 部署 OpenStack
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.