一个计算机技术爱好者与学习者

0%

好好学OpenStack:Kolla安装OpenStack添加新节点

1. 前言

《Kolla安装OpenStack多节点》一文中,使用kolla安装了三个节点的openstack。

因为实验需要,现在需要再添加一个计算节点。那么问题来了,怎样在不破坏现有环境的基础上,添加一个新的计算节点呢?本文就来研究一下。

2. 新节点配置

2.1. 网络设置

在新添加的计算节点上,执行以下操作:

1、切换到root用户
sudo -i

2、vim /etc/network/interfaces,设置网卡为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.56.113
netmask 255.255.255.0

auto eth1
iface eth1 inet dhcp

auto eth2
iface eth2 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ifconfig $IFACE promisc

3、启用网卡
ifup eth2

4、修改/etc/hosts,添加:

1
2
3
4
192.168.56.110  controller
192.168.56.111 network
192.168.56.112 compute
192.168.56.113 compute2

2.2. python

安装python
apt -y install python-simplejson
不安装的话,在使用ansible的时候会报错/bin/sh: 1: /usr/bin/python: not found。

2.3. 安装docker

1、安装docker
apt -y install docker.io

2、为docker和kolla创建配置文件

1
2
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/kolla.conf

修改为:

1
2
[Service]
MountFlags=shared

3、重启docker

1
2
systemctl daemon-reload
systemctl restart docker

4、查看docker信息
docker info

2.4. 密钥登录

1、在控制节点将公钥写入新的计算节点

1
ssh-copy-id -i .ssh/id_rsa.pub -p 22 voidking@192.168.56.11

2、在新的计算节点把voidking用户添加进sudo免密,方便以后的操作
sudo vim /etc/sudoers,添加

1
voidking ALL = NOPASSWD: ALL

3. 控制节点配置

1、配置multinode文件
vim multinode,如下修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# line 3, change
[control]
#192.168.56.110 ansible_ssh_user=voidking ansible_ssh_pass=voidking ansible_sudo=voidking ansible_sudo_pass=voidking ansible_become_user=root ansible_become_pass=voidking ansible_become=true
# line 12, change
[network]
#192.168.56.111 ansible_ssh_user=voidking ansible_ssh_pass=voidking ansible_sudo=voidking ansible_sudo_pass=voidking ansible_become_user=root ansible_become_pass=voidking ansible_become=true
# line 17, change
[inner-compute]
#192.168.56.112 ansible_ssh_user=voidking ansible_ssh_pass=voidking ansible_sudo=voidking ansible_sudo_pass=voidking ansible_become_user=root ansible_become_pass=voidking ansible_become=true
192.168.56.113 ansible_ssh_user=voidking ansible_ssh_pass=voidking ansible_sudo=voidking ansible_sudo_pass=voidking ansible_become_user=root ansible_become_pass=voidking ansible_become=true
# line 21, change
[external-compute]
#192.168.56.112 ansible_ssh_user=voidking ansible_ssh_pass=voidking ansible_sudo=voidking ansible_sudo_pass=voidking ansible_become_user=root ansible_become_pass=voidking ansible_become=true
192.168.56.113 ansible_ssh_user=voidking ansible_ssh_pass=voidking ansible_sudo=voidking ansible_sudo_pass=voidking ansible_become_user=root ansible_become_pass=voidking ansible_become=true
# line 28, comment
[monitoring]
#monitoring01
# line 36, comment
[storage]
#storage01

2、测试连通
ansible -i multinode -m ping all

3、拷贝kolla.tar到新计算节点
scp kolla.tar voidking@192.168.56.113:~

4、在新计算节点导入所有images
docker load -i kolla.tar

5、在控制节点执行初始化
kolla-ansible -i ./multinode bootstrap-servers
报错如图:

参考《Ubuntu16使用Kolla安装OpenStack》解决。

6、预检查
kolla-ansible -i ./multinode prechecks

7、部署
kolla-ansible -i ./multinode deploy
报错,创建数据库失败。解决办法:取消multinode文件中control节点的注释,然后重新执行部署。
kolla-ansible -i ./multinode deploy --limit @/usr/local/share/kolla-ansible/ansible/site.retry
实际上,site.retry文件里面放的是一个单纯的IP地址192.168.56.113

如上图,等待几分钟后,出现部署成功的提示。

4. 测试使用

新的问题来了,上面的操作显示新的计算节点部署成功,那么,安装过程中有没有对原系统产生影响?我们来测试查看一下。
1、使admin环境生效
source /etc/kolla/admin-openrc.sh

2、查看计算服务
openstack compute service list

如上图,此时已经有了两个计算节点。

3、查看以前的实例
openstack server list

之前的实例还在,没有受到影响,nice。

5. 后记

上面的步骤,完美添加了一个新的计算节点,前提是《Kolla安装OpenStack多节点》一文中的globals.yml等配置文件保持不变。

我很好奇,如果主机清单multinode中的110、111、112三个节点没有添加注释,会不会对它们进行重新安装。于是,我把注释取消,执行了一次kolla-ansible -i ./multinode deploy。实践证明,没啥影响。那么,如果从bootstrap-servers开始执行呢?依次执行bootstrap-servers、prechecks、deploy三条命令会不会重装?于是,先执行bootstrap-servers。然后,卡在了时间同步,卡了一个钟头,遂Ctrl+C放弃。算了算了,不探究了,如无必要勿增实体,还是把精力放在更重要的事情上。