OpenStack+Docker:这不起飞了?!

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ 

不会这条命令你还怎么玩Linux

CentOS与Ubuntu到底怎么选择?

你还认为它们是Linux下不起眼的小命令吗?

Linux系统目录结构讲解

正则表达式真的很强,可惜你不会写


Kolla是OpenStack项目下的一个子项目,其目的是为了构建基于容器技术的OpenStack云平台环境。Kolla-ansible是一个Kolla的子项目,其作用是通过Ansible自动化部署Kolla容器镜像。

环境部署

登录一台内存与磁盘空间较大的Linux主机,并配置两个网卡,此处以CentOS 7为例。如果是虚拟机的话,需要支持虚拟化。

配置源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupcurl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repoyum makecacheyum -y install epel-release

修改主机名

hostnamectl set-hostname kolla

配置主机名解析

[root@kolla ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.161  kolla

时间同步

yum install ntp -y && systemctl enable ntpd.service && systemctl start ntpd.service

配置pip源

mkdir ~/.pip vim ~/.pip/pip.conf 

内容如下

[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com

配置网卡。主机的两张网卡,一张是管理网卡,另一张是外网网卡。管理网卡用于管理内部网络,外网网卡通过与服务绑定,实现实例与外网通信。

外网网卡配置如下。

TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=ens34DEVICE=ens34ONBOOT=yes

安装与配置Docker

yum install python-devel libffi-devel gcc openssl-devel git python-pip -y pip install -U pip # 安装必要的系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加软件源信息sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo# 更新并安装Docker-CEsudo yum makecache fastsudo yum -y install docker-ce# 开启Docker服务systemctl start docker && systemctl enable docker && systemctl status docker

配置docker volume卷挂载方式

mkdir /etc/systemd/system/docker.service.d tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF' [Service] MountFlags=shared EOF
添加了“MountFlags=shared”后,当docker宿主机新增分区时,docker服务无需重启,便于后续添加磁盘。
配置镜像加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

重启服务

systemctl daemon-reload systemctl restart docker && systemctl status docker

安装kolla-ansible

kolla-ansible项目是基于Ansible的,所以在部署kolla-ansible之前需要先安装Ansible。

yum install ansible -ypip install kolla-ansible

如果上述命令报错,那么可以执行以下命令

pip install kolla-ansible --ignore-installed PyYAML

复制kolla-ansible的相关配置文件

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/ cp /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/

安装decorator包并升级

pip install -U decorator pip install --upgrade decorate

生成OpenStack各个服务密码

kolla-genpwd

修改管理员身份认证密码

[root@kolla ~]# cat /etc/kolla/passwords.ymlkeystone_admin_password: 123456

修改globals.yml文件

openstack_release: "train" kolla_internal_vip_address: "192.168.1.161" network_interface: "ens33" neutron_external_interface: "ens34" enable_haproxy: "no"

生成秘钥,并授信本节点

ssh-keygen ssh-copy-id -i ~/.ssh/id_rsa.pub root@kolla

配置清单文件

[root@kolla ~]# vim /etc/kolla/all-in-one # These initial groups are the only groups required to be modified. The # additional groups are for more control of the environment. [control] kolla 
[network] kolla
[compute] kolla
[storage] kolla
[monitoring] kolla
[deployment] kolla

配置nova文件

[root@kolla ~]# mkdir /etc/kolla/config[root@kolla ~]# mkdir /etc/kolla/config/nova[root@kolla ~]# cat >> /etc/kolla/config/nova/nova-compute.conf << EOF[libvirt]virt_type = qemucpu_mode = noneEOF

安装Kolla

对主机进行预检查

kolla-ansible -i /etc/kolla/all-in-one prechecks

预检查结果没有异常,可以拉取镜像

kolla-ansible -i /etc/kolla/all-in-one pull

等待一段时间,镜像拉取完成后,查看镜像数量

[root@kolla ~]# docker images | wc -l 31

我这里拉取了31个镜像,而不同的OpenStack版本可能拉取的镜像数量不同。

正式开始部署OpenStack

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

等待一段时间,OpenStack部署完成后可通过命令验证部署结果

kolla-ansible -i /etc/kolla/all-in-one post-deploy

创建认证文件

[root@kolla ~]# cat /etc/kolla/admin-openrc.sh export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=123456export OS_AUTH_URL=http://192.168.1.161:35357/v3 export OS_INTERFACE=internal export OS_IDENTITY_API_VERSION=3 export OS_REGION_NAME=RegionOne export OS_AUTH_PLUGIN=password

此时已经可以通过浏览器访问到OpenStack了。

来不及解释了,快上车!(进群看公告)

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。

               点个在看,你最好看!

请使用浏览器的分享功能分享到微信等