通过Kolla部署工具利用Docker微服务方式安装Openstack

利用kolla部署工具本地仓库部署openstack基础架构:

1.利用docker安装openstack云基础架构:对于openstack安装有很多方法,其中本地计算机二进制包安装和docker安装是最常见的方法,下面介绍docker安装步骤及方法:

2.利用docker在操作系统层面安装,对应用进行解耦,将不同的服务组件或者相同组件不同功能解耦,划分成一个个单一的容器。

3.安装操作系统(本实例里面使用Centos7.0,其他操作系统也可以),同时配置操作系统之间SSH服务信任及免秘钥登陆。

修改/etc/hosts文件,配置IP地址与主机名的对应关系

ssh-keygen  生成秘钥

ssh-copy-id +主机名

4.在操作系统里面安装docker容器(如果要选择不同版本的docker安装,最好修改一下/etc/yum.repos.d/docker.repo源)。

5.docker info查看docker的基本属性。

6.对于openstack的安装,一种是通过kolla部署工具docker在线pull镜像,一种是搭建本地docker register(通过容器微服务架构化)并通过kolla部署工具部署。

7.在这里以第二种方法搭建,docker pull register 拉取基础镜像。

如下添加配置文件提供docker下载镜像速度(加速配置)

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://a5aghnme.mirror.aliyuncs.com"]

}

EOF

8.运行本地仓库容器。

docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 --restart=always --name registry registry:latest

mkdir /etc/systemd/system/docker.service.d

tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'

[Service]

MountFlags=shared

EOF

注:以前的版本可能是上面的方法更改,对应新版本可以就需要在/lib/systemd/system/docker.service里面直接修改。

wget http://tarballs.openstack.org/kolla/images/centos- binary-registry-ocata.tar.gz

tar zxvf centos-binary-registry-ocata.tar.gz -C /opt/registry/

备注:使用本机4000端口与容器5000端口对应的目的是openstack使用了5000端口,避免与其产生冲突,同时离线下载ocata二进制包并解压放入register目录。

9.修改docker守护进程的默认启动参数。(以前版本是docker daemon 现在版本是dockerd)

10.通过编辑器修改/lib/systemd/system/docker.service

在执行命令ExecStart=***** 后面添加仓库交流参数--insecure-registry=10.10.10.6:4000

执行命令systemctl daemon-reload && systemctl restart docker重启docker服务

11.通过curl http://10.10.10.6:4000/v2/_catalog可以查看与本地仓库的通讯状态。

12.部署kolla安装工具(目前kolla项目被拆分成kolla与kolla-ansible两个子项目)。

git clone http://git.trystack.cn/openstack/kolla-ansible 获取部署工具

cd kolla-ansible && pip install .

执行完后会在当前目录下产生一些配置文件,并通过如下方式将一些配置文件拷贝到其他目录里面:

cp -r etc/kolla /etc/kolla/

cp ansible/inventory/* /home/

如果是在虚拟机里面搭建的服务平台,你需要修改一些如下的配置参数(默认使用的是kvm):

mkdir –p /etc/kolla/config/nova

cat << EOF > /etc/kolla/config/nova/nova-compute.conf

[libvirt]

virt_type=qemu

EOF

13.加密kolla配置文件中的一些密码:

kolla-genpwd

其中修改一下/etc/kolla/passwords.yml文件中的keystone_admin_password: admin不然dashboard密码不知道是多少。

14.修改kolla部署工具在进行部署时候的一些配置信息/etc/kolla/globals.yml

kolla_internal_vip_address: " 10.10.10.254"  //访问Dashboard的地址,一个没有使用的地址

docker_registry: " 10.10.10.6:4000"          //刚才部署register容器的服务器网卡地址

docker_namespace: "lokolla"                  //命名空间,这个是要在docker通过pull时的一个对应的命名空间不然会报错找不到

network_interface: "eth0"                    //IP地址为10.10.10.6

neutron_external_interface: "eth1"            //该网卡不配置IP地址

15.在部署的时候需要考虑到是单节点还是多节点部署openstack基础软件:

如果部署的是单节点,需要编辑/usr/share/kolla-ansible/ansible/group_vars/all.yml文件,设置enable_haproxy为no

如果是多节点部署,就需要编辑刚才我们拷贝到/home目录下面的配置文件/home/multinodo,简单配置如下:

[control]

# These hostname must be resolvable from your deployment host

localhost ansible_connection=local

# The above can also be specified as follows:

#control[01:03]    ansible_user=kolla

# The network nodes are where your l3-agent and loadbalancers will run

# This can be the same as a host in the control group

[network]

localhost ansible_connection=local

[compute]

slave01

slave02

[monitoring]

localhost ansible_connection=local

16,.实施部署:

单节点部署:kolla-ansible deploy -i /home/all-in-one -vvvv

多节点部署:kolla-ansible deploy -i /home/multinodo -vvvv

单节点卸载:kolla-ansible destroy -i /home/all-in-one --yes-i-really-really-mean-it

多节点卸载:kolla-ansible destroy -i /home/multinodo --yes-i-really-really-mean-it

17.环境变量创建kolla-ansible post-deploy:

通过以上命令产生/etc/kolla/admin-openrc.sh 环境变量文件,最后安装客户端pip install python-openstackclient

最后测试部署环境:

编辑 /usr/share/kolla-ansible/init-runonce文件,改成国内的trystack镜像源下载,速度快(感谢国内TryStack社区做出的贡献,服务大家)。

运行命令

source /etc/kolla/admin-openrc.sh

cd /usr/share/kolla-ansible

./init-runonce

这将自动创建一个镜像、租户网络等。如下,可以查看到自动创建的cirros测试镜像。

至此,我们便通过Kolla和Ansible,部署成功了一个基于Docker容器运行的OpenStack环境。对于Ceph分布式存储、Haproxy高可用性、OpenDaylight SDN软件定义网络等这些功能,Kolla和Ansible都是支持的。

Troubleshoot

通过Kolla和Ansible部署或运行OpenStack环境时,如果出现问题,通常可以使用如下一些方法来排查/解决。

1)查看指定容器(即指定的服务)的输出日志信息。

docker logs container_name

2)进入到fluentd日志收集容器里,查看指定服务的日志。

docker exec -it fluentd bash

接着,cd到/var/log/kolla/SERVICE_NAME目录下。

3)还可以,直接CD到主机的/var/lib/docker/volumes/kolla_logs/_data/目录下,查看指定服务的日志信息。

4)如果在部署时失败,通过日志无法查找到原因,可以使用Ansible的debug模块进行部署代码调试。

你可能感兴趣的:(通过Kolla部署工具利用Docker微服务方式安装Openstack)