通过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模块进行部署代码调试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容