kolla多節點部署openstack


一、准備工作

1.准備6台機器(主要是服務分開部署,也可以少於6台,建議至少6台)

主機名 節點名稱 網絡 磁盤
contorl 控制節點

網卡1:

  網卡名稱:ens33

  模式:nat模式

  ip:192.168.185.23

  作用:和外網通信

網卡2:

  網卡名稱:ens34

  模式:僅主機模式

  ip:10.66.66.23

  作用:用作API網絡、VM網絡(tenant 網絡)

網卡3:

  網卡名稱:ens35

  模式:nat模式

  ip:無需ip

  作用:用作External 網絡,用於虛擬機連接外部網絡

一塊磁盤
network 網絡節點

網卡1:

  網卡名稱:ens33

  模式:nat模式

  ip:192.168.185.24

  作用:和外網通信

網卡2:

  網卡名稱:ens34

  模式:僅主機模式

  ip:10.66.66.24

  作用:用作API網絡、VM網絡(tenant 網絡)

網卡3:

  網卡名稱:ens35

  模式:nat模式

  ip:無需ip

  作用:用作External 網絡,用於虛擬機連接外部網絡

一塊磁盤
compute 計算節點

網卡1:

  網卡名稱:ens33

  模式:nat模式

  ip:192.168.185.25

  作用:和外網通信

網卡2:

  網卡名稱:ens34

  模式:僅主機模式

  ip:10.66.66.25

  作用:用作API網絡、VM網絡(tenant 網絡)

網卡3:

  網卡名稱:ens35

  模式:nat模式

  ip:無需ip

  作用:用作External 網絡,用於虛擬機連接外部網絡

一塊磁盤
storage 存儲節點

網卡1:

  網卡名稱:ens33

  模式:nat模式

  ip:192.168.185.26

  作用:和外網通信

網卡2:

  網卡名稱:ens34

  模式:僅主機模式

  ip:10.66.66.26

  作用:用作API網絡、VM網絡(tenant 網絡)

網卡3:

  網卡名稱:ens35

  模式:nat模式

  ip:無需ip

  作用:用作External 網絡,用於虛擬機連接外部網絡

兩塊磁盤
monitor 監控節點

網卡1:

  網卡名稱:ens33

  模式:nat模式

  ip:192.168.185.27

  作用:和外網通信

網卡2:

  網卡名稱:ens34

  模式:僅主機模式

  ip:10.66.66.27

  作用:用作API網絡、VM網絡(tenant 網絡)

網卡3:

  網卡名稱:ens35

  模式:nat模式

  ip:無需ip

  作用:用作External 網絡,用於虛擬機連接外部網絡

一塊磁盤
deploy 部署節點

網卡1:

  網卡名稱:ens33

  模式:nat模式

  ip:192.168.185.28

  作用:和外網通信

網卡2:

  網卡名稱:ens34

  模式:僅主機模式

  ip:10.66.66.28

  作用:用作API網絡、VM網絡(tenant 網絡)

網卡3:

  網卡名稱:ens35

  模式:nat模式

  ip:無需ip

  作用:用作External 網絡,用於虛擬機連接外部網絡

 一塊磁盤

 

2.存儲節點

要啟動cinder存儲服務,需對第二個磁盤做如下處理

pvcreate /dev/sdb
vgcreate cinder-volumes /dev/sdb     #vg名取名為 cinder-volumes,這里主要跟 kolla配置文件里vg名一致

3.所有節點關閉selnux

# 臨時關閉,不需要重啟,但是重啟失效
setenforce 0
# 永久關閉需要重啟才能生效
sed -i 's/SELINUX=.*/SELINUX=Disabled/g' /etc/selinux/config
# 重啟
reboot
# 查看selnux狀態
getenforce

4.所有節點關閉防火牆

systemctl stop firewalld
systemctl disable firewalld

5.所有節點設置主機名,按照上面表格里的命名,也可以是其他名稱,建議這樣命名,方便區分

hostnamectl set-hostname  主機名稱

6.所有節點配置/etc/hosts

cat >> /etc/hosts << EOF
192.168.185.23 control
192.168.185.24 network
192.168.185.25 compute
192.168.185.26 storage
192.168.185.27 monitor
192.168.185.28 deploy
EOF

7.部署節點做到其他節點的免密

# 生成公有密鑰和私有密碼,一直默認即可
ssh-keygen -t rsa
# 分發共有密鑰到其他節點
ssh-copy-id -i ~/.ssh/id_rsa.pub 節點名稱  # 沒有上一步的映射,這里寫ip即可,建議配置上面的映射方便一些

8.所有節點安裝docker

yum update -y && yum upgrade -y
yum install -y yum-utils   device-mapper-persistent-data   lvm2
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
# 配置國內源
mkdir -p /etc/docker
cat >> /etc/docker/daemon.json << EOF
{
    "registry-mirrors" : [
         "https://registry.docker-cn.com",
         "https://docker.mirrors.ustc.edu.cn",
         "http://hub-mirror.c.163.com",
         "https://cr.console.aliyun.com/"
  ]
}
EOF
systemctl restart docker

9.所有節點設置數據包轉發

echo " net.ipv4.ip_forward = 1 ">> /etc/sysctl.conf&&sysctl -p

10.所有節點安裝並升級pip

# 方式1:
yum install -y epel-release 
# python2
yum install -y python-pip
pip install -U pip
# python3
yum install -y python3-pip
pip3 install -U pip
# 方式2:
# python2
curl -o get-pip.py https://bootstrap.pypa.io/pip/2.7/get-pip.py
python2 get-pip.py
# python3
curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

11.部署節點安裝ansible和kolla-ansible

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python
pip install -U ansible -i http://mirrors.aliyun.com/pypi/simple/
pip install kolla-ansible==9.1.0 --ignore-installed PyYAML -i http://mirrors.aliyun.com/pypi/simple/

12.部署節點優化ansible配置(可以不做)

vim /etc/ansible/ansible.cfg
forks           = 10  # 第19行,設置並行進程數。如果要管理的主機很多,可以優先嘗試增加該值
host_key_checking = False  /# 第67行,跳過ssh首次連接提示驗證部分
pipelining = True  # 第403行,開啟管道輸送。ansible在執行一個模塊需要ssh到目的主機多次,開啟該模式減少ssh連接次數,縮短ansible執行時間。
# 在部署大規模服務器或引用模塊非常多時,開啟pipelining會給ansible帶來顯著的性能提升

13. 部署節點復制kolla-ansible的一些配置

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* .

14.部署節點自動生成OpenStack各服務的密碼文件

kolla-genpwd
# 修改網頁登錄密碼
vim /etc/kolla/passwords.yml
keystone_admin_password: admin   # 第165行

15. 部署節點修改kolla-ansible的全局配置(/etc/kolla/global.yml),以下是我的示例,大家根據自己的情況改

# 選擇下載的基礎鏡像
kolla_base_distro: "centos"
# 選擇的安裝方法:binary二進制安裝,source源碼安裝
kolla_install_type: "source"
# 選擇OpenStack的版本標簽,詳細請看:https://releases.openstack.org/
openstack_release: "train"
# OpenStack內部管理網絡地址,通過該IP訪問OpenStack Web頁面進行管理。如果啟用了高可用,需要設置為VIP(漂移IP)
kolla_internal_vip_address: "192.168.185.20"
# OpenStack外部管理網絡地址
kolla_external_vip_address: "10.66.66.20"
# docker 命名空間
docker_namespace: "kolla"
# OpenStack內部管理網絡地址的網卡接口
network_interface: "ens33"
# OpenStack外部(或公共)網絡的網卡接口,可以是vlan模式或flat模式,此網卡應該在沒有IP地址的情況下處於活動,如果不是,那么OpenStack雲平台中的雲主機實例將無法訪問外部網絡。(存在IP時br-ex橋接就不成功)
neutron_external_interface: "ens34"
# neutron網絡服務插件
neutron_plugin_agent: "openvswitch"
# 啟用cinder(塊存儲)
enable_cinder: "yes"
# cinder(塊存儲)后端啟用lvm
enable_cinder_backend_lvm: "yes"
# 開啟web界面
enable_horizon: "yes"
# 開啟neutron網絡服務
enable_neutron_provider_networks: "yes"

16. 部署節點配置multinode多節點主機清單文件

[control]
control


[network]
network

[compute]
compute

[monitoring]
monitor


[storage]
storage

[deployment]
localhost       ansible_connection=local

17.部署節點檢測所有主機是否正常通信

ansible -i ~/multinode all -m ping

二、開始部署openstack9(只在部署節點執行)

1. 通過kolla-ansible安裝OpenStack所需依賴包

kolla-ansible -i ~/multinode bootstrap-servers

2.對主機進行預部署檢查

kolla-ansible -i ~/multinode prechecks

3.拉取OpenStack的鏡像

kolla-ansible -i ~/multinode pull

4.部署OpenStack

kolla-ansible -i ~/multinode deploy

5.驗證部署

kolla-ansible -i ~/multinode post-deploy

6.查看部署后的一些配置信息

. /etc/kolla/admin-openrc.sh
cat /etc/kolla/admin-openrc.sh  

 7.查看web界面

 8.安裝openstack命令客戶端

pip install python-openstackclient python-glanceclient python-neutronclient --ignore-installed

9.openstack命令測試

# 虛擬化類型列表
openstack hypervisor list
#  鏡像列表
openstack image list
# nova服務列表
nova service-list

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM