Kolla 容器化部署Openstack

1.集群架构

 
其中e1,e2,e3 表示网卡。 
e1 所在网络为管理网。 
e2 为vm对外通信网卡,无需配置网络协议和ip地址:

BOOTPROTO=none

DEVICE=eth1

HWADDR=fa:16:3e:38:20:88

ONBOOT=yes

TYPE=Ethernet

USERCTL=no

....

  

e3所在网络为osd集群通信网络 
备注:操作系统为centos7.4 最小化安装

2. kolla容器化部署openstack及ceph集群

2.1 基础环境

以下操作在部署机执行
#1.epel
yum install epel-release
#2.防火墙
systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld
sed -i‘‘ ‘s,SELINUX=enforcing,SELINUX=disabled,g‘ /etc/selinux/config
setenforce 0
3.修改/etc/hosts 及配置免秘钥登录
10.0.100.11 controller1
10.0.100.12 controller2
10.0.100.13 controller3
10.0.100.21 network1
10.0.100.22 network2
10.0.100.31 compute1
10.0.100.32 compute2
10.0.100.33 compute3
10.0.100.34 compute4
10.0.100.35 compute5
ssh-keygen
ssh-copy-id controller1
....
#4 python及pip环境
yum install -y python2-pip
cat <<EOF> /etc/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git ansible git
#5.准备docker环境
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i ‘s+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+‘ /etc/yum.repos.d/docker-ce.repo
yum clean all
yum makecache fast
yum install docker-ce
mkdir /etc/docker/
cat << EOF>/etc/docker/daemon.json
{
"registry-mirrors": ["https://iby0an85.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl start docker
6.安装kolla-ansible
yum install python2-pip
cat <<EOF> /etc/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF
pip install -U pip
pip install -U ‘ansible>=2.2.0‘
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git
git clone https://github.com/openstack/kolla-ansible -b stable/rocky
cd kolla-ansible
pip install -r requirements
python setup.py install
7.启动registry(此处我已将rocky的版本的registry打包
tar -xzvf rocky.tar.gz -C /
docker run -d -p 4000:5000 -v /opt/registry/:/var/lib/registry/ --restart=always --name=registry registry:2
# 查看容器运行
docker ps
docker inspect containerID

2.2 部署openstack/ceph集群

1.准备配置文件
cd /root/kolla-ansible
cp etc/kolla/globals.yml /etc/kolla/
cp etc/kolla/passwords.yml /etc/kolla/
kolla-genpwd
# 2. 修改admin密码:
vim /etc/kolla/passwords.yml
keystone_admin_password: otvcloud
#3.编辑 globals.yml(重点 基本要掌握每个参数的意思)
vim /etc/kolla/globals.yml
###############
# Valid options are [ COPY_ONCE, COPY_ALWAYS ]
config_strategy: "COPY_ALWAYS"
# Valid options are [‘centos‘, ‘debian‘, ‘oraclelinux‘, ‘rhel‘, ‘ubuntu‘]
kolla_base_distro: "centos"
# Valid options are [ binary, source ]
kolla_install_type: "binary"
# Valid option is Docker repository tag
openstack_release: "rocky"
# Location of configuration overrides
node_custom_config: "/etc/kolla/config"
kolla_internal_vip_address: "10.100.2.11" # 外网接口
管理网一个没有使用ip
docker_registry: "10.100.2.10:4000" # 上面构建的docker registy的ip地址
docker_namespace: "lokolla"
network_interface: "e1" # 管理网口
api_interface: "{{ network_interface }}"
storage_interface: "{{ network_interface }}"
cluster_interface: "e3" # osd集群网络
tunnel_interface: "{{ network_interface }}"
neutron_external_interface: "e2" # 外部通信网卡
neutron_plugin_agent: "openvswitch"
keepalived_virtual_router_id: "51"
openstack_logging_debug: "True"
# Valid options are [ none, novnc, spice, rdp ]
nova_console: "novnc"
# OpenStack services can be enabled or disabled with these options
enable_central_logging: "yes"
enable_ceph: "yes"
enable_chrony: "yes"
enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_collectd: "yes"
enable_haproxy: "yes"
enable_heat: "no"
enable_horizon: "yes"
enable_influxdb: "yes"
enable_neutron_dvr: "yes"
enable_neutron_agent_ha: "yes"
# keystone
keystone_token_provider: ‘fernet‘
fernet_token_expiry: 86400
# glance
glance_backend_ceph: "yes"
glance_enable_rolling_upgrade: "no"
#cinder
cinder_backend_ceph: "yes"
cinder_backup_driver: "ceph"
#nova
nova_backend_ceph: "yes"
# Valid options are [ qemu, kvm, vmware, xenapi ]
nova_compute_virt_type: "kvm"
#tenant network
neutron_tenant_network_types: "vlan"
#4.编辑multinode
cp /root/kolla-ansible/ansible/inventory/multinode /root/
vim multinode
[control]
# These hostname must be resolvable from your deployment host
controller1
controller2
controller3
[network]
network1
network2
[external-compute]
compute1
compute2
....
[monitoring]
controller1
[storage]
compute1
compute2
.....
5.标记osd节点 使用bluestore,此处在osd节点上执行
例如compute1节点 的osd节点
parted disk -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS 1 -1 # filestore 则为 KOLLA_CEPH_OSD_BOOTSTRAP
parted disk -s -- print
6. 初始化环境
kolla-ansible -i multinode bootstrap-servers
#除部署机之外所有机器reboot
reboot
kolla-ansible -i multinode prechecks #检测
kolla-ansible -i deploy # 开始部署
kolla-ansible -i post-deploy # 生成admin-openrc.sh
cp /etc/kolla/admin-openrc.sh admin-openrc.sh
chmod +x admin-openrc.sh

2.3 验证

安装客户端
yum install centos-release-openstack-pike
yum makecache fast
yum install -y python-openstackclient
cp /root/kolla-ansible/tools/init-runonce /root/
vim init-runonce
# 注释掉 demo网络和创建路由部分, 外部网络创建flat改成vlan模式
openstack network create --external --provider-physical-network physnet1 --provider-network-type vlan public1
openstack subnet create --no-dhcp --allocation-pool ${EXT_NET_RANGE} --network public1 --subnet-range ${EXT_NET_CIDR} --gateway ${EXT_NET_GATEWAY} public1-subnet
#openstack network create --provider-network-type vxlan demo-net
#openstack subnet create --subnet-range 172.17.6.0/24 --network demo-net --gateway 172.17.6.1 --dns-nameserver 8.8.8.8 demo-subnet
#openstack router create demo-router
#openstack router add subnet demo-router demo-subnet
#openstack router set --external-gateway public1 demo-router
To deploy a demo instance, run:
openstack server create \--image ${IMAGE_NAME} \--flavor m1.tiny \--key-name mykey \--network public1 \vm1
# ceph 验证
controller1:
docker exec ceph_mon ceph -s
# volume 验证
openstack volume create --size 1 volume1
openstack server vm1 volume1

  欢迎加入OpenStack技术交流群进行交流,群号:791930493 。入群二维码:

也可以关注微信公众号:启航学城,干货满满,扫码关注:

原文地址:https://www.cnblogs.com/jonc/p/11106203.html

时间: 2024-10-09 05:33:42

Kolla 容器化部署Openstack的相关文章

Kubernetes 集群的两种部署过程(daemon部署和容器化部署)以及glusterfs的应用!

ClusterIp:通过VIP来访问, NodePort: 需要自己搭建负载据衡器 LoadBalancer:仅仅用于特定的云提供商 和 Google Container Engine https://www.nginx.com/blog/load-balancing-kubernetes-services-nginx-plus/ port:相当于服务端口(对及集群内客户访问) targetPort: 相当于pods端口 nodePort: 宿主机端口(也是服务端口,只不过是对集群外客户访问)

Spring Boot Tomcat 容器化部署实践与总结

在平时的工作和学习中经常会构建简单的web应用程序.如果只是HelloWorld级别的程序,使用传统的Spring+SpringMVC框架搭建得话会将大部分的时间花费在搭建框架本身上面,比如引入SpringMVC,配置DispatcheherServlet等.并且这些配置文件都差不多,重复这些劳动似乎意义不大.所以使用Springboot框架来搭建简单的应用程序显得十分的便捷和高效. 前两天在工作中需要一个用于测试文件下载的简单web程序,条件是使用Tomcat Docker Image作为载体

Flask容器化部署原理与实现

本文将介绍Flask的部署方案:Flask + Nginx + uWSGI,并使用docker进行容器化部署,部署的实例来源 Flask开发初探,操作系统为ubuntu. Flask系列文章: Flask开发初探 WSGI到底是什么 Flask源码分析一:服务启动 Flask路由内部实现原理 部署方案 在开发时,我们使用flask run命令启动的开发服务器是werkzeug提供的,但是这种方式目的是为了开发,不能很好的扩展,不适合生产部署.生产部署,我们需要一个更强健,性能更高的WSGI服务器

kolla 容器化openstack

目前手动部署openstack都很繁琐 so all of people 都在研究怎么能快速 简单的部署openstack 最近也在研究 在官网看到了 kolla的这东东 经过调研 好多人在用 也就义无反顾的 跟随了 开始kolla的时代 一.系统环境 centos7.2 两块网卡 4c 8G 40G 二.kolla是做openstack容器化的镜像 而kolla-ansible是用来部署openstack插件 由于kolla对组建的版本以来较大 so 你懂得 只列出mitaka和ocata的依

kolla单节点部署openstack

virtualbox环境: 双网卡:enp0s3(桥接)   192.168.102.194 enp0s8(仅主机)   192.168.42.3 块存储  50G 关闭防火墙,selinux. 配置yum源:wget  http://mirrors.aliyun.com/repo/Centos-7.repo yum install epel-release -y 配置主机名:hostnamectl set-hostname kolla vi /etc/hosts 192.168.42.3 ko

【巨杉数据库SequoiaDB】巨杉 Tech | 几分钟实现巨杉数据库容器化部署

随着业务负载的不断加重,容器化.虚拟化也成为各类在线应用必须要具备的能力.对于分布式数据库,容器化也是提升快速部署.提高运维效率的一个很好的路径. 我们重新优化了 Docker部署的方式,帮助大家更快的上手SequoiaDB集群,本文就将介绍基于 Docker 的SequoiaDB分布式集群快速部署. 1.集群配置 我们将在六个容器中部署一个多节点,高度可用的 SequoiaDB 集群,如下所示: (本文以 SequoiaDB v3.2.3 版本为例) ? 该集群包括一个协调器节点.一个目录节点

jenkins的容器化部署以及k8s应用的CI/CD实现

1. 使用Helm安装Mysql: ??上一篇博文谈到了如何使用Helm安装Redis和RabbitMQ,下来我们来聊聊如何用Helm安装mysql. ??本人对于Mysql数据库不是非常熟悉,因为我们公司的分工比较明确,数据库这块的工作主要由DBA负责,运维同学只负责应用的维护. ??按照我们前面博文的描述,首先是在官方文档查看helm安装mysql的书名: https://github.com/helm/charts/tree/master/stable/mysql ??我根据官方文档的描述

超级简便的容器化部署工具(使用 ASP.NET Core 演示)

Docker 改变了我们部署网站的方式,从原先的手动编译打包上传,到现在的构建镜像然后推送部署,让我们在配置环境上所花费的时间大大减少了.不仅如此,通过一系列相关的工具配合,可以很轻松的实现 CI.CD.本文即将介绍的就是这么一款非常简便的工具--captainduckduck,使用 captainduckduck 只需要很少的 Docker 知识. 简介 原先,我们的部署流程可能是这样的: 拉取代码 -> 构建镜像 -> 启动容器 除此之外,还需要配置 HTTPS,配置反向代理,如果要更新应

容器化部署Cassandra高可用集群

前提: 三台装有docker的虚拟机,这里用VM1,VM2,VM3表达(当然生产环境要用三个独立物理机,否则无高可用可言),装docker可参见Ubuntu离线安装docker. 开始部署: 部署图 如上图所示,三台VM的IP分别为: 192.168.0.101 192.168.0.102 192.168.0.103 客户端将使用这三个IP来连接集群,每个VM通过端口映射由docker网桥myBridge来与Cassandra容器通信,容器的IP会在启动容器时指定 部署步骤: 1. 建docke