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