OpenStack 全套搭建部署指南(基于 Kolla-Ansible)
一、環(huán)境準(zhǔn)備
1. 硬件要求
控制節(jié)點(diǎn):至少 4 核 CPU,8GB 內(nèi)存,100GB 磁盤(pán)(推薦 SSD)。
計(jì)算節(jié)點(diǎn):根據(jù)虛擬機(jī)需求調(diào)整,建議 8 核 CPU,16GB 內(nèi)存,200GB+ 磁盤(pán)。
網(wǎng)絡(luò)節(jié)點(diǎn)(可選):若需獨(dú)立網(wǎng)絡(luò)服務(wù),分配 2 核 CPU,4GB 內(nèi)存。
2. 操作系統(tǒng)
推薦系統(tǒng):Ubuntu 22.04 LTS 或 CentOS 9 Stream。
所有節(jié)點(diǎn)需滿足以下條件:
# 關(guān)閉 SELinux(CentOS)
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config # 關(guān)閉防火墻(測(cè)試環(huán)境)
sudo systemctl stop firewalld && sudo systemctl disable firewalld # CentOS
sudo ufw disable # Ubuntu # 配置時(shí)間同步(NTP/Chrony)
sudo timedatectl set-ntp true
3. 主機(jī)名與網(wǎng)絡(luò)規(guī)劃
主機(jī)名:確保所有節(jié)點(diǎn)的主機(jī)名可解析(如
controller,compute1)。網(wǎng)絡(luò)規(guī)劃:
管理網(wǎng)絡(luò)(Management Network):10.0.0.0/24
業(yè)務(wù)網(wǎng)絡(luò)(Tunnel/Data Network):10.0.1.0/24
外部網(wǎng)絡(luò)(External Network):與物理網(wǎng)絡(luò)橋接(如 192.168.1.0/24)。
二、安裝依賴與工具
1. 安裝 Python 和 Ansible
# Ubuntu
sudo apt update
sudo apt install -y python3-dev python3-pip git
sudo pip3 install -U pip ansible # CentOS
sudo dnf install -y python3-devel git
sudo pip3 install -U pip ansible
2. 安裝 Docker 和依賴
# Ubuntu
sudo apt install -y docker.io
sudo systemctl enable --now docker # CentOS
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce
sudo systemctl enable --now docker # 配置 Docker 鏡像加速(可選)
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl restart docker
3. 安裝 Kolla-Ansible
sudo pip3 install git+https://opendev.org/openstack/kolla-ansible@stable/zed
sudo mkdir -p /etc/kolla
sudo cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
sudo cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/
三、配置 Kolla-Ansible
1. 生成全局配置文件
# 生成密碼文件
sudo kolla-ansible genpwd # 編輯全局配置(/etc/kolla/globals.yml)
sudo vim /etc/kolla/globals.yml # 關(guān)鍵配置項(xiàng)
kolla_base_distro: "centos" # 或 "ubuntu"
kolla_internal_vip_address: "10.0.0.100" # 控制節(jié)點(diǎn) VIP
network_interface: "eth0" # 管理網(wǎng)絡(luò)接口
neutron_external_interface: "eth1" # 外部網(wǎng)絡(luò)接口
enable_cinder: "yes"
enable_cinder_backend: "lvm"
glance_backend: "file"
2. 配置 Inventory 文件
sudo vim /etc/kolla/inventory/multinode # 示例配置
[control]
controller [network]
controller [compute]
compute1 [monitoring]
controller [storage]
controller
四、部署 OpenStack
1. 執(zhí)行預(yù)檢查
sudo kolla-ansible -i /etc/kolla/inventory/multinode bootstrap-servers
sudo kolla-ansible -i /etc/kolla/inventory/multinode prechecks
2. 開(kāi)始部署
sudo kolla-ansible -i /etc/kolla/inventory/multinode deploy
3. 生成管理員憑據(jù)
sudo kolla-ansible post-deploy
source /etc/kolla/admin-openrc.sh # 加載環(huán)境變量
五、驗(yàn)證與初始化
1. 驗(yàn)證服務(wù)狀態(tài)
# 檢查容器運(yùn)行狀態(tài)
sudo docker ps # 檢查 OpenStack 服務(wù)
openstack compute service list
openstack network agent list
2. 創(chuàng)建初始資源
# 創(chuàng)建外部網(wǎng)絡(luò)
openstack network create --external --provider-physical-network physnet1 --provider-network-type flat public
openstack subnet create --network public --subnet-range 192.168.1.0/24 --gateway 192.168.1.1 --allocation-pool start=192.168.1.100,end=192.168.1.200 public-subnet # 創(chuàng)建測(cè)試虛擬機(jī)
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
openstack image create --file jammy-server-cloudimg-amd64.img --disk-format qcow2 --container-format bare ubuntu-jammy
openstack flavor create --ram 2048 --disk 20 --vcpus 2 m1.small
openstack server create --image ubuntu-jammy --flavor m1.small --network public test-vm
六、后續(xù)維護(hù)與擴(kuò)展
1. 添加計(jì)算節(jié)點(diǎn)
# 在新節(jié)點(diǎn)安裝依賴并加入 Inventory
sudo vim /etc/kolla/inventory/multinode
[compute]
compute1
compute2 # 重新部署
sudo kolla-ansible -i /etc/kolla/inventory/multinode deploy
2. 升級(jí) OpenStack
# 更新 Kolla-Ansible
sudo pip3 install -U kolla-ansible # 執(zhí)行升級(jí)
sudo kolla-ansible -i /etc/kolla/inventory/multinode upgrade
3. 備份與恢復(fù)
# 備份數(shù)據(jù)庫(kù)
sudo docker exec -it mariadb mysqldump -uroot -p$(grep 'database_password' /etc/kolla/passwords.yml | awk '{print $2}') --all-databases > openstack-backup.sql # 恢復(fù)數(shù)據(jù)庫(kù)
sudo docker exec -i mariadb mysql -uroot -p$(grep 'database_password' /etc/kolla/passwords.yml | awk '{print $2}') < openstack-backup.sql
七、故障排查
1. 查看容器日志
sudo docker logs <container_name>
2. 檢查網(wǎng)絡(luò)配置
# 驗(yàn)證 Neutron Agent
openstack network agent list # 檢查 OVS 橋接
sudo ovs-vsctl show
總結(jié)
核心工具:Kolla-Ansible 提供了容器化部署的標(biāo)準(zhǔn)化流程,適合生產(chǎn)環(huán)境。
關(guān)鍵步驟:網(wǎng)絡(luò)規(guī)劃、Inventory 配置、全局參數(shù)調(diào)優(yōu)。
擴(kuò)展性:通過(guò)添加計(jì)算/存儲(chǔ)節(jié)點(diǎn)橫向擴(kuò)展資源。
注意事項(xiàng):
生產(chǎn)環(huán)境需啟用 TLS 加密和防火墻規(guī)則。
定期備份數(shù)據(jù)庫(kù)和配置文件。
總結(jié)
以上是生活随笔為你收集整理的OpenStack 全套搭建部署指南(基于 Kolla-Ansible)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端开发者狂喜!30K star开源组件
- 下一篇: codeup之特殊乘法