容器化部署openstack pike

原创文章,转债请注明出处

开源部署方案

社区的部署方案,想要直接拿来用基本是不可能的,总有很多坑要填。记录一下容器化部署的坑。

单机部署方式(all-in-one)

注意:

  • 单机部署方式只能是调研使用,熟悉openstack,生产环境需要的规划和模型比单机复杂的多。不要把单机方式用于生产,最好连开发环境都不要上,只纯调研。

linux 初始化准备

参看我的文章 linux初始化

机器网络介绍

IP 网络类型 网卡 openstack 网络
192.168.10.110 NAT ens33 管理网络 (managment nework)
192.168.2.43 bridge ens37 外部网络 (external network)
  1. ens33,NAT网络里,设置的IP是:192.168.10.110,日后Horizon访问就是通过这个IP地址
  2. ens37,桥接模式,ip其实是dhcp分配,这个其实是让neutron的br-ex 绑定使用,虚拟机是通过这块网卡访问外网。

在机器上连接虚拟机,是通过ens33的IP进行访问,如果你通过ens37 ssh,安装过程,会导致ssh中断。

默认设置,其实两块网卡都是可以访问到互联网。也可以是其中一块网卡访问外网,对于测试来说,基本问题不大。

如果在服务器直接安装,两块网卡的IP,就算是同一个网段,也是没啥问题的。

安装步骤

安装基础包

yum install python-devel libffi-devel gcc openssl-devel git python-pip

安装docker

传送门

设置docker

设置 volume 挂载方式, 关于这个设置的意义,可以参看我的另一篇文章

mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

设置 docker 镜像与加速器
vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries": ["192.168.10.110:4000"]
}

重启相关服务

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

安装 ansible

yum install ansible

下载kolla官方提供的镜像

http://tarballs.openstack.org/kolla/images/

wget http://tarballs.openstack.org/kolla/images/centos-binary-registry-pike.tar.gz
tar zxvf centos-binary-registry-pike.tar.gz -C /opt/registry/

安装 docker registry

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

默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以改成4000

kolla-ansible

下载kolla-ansible的代码

cd /home
git clone http://git.trystack.cn/openstack/kolla-ansible –b stable/pike

安装kolla-ansible

cd kolla-ansible
pip install .

复制相关文件

cp -r etc/kolla /etc/kolla/
cp ansible/inventory/* /home/

如果是在虚拟机里装kolla,希望可以启动再启动虚拟机,那么你需要把virt_type=qemu,默认是kvm

mkdir -p /etc/kolla/config/nova
cat << EOF > /etc/kolla/config/nova/nova-compute.conf
[libvirt]
virt_type=qemu
cpu_mode = none
EOF

生成密码文件

kolla-genpwd

编辑 /etc/kolla/passwords.yml

keystone_admin_password: openstack

这是登录Dashboard,admin使用的密码,你可以根据自己需要进行修改。

编辑 /etc/kolla/globals.yml 文件

kolla_internal_vip_address: "192.168.10.110" # 如果配置了ha proxy 这里要使用一个没被占用的IP
openstack_release: "5.0.1" #与镜像版本一致
docker_registry: "192.168.10.110:4000"
docker_namespace: "lokolla" #与镜像meta一致
network_interface: "ens33"
neutron_external_interface: "ens37"
enable_haproxy: "no"

安装OpenStack

拉取镜像

kolla-ansible pull

预检查

kolla-ansbile precheks -i /home/all-in-one

部署

kolla-ansible deploy -i /home/all-in-one 

验证部署

kolla-ansible post-deploy

这样就创建 /etc/kolla/admin-openrc.sh 文件

安装OpenStack client端

pip install python-openstackclient

编辑 /usr/share/kolla-ansible/init-runonce,

网络需要根据实际情况修改

EXT_NET_CIDR='192.168.2.0/24'
EXT_NET_RANGE='start=192.168.2.30,end=192.168.2.40'
EXT_NET_GATEWAY='192.168.2.1'

这里解析一下,192.168.2.0的网络,就是我上面ens37接的网络,这个网络是通过路由器访问互联网。配置好这个,装完虚拟机就可以直接ping通。

运行

source /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce

最后你可以创建一个虚拟机来玩玩,根据最后的命令提示

openstack server create \
    --image cirros \
    --flavor m1.tiny \
    --key-name mykey \
    --nic net-id=2ba93782-71e2-44d6-ad64-796c5853dcce \
    demo1

这个时候,你可以登录Dashboard,给虚拟机分配一个floating ip,如果顺利,你应该就可以直接ping 通 floating ip的地址。

遇到的问题

1 安装完成后 horizon 无法访问( 504 超时)

解决方案
进入horizon容器,修改配置

docker exec -it horizon bash # 进入容器

修改容器内的配置文件

vi /etc/httpd/conf.d/openstack-dashboard.conf

将 WSGIApplicationGroup %{GLOBAL} 添加到openstack-dashboard.conf 中
修改后完整的openstack-dashboard.conf 内容如下

WSGIDaemonProcess dashboard
WSGIProcessGroup dashboard
WSGISocketPrefix run/wsgi
WSGIApplicationGroup %{GLOBAL} # 修改这里
WSGIScriptAlias /dashboard /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
Alias /dashboard/static /usr/share/openstack-dashboard/static

<Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi>
  Options All
  AllowOverride All
  Require all granted
</Directory>

<Directory /usr/share/openstack-dashboard/static>
  Options All
  AllowOverride All
  Require all granted
</Directory>

修改 horizon 容器内/etc/openldap/ldap.conf 文件
添加 NETWORK_TIMEOUT 2

修改后的文件内容如下


# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

TLS_CACERTDIR   /etc/openldap/certs
NETWORK_TIMEOUT 2  #修改这里
# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON    on

以上两个问题都是官方bug,而且存在很久了,都一直没有修复(社区东西的坑,简直不要太多,(╯‵□′)╯︵┻━┻)。
参见 bug 描述 1
参见 bug 描述 2

参考文档

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

推荐阅读更多精彩内容