1. 程式人生 > >kolla-ansible部署容器ceph

kolla-ansible部署容器ceph

kolla是從openstack孵化出的一個專案,kolla專案可以製作映象包括openstack、ceph等容器映象,

ansible是自動化部署工具,執行playbook中的任務。

kolla-ansible是容器部署工具,部署openstack和ceph;kolla-ansible部署的容器映象可以是kolla構建的,也可以是從docker register下載來的(本文部署使用kolla-ansible部署ceph採用從docker register下載映象的方式部署)。

一、節點規劃

主機名 ip 角色
localhost 172.16.134.43 master節點,安裝kolla-ansible
node58 172.16.134.58 ceph節點,至少有一塊osd使用的磁碟
node59 172.16.134.59 ceph節點,至少有一塊osd使用的磁碟
node61     172.16.134.61 ceph節點,至少有一塊osd使用的磁碟

二、搭建master節點

1、安裝docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum install docker-ce -y

2、master和ceph節點之間解決互信

ssh-keygen


ssh-copy-id [email protected]

ssh-copy-id [email protected]16.134.59

ssh-copy-id [email protected]16.134.61

3、安裝kolla-ansible依賴包

yum -y install epel-release
yum install -y python-pip ansible
yum install -y python-devel libffi-devel openssl-devel gcc python-setuptools git

 4、修改pip源:
mkdir -p ~/.pip
tee ~/.pip/pip.conf <<-'EOF'
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
EOF
 5、升級pip:
pip install -U pip

6、下載kolla-ansible原始碼並安裝

git clone https://github.com/openstack/kolla-ansible.git -b stable/queens

cd kolla-ansilbe

pip install -r requirements.txt -r test-requirements.txt

pip install . -i http://mirrors.aliyun.com/pypi/simple/

 7、複製相關檔案
cp -r etc/kolla /etc/kolla/
cp ansible/inventory/* /home

8、生成密碼

 kolla-genpwd

9、設定docker

mkdir /etc/systemd/system/docker.service.d
編輯kolla.conf檔案
vim /etc/systemd/system/docker.service.d/kolla.conf 
[Service]

MountFlags=shared
編輯daemon.json檔案
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://ebu037tr.mirror.aliyuncs.com"],
"insecure-registries": ["docker-registries"]
}

注意:docker-registries為docker映象伺服器,在部署過程中,kolla-ansible會從docker伺服器上拉取所需要的映象,該docker映象伺服器要有ceph各元件的映象。

         在ceph節點上也要用docker login {docker-registries},登陸到docker伺服器,否則在部署過程中會出現認證錯誤。

10、重啟docker服務

systemctl daemon-reload
systemctl restart docker

11、修改/etc/hosts檔案,填入ceph節點

三、ceph節點環境配置(在三個ceph節點上執行同樣的操作)

1、禁用節點放火牆,安全策略等

[[email protected] ~]vim ~/init.sh
#!/bin/sh
sed -i 's/SELINUX=.*/SELINUX=Disabled/g' /etc/selinux/config
echo '' > /etc/resolv.conf
echo nameserver 114.114.114.114 >> /etc/resolv.conf
echo search novalocal >> /etc/resolv.conf
echo " net.ipv4.ip_forward = 1 ">> /etc/sysctl.conf&&sysctl -p
yum install vim wget -y

systemctl stop firewalld

systemctl disable firewalld
-----------------------------------------------------------
[[email protected] ~]# sh init.sh

2、節點配置時間同步

[[email protected] ~]# yum install -y chrony

[[email protected] ~]# vi /etc/chrony.conf
server 0.cn.pool.ntp.org iburst
server 1.cn.pool.ntp.org iburst
server 2.cn.pool.ntp.org iburst
server 3.cn.pool.ntp.org iburst

3、給ceph節點的磁碟打標籤

[[email protected] ~]# parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

四、部署ceph容器服務(在master節點執行)

1、修改kolla-ansible的配置檔案

[[email protected] ~]# cat /etc/kolla/globals.yml|grep -v '^#'|grep -v '^$'
---
kolla_install_type: "binary"
openstack_release: "queens"
kolla_internal_vip_address: "ip of master"
docker_registry: "{docker-registries}"
docker_namespace: "queens/kolla"
docker_registry_username: "admin"
docker_registry_password: "Harbor12345"
network_interface: "ens33"
enable_ceph: "yes"
enable_haproxy: "no"
enable_keystone: "no"
enable_glance: "no"
enable_neutron: "no"
enable_heat: "no"
enable_nova: "no"
enable_horizon: "no"
ceph_pool_type: "replicated"

注意:/etc/kolla/globals.yml檔案會過載/usr/share/kolla-ansible/ansible/group_vars/all.yml檔案,不需要安裝的服務在all.yml中改成“no”

2、修改ansible的inventory檔案

在[storage]下填入ceph節點的主機名,把其餘section清空

6、部署ceph節點環境

kolla-ansible bootstrap-servers -i /home/multinode

7、檢查和部署

kolla-ansible  prechecks  -i /home/multinode

kolla-ansible deploy -i /home/multinode

8、測試(在ceph節點執行)

docker exec ceph_mon ceph -s