前言
openstack 的架構應當按照用戶需求進行定制化,所以我按照openstack-ansible 的官方網站的架構。
集群部署中最為關鍵的是集群的網絡架構,按照功能可以分為計算網絡,存儲網絡以及管理網絡。按照網絡協議可以分為RDMA 網絡 即 infiband ,ROCE 等,以太網網絡及FC 光纖網絡等。應當按照用戶需求進行取舍。
部署之前
參考官方鏈接:https://docs.openstack.org/openstack-ansible/latest/
打算部署的是 https://docs.openstack.org/openstack-ansible/victoria/ victoria 版本
在部署之前 應該規划以下問題
-
關於網絡
- 集群虛擬機用戶通過ssh 及私鑰訪問虛擬機
- 事前准備好集群虛擬機對外訪問的網段
- 集群管理員需用訪問horizon服務,那么對外網絡應當如何提供
-
關於存儲
對於ceph存儲 應當提前部署好,並建立對應的存儲池,如下圖所示
使用lvm 卷 lvm 沒有副本、冗余機制,所在的節點可能還是個計算節點或管理節點,在維護時會很麻煩。
裝機階段
服務器上機櫃,電源打開,做好raid ,並安裝好操作系統。
對於usssuri版本的openstack 建議安裝ubuntu18.04 hwe
准備階段
從部署節點的root 賬號免密登錄到 集群其他節點 的root賬戶
具體步驟如下:
- 給每個節點的root賬戶設置密碼
- 修改每個節點ssh配置:可通過密碼登錄,可通過root賬戶登錄
- 在部署節點上生成密鑰對,ssh-copy-id 到集群節點
- 查看后端存儲系統 ceph的狀態,准備好存儲池及密鑰對
開始部署
參考 https://docs.openstack.org/openstack-ansible/latest/
-
准備部署節點
下載 openstack_ansible 注意選擇版本
git clone -b master https://github.com/openstack/openstack-ansible.git /opt/openstack-ansible
Change to the /opt/openstack-ansible
directory, and run the Ansible bootstrap script:
# scripts/bootstrap-ansible.sh
-
准備 目標節點
-
安裝系統
推薦:ubuntu 18.04
-
配置免密登錄
- 部署節點 的root 用戶可以ssh 直接訪問到集群的其他節點root用戶
-
配置存儲
檢查后端存儲 是否可用
-
配置網絡
服務器上的網橋解讀:(為什么要配這么多網橋,我想主要作用應該解決不同服務器上網卡名稱不同的問題把。)
br-mgmt :管理網絡,所有節點的openstack組件RESTful API 都通過這個網橋進行通信,因此這個網絡必不可少
br-vxlan : vxlan網絡,br-vxlan 接口上需要配置ip地址,vxlan網絡才能使用,同時需要打開l2population 或者打開交換機的vxlan 多播模式
br-vlan: vlan 網絡 ,假如br-vlan所在交換機 有個vlan29 可以提供用戶使用。因此可以在horizon界面上創建vlan29 及虛擬機,這個虛擬機所在物理機上就會出現br-vlan.29。
br-storage: 存儲網絡,集群里的存儲服務器和其他機器通信用的就是這個網絡,具體來講cinder-volume 服務器和 ceph的 mon節點 通過這個網絡連接到了一起
lxcbr0: lxc 連接這個接口 安裝完成后管理節點上所有的lxc容器里的eth0 都會連接 eth0
-
-
開始部署
一共是 兩個配置文件 + 3行命令
兩個yaml文件:
/etc/openstack_deploy/openstack_user_config.yml
/etc/openstack_deploy/user_variables.yml
三個命令:
openstack-ansible setup-hosts.yml
openstack-ansible setup-infrastructure.yml
openstack-ansible setup-openstack.yml