博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kolla-ansible部署openstack+ceph高可用集群queens版本--- 环境准备及初始化
阅读量:2110 次
发布时间:2019-04-29

本文共 6888 字,大约阅读时间需要 22 分钟。

一、宿主主机硬件需求

1、主机必须满足以下最低要求:

  1. 2张网卡,都需要网线连接(内部管理网络建议万兆,外部网络千兆即可)
  2. 8GB主内存
  3. 40GB磁盘空间(部署ceph至少两块硬盘)
  4. 高可用集群环境至少2台controller,1台computer.

2、部署环境

本文采用1台monitor,3台controller,3台computer,1台做docker镜像仓库,均安装centos7 minimal 系统,3T 硬盘*4,3块作为ceph存储使用,2张万兆网卡。

hostname 网卡1 网卡2
monitor 172.29.55.229 无ip
controller01 172.29.55.230 无ip
controller02 172.29.55.231 无ip
compute03 172.29.55.232 无ip
compute01 172.29.55.233 无ip
compute02 172.29.55.234 无ip
compute03 172.29.55.235 无ip

2级标题

3、系统其他要求

  1. 安装系统的时候采用默认分区,并删除/home分区,剩余容量全部分给root分区.可省略
  2. 系统其他硬盘,不要挂载,直接格式化
  3. 服务器的网口至少两个,一个内网管理必须分配ip,连接网线;另一个不需要分配ip,连接网线。

二、所有主机初始化配置

1、yum加速源配置,并安装需要的更新

!#/bin/bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup cd /etc/yum.repos.d/ curl -o /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache yum update -y systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config

2、 ntp服务配置

OpenStack,RabbitMQ和Ceph要求所有主机具有匹配的时间,以确保正确的消息传递。对于Ceph,如果主机相差超过0.05秒,它将抱怨。默认情况下,某些OpenStack服务的计时器低至2秒。由于这些原因,强烈建议您设置某种NTP服务。而ntpd如果NTP服务器在本地部署环境中运行将实现部署更准确的时间,chrony同步通过WAN连接的时候更准确。ntpd由于时间紧迫,建议在运行Ceph时设置为本地同步时间。

添加ntp服务器指向

centos7 系统安装已有chronyd服务
可直接修改配置文件启动服务

cp /etc/chrony.conf  /etc/chrony.conf_back vi /etc/chrony.conf    		#注释掉服务器初始的ntp服务指向,添加国内或自建ntp server   	server ntp1.aliyun.com iburst   	server ntp2.aliyun.com iburst   	server ntp3.aliyun.com iburst	   systemctl start chronyd && systemctl status chronyd && systemctl enable chornydchronyc sources -V #查看ntp状态

或者安装ntp服务

yum install ntp ntpdate -y cp /etc/ntp.conf /etc/ntp.conf.backup vi  /etc/ntp.conf #注释掉服务器初始的ntp服务指向,添加国内或自建ntp server	 server ntp1.aliyun.com iburst   	 server ntp2.aliyun.com iburst	 server ntp3.aliyun.com iburstsystemctl enable ntpd.service && systemctl start ntpd.service && systemctl status ntpd.servicentpq –p  #查看ntp状态

3、修改服务器的hostname

echo "monitor" > /etc/hostname hostname monitor hostnamectl set-hostname monitorecho "controller01" > /etc/hostname hostname controller01 hostnamectl set-hostname controller01echo "computer01" > /etc/hostname hostname computer01 hostnamectl set-hostname computer01

在monitor上编辑/etc/hosts文件

127.0.0.1 localhost::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.29.55.229	monitor172.29.55.231	controller01172.29.55.232	controller02172.29.55.233	controller03172.29.55.234	computer01172.29.55.235	computer02172.29.55.236	computer03

4、配置monitor节点可以免密码访问其他节点

ssh-keygen  //生成ssh密钥将密钥copy到controller和computer节点ssh-copy-id root@monitor  ssh-copy-id root@controller01 ssh-copy-id root@controller02 ssh-copy-id root@controller03 ssh-copy-id root@computer01 ssh-copy-id root@computer02

配置后,可以通过命令测试,是否可以免密访问

scp /etc/hosts root@controller01:/etc/hosts    //controller01-03scp /etc/hosts root@computer01:/etc/hosts   //computer01-03

5、关闭libvirtd服务

创建的虚机没有libvirtd服务,但是物理机服务器会有,这个必须要关闭

# systemctl stop libvirtd.service && systemctl disable libvirtd.service && systemctl status libvirtd.service

6、关闭防火墙

# systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld

7、disable掉selinux

# sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config

或是直接修改:

# vim /etc/selinux/config设置SELINUX=disabled  ,reboot之后生效。# getenforce   //查看selinux当前状态

8、所有节点重启服务器

reboot

三、ceph 存储池配置

1、为存储节点的空白硬盘打ceph标签(本文存储节点,在controller和computer节点上)

Filestore 打标格式KOLLA_CEPH_OSD_BOOTSTRAP (queens 默认使用)

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1parted /dev/sdc -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

Bluestore 打标格式KOLLA_CEPH_OSD_BOOTSTRAP_BS (rocky以上两种格式均可使用,FOO1为编号)

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_FOO1 1 -1parted /dev/sdc -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_BS_FOO2 1 -1parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

2、为ceph_rgw创建池

Ceph_RGW需要一个健康的集群才能成功部署。在初次启动时,RGW将创建几个池。第一个池应处于运行状态以继续第二个池,依此类推。因此,在进行一体化部署的情况下,必须在部署之前更改池的默认副本数。按照需求,本示例部署选用三个池副本。

本次部署针对monitor机器和所有存储节点,修改/etc/kolla/config/ceph.conf并添加内容:

mkdir -pv /etc/kolla/config/ && vim /etc/kolla/config/ceph.conf[global]osd pool default size = 3osd pool default min size = 3

四、 安装配置Docker Pip

1、从阿里云下载docker的repo文件:

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、安装docker、pip其他依赖

yum -y install docker-ceyum install epel-releaseyum install python-pippip install -U pippip install dockeryum install python-devel libffi-devel gcc openssl-devel libselinux-python

3、修改pip 源

mkdir ~/.pipvim ~/.pip/pip.conf[global]trusted-host=mirrors.aliyun.com阿里源或者豆瓣源 [global]trusted-host = pypi.douban.comindex-url = http://pypi.douban.com/simple

4、配置国内镜像:

mkdir -p /etc/dockervim /etc/docker/daemon.json{    "registry-mirrors": ["https://7g5a4z30.mirror.aliyuncs.com"]}

5、 配置Docker共享挂载:

如果不设置此项,kolla-ansible 部署neutron-dhcp-agent 容器的时候会失败,并抛APIError/HTTPError

When running with systemd, setup docker-engine with the appropriate information in the Docker daemon to launch with. This means setting up the following information in the docker.service file. If you do not set the MountFlags option correctly then kolla-ansible will fail to deploy the neutron-dhcp-agent container and throws APIError/HTTPError. After adding the drop-in unit file as follows, reload and restart the Docker service:

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

6、重启Docker服务并设置开机启动

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

7、python导入docker库测试

测试成功正常导入如下

python>>> import docker;>>> exit();

如果出现 import error

查看 pip/docker 版本,更新pip后重新安装docker,若不能解决,根据报错查看解决办法

pip show dockerpip --versionpip remove dockerpip install –U pippi install docker

注意:

ocata 版本根据 使用指定docker版本安装docker-py或者python-docker-py

NodeThe old docker-python is obsoleted by python-docker-py.
yum install python-docker-pyOr using pip to install the latest version:pip install -U docker-py

8、添加信任source节点的Registry服务

# vim /usr/lib/systemd/system/docker.service

修改如下:

172.16.50.31:4000 为source主机的docker私有仓库地址和端口号

ExecStart=/usr/bin/dockerd --insecure-registry 172.16.50.31:4000

重启Docker服务:

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

9、测试Registry服务是否正常(这一步为制作本地私有仓库后再测试)

# curl -X GET http://172.16.50.31:4000/v2/_catalog

正常如下返回数据即可:

{"repositories":["kolla/centos-source-aodh-api","kolla/centos-source-aodh-base","kolla/centos-source-aodh-evalua……}

转载地址:http://aqfef.baihongyu.com/

你可能感兴趣的文章
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>
Leetcode C++《每日一题》20200625 139. 单词拆分
查看>>
Leetcode C++《每日一题》20200626 338. 比特位计数
查看>>
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>
Go语言学习Part1:包、变量和函数
查看>>
Go语言学习Part2:流程控制语句:for、if、else、switch 和 defer
查看>>
Go语言学习Part3:struct、slice和映射
查看>>
Go语言学习Part4-1:方法和接口
查看>>
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
Leetcode C++ 剑指 Offer 09. 用两个栈实现队列
查看>>
Leetcode C++《每日一题》20200707 112. 路径总和
查看>>
云原生 第十一章 应用健康
查看>>
Leetcode C++ 《第202场周赛》
查看>>
云原生 第十二章 可观测性:监控与日志
查看>>
Leetcode C++ 《第203场周赛》
查看>>
云原生 第十三章 Kubernetes网络概念及策略控制
查看>>
《redis设计与实现》 第一部分:数据结构与对象 || 读书笔记
查看>>
《redis设计与实现》 第二部分(第9-11章):单机数据库的实现
查看>>