3.3多节点安装
1.软体版本
2.硬体规格
3.网络架构
3.1 网络配置
4.主机配置
4.1 在Controller/Compute节点的配置工作
4.2 在Deploy节点的配置工作
5.部署
5.1 配置GLOBALS.YML文件
5.2 创建Ceph配置文件
5.3 創建網絡配置文件
5.4 修改 /etc/kolla/multinode
5.5 生成密码,编辑/etc/kolla/passwords.yml
5.6 通过bootstrap部署依赖
5.7 部署前检查
5.8 部署
5.9 创建环境变量文件
5.10 安装openstack client 端
6.OpenStack初始化
1.软体版本
软件 | 版本 |
---|---|
Kolla | 5.0.1 |
Kolla-ansible | 5.0.1 |
OpenStack | Pike |
CentOS | 7.4.1708(Core) |
Docker | 17.06.2 |
Docker Python | 2.7.0 |
ansible | 2.4.2 |
2.硬体规格
角色 | 配置 | 数量 |
---|---|---|
Deploy | CPU E5-2620v42/Mem 64GB/Disk 600GB2 | 1 |
Controller | CPU E5-2620v42/Mem 128GB/Disk SSD 800GB2 | 3 |
Compute& | CPU E5-2650v42/Mem 256GB/Disk SSD 480GB2/SATA 4TB*12 | 5 |
3.网络架构
3.1 网络配置
所有主机网卡名称必须统一,外网网卡不配置IP。(若主机需连接外网,则部署后IP配置到br-ex网桥上)
角色 | 内网(ens3) | 外网(ens4) |
---|---|---|
Depoly | 192.168.1.5x | up |
Controller | 192.168.1.6x | up |
Compute | 192.168.1.7x | up |
4.主机配置
4.1 在Controller/Compute节点的配置工作
- 设置hostname FQDN,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件
- 关闭Selinux,Firewalld,NetworkManager,libvirtd
- 设置docker源,安装docker
- 配置docker:设置访问私有的registry 源,打开Docker 的 shared mount 功能
- 设置网卡,网络,符合部署需求。如果需要bonding,需要把bonding做好。
- 对于要部署Ceph的节点的磁盘,进行打标签
- 检查网络,重点,确保装好后,网络功能正常。
4.2 在Deploy节点的配置工作
- 设置hostname FQDN,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件
- 关闭Selinux,Firewalld,NetworkManager
- 设置docker源,安装docker
前面3条,都是相同的,不同的是
- 搭建私有的registry服务器,存放build好的OpenStack Docker镜像
- 安装ansible
- 配置SSH无密码访问
- 部署kolla-ansible
4.1 在Controller/Compute节点的配置工作
- 设置hostname FQDN,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件
hostnamectl set-hostname <Computer Name>
添加IP及主机名记录,vi /etc/hosts
192.168.1.6x <Computer Name>
2. 关闭Selinux,Firewalld,NetworkManager,libvirtd
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl stop firewalld
systemctl disable firewalld
systemctl stop libvirtd
systemctl disable libvirtd
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
getenforce
3. 查看是否开启了虚拟化(非必须,实验环境为虚拟机时需要)
egrep "vmx|svm" /proc/cpuinfo
4. 配置os/epel源,安装基础包
配置內網yum源
rm -rf /etc/yum.repos.d/*
curl –O http://10.172.115.203/repo/dpbg-centos.repo > /etc/yum.repos.d/dpbg-centos.repo
yum -y update
yum -y install python-devel libffi-devel gcc openssl-devel libselinux-python python-pip net-tools vim \ git wget
5. 设置docker源,安装docker
上一項已配置
yum install -y docker-ce
systemctl start docker
systemctl enable docker
6. 配置docker(设置访问私有的registry 源,打开Docker 的 shared mount 功能)
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
設置內部源(二選一,推薦一)
tee /etc/docker/daemon.json <<'EOF'
{ "insecure-registries": ["192.168.1.51:4000"] }
EOF
方式二
# vim /usr/lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.1.51:4000
启动docker
systemctl daemon-reload
systemctl restart docker
7.安裝docker python
配置內網pypi源
mkdir -p ~/.pip
tee ~/.pip/pip.conf << 'EOF'
[global]
index-url = http://10.172.115.203/pypi/web/simple/
[install]
trusted-host=10.172.115.203
EOF
安裝docker SDK
pip install docker
7. 设置网卡,网络,符合部署需求。如果需要bonding,需要把bonding做好。
网卡ens3配置管理网IP,ens4不配置IP。
- 对于要部署Ceph的节点的磁盘,进行打标签
lsblk
lsblk | grep "^sda" | awk '{print $1}' | while read line; do \
parted /dev/$line -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1; \
done
lsblk
- 检查网络,重点,确保装好后,网络功能正常。
4.2 在Deploy节点的配置工作
1. 设置hostname FQDN,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件(同上)
2. 关闭Selinux,Firewalld,NetworkManager(同上)
3. 设置docker源,安装docker(同上)
前面3条,都是相同的,不同的是
1. 获取OpenStack Docker镜像(三选一,建议选一)
- 使用Kolla手动构建镜像(部署节点需要联网)
安装kolla-build
vim /etc/kolla/globals.yml openstack_release: "5.0.1" # git clone https://github.com/openstack/kolla.git -b stable/pike # cd kolla # pip install -r requirements.txt -r test-requirements.txt
pip install .
pip install tox
tox -e genconfig
kolla-build --base centos --type source --registry 192.168.1.51:4000 --push
- 直接从官方源下载(需每个节点都能联网)
vim /etc/kolla/globals.yml openstack_release: "5.0.1" # kolla-ansible -i /etc/kolla/multinode bootstrap-servers # kolla-ansible pull
- 从其他主机拷贝镜像文件
搭建私有的registry服务器,存放build好的OpenStack Docker镜像
* 默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以我将端口改成了4000。
* 若独立的Deploy主机和registy主机,则无冲突。
docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 --restart=always --name registry registry
构建OpenStack镜像
kolla-build --base centos --type source --registry 192.168.1.51:5000 --push
查看仓库镜像
curl http://192.168.1.51:4000/v2/_catalog
查看仓库镜像的tag
curl -XGET http://192.168.1.51:4000/v2/kolla/centos-source-nova-compute/tags/list
2. 安装ansible
ansible版本必须在2.0以上
yum install ansible -y
pip install -U ansible pip
3. 配置SSH无密码访问
本機生成密鑰;一路回車即可(在其他主機上同樣執行此操作)
ssh-keygen
將私鑰複製到遠程主機(其他所有主机)
ssh-copy-id manage01
4. 部署kolla-ansible
下载kolla-ansible,并配置
git clone https://github.com/openstack/kolla-ansible -b stable/pike
cd kolla-ansible/
cp -r etc/kolla /etc/
cp ansible/inventory/* /etc/kolla/
pip install .
5.部署
5.1 配置GLOBALS.YML文件
cat /etc/kolla/globals.yml |grep -Ev '^$|^#'
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "5.0.1"
kolla_internal_vip_address: "192.168.10.139"
docker_registry: "192.168.10.139:4000"
docker_namespace: "kolla"
network_interface: "ens33"
neutron_external_interface: "ens34"
keepalived_virtual_router_id: "52"
nova_compute_virt_type: "qemu"
enable_chrony: "yes"
enable_cinder: "yes"
enable_ceph: "yes"
如果是在虚拟机里安装 Kolla,希望可以在 OpenStack 平台上创建虚拟机,那么你需要在 globals.yml 文件中把 nova_compute_virt_type 配置项设置为 qemu,默认是 KVM
5.2 创建Ceph配置文件
vi /etc/kolla/config/ceph.conf
[global]
osd pool default size = 3
osd pool default min size = 2
5.3 創建網絡配置文件
mkdir -p /etc/kolla/config/neutron
tee /etc/kolla/config/neutron/ml2.conf.ini <<-'EOF'
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
[ml2_type_vlan]
network_vlan_ranges = physnet1
[ml2_type_flat]
flat_networks = physnet1
[ovs]
bridge_mappings = physnet1:br-ex
EOF
5.4 修改 /etc/kolla/multinode
若部署節點預管理節點共用,則部署節點主機名后需指定執行對象
[deployment]
deploy ansible_connection=local
5.5 生成密码,编辑/etc/kolla/passwords.yml
kolla-genpwd
vim /etc/kolla/passwords.yml
keystone_admin_password: dpbg123.
kibana_password: dpbg123.
grafana_admin_password: dpbg123.
第一個為登录Dashboard,admin使用的密码,
kibana的賬號為:kibana;你可以根据自己需要进行修改
5.6 通过bootstrap部署依赖
kolla-ansible bootstrap-servers -i /etc/kolla/multinode
5.7 部署前检查
kolla-ansible prechecks -i /etc/kolla/multinode
5.8 部署
kolla-ansible deploy -i /etc/kolla/multinode
5.9 创建环境变量文件
kolla-ansible post-deploy -i /etc/kolla/multinode
5.10 安装openstack client 端
pip install python-openstackclient
pip install python-neutronclient
6.OpenStack初始化
参见《Day2运营》