Flocker 做为后端存储代理 docker volume-driver 支持
docker Flocker
https://github.com/ClusterHQ/flocker/
文档:
https://docs.clusterhq.com/en/latest/docker-integration/
docker swarm 部署 Flocker
https://docs.clusterhq.com/en/latest/docker-integration/manual-install.html
CentOS 7 安装 flocker-cli
需要 python 2.7
yum install gcc libffi-devel git
[root@swarm-master ~]# git clone https://github.com/ClusterHQ/flocker
[root@swarm-master ~]# cd flocker
[root@swarm-master flocker]# pip install -r requirements/all.txt
[root@swarm-master flocker]# python setup.py install
[root@swarm-master flocker]# flocker-ca --version
1.14.0+1.g40433b3
CentOS 7 安装 flocker node 在每个节点中
[root@swarm-node-1 ~]# yum list installed clusterhq-release || yum install -y https://clusterhq-archive.s3.amazonaws.com/centos/clusterhq-release$(rpm -E %dist).noarch.rpm
[root@swarm-node-1 ~]# yum install -y clusterhq-flocker-node
[root@swarm-node-1 ~]# yum install -y clusterhq-flocker-docker-plugin
在 管理节点 与 node 节点 创建 flocker 配置目录
mkdir /etc/flocker
[root@swarm-master ~]# cd /etc/flocker
一、生成 flocker 管理服务器 证书
[root@swarm-master flocker]# flocker-ca initialize cnflocker
Created cluster.key and cluster.crt. Please keep cluster.key secret, as anyone who can access it will be able to control your cluster.
二、生成 flocker 控制节点 证书
官方 建议使用 hostname, 而不使用IP, 我这里暂时使用 IP
[root@swarm-master flocker]# flocker-ca create-control-certificate 172.16.1.25
拷贝 control-172.16.1.25.crt control-172.16.1.25.key cluster.crt 三个文件到 控制节点 中
注意:cluster.key 文件为 key 文件,只保存在本机,或者管理服务器 (我这里 管理服务器 与 控制节点 为同一台服务器)
[root@swarm-master flocker]# scp control-172.16.1.25.crt 172.16.1.25:/etc/flocker
[root@swarm-master flocker]# scp control-172.16.1.25.key 172.16.1.25:/etc/flocker
[root@swarm-master flocker]# scp cluster.crt 172.16.1.25:/etc/flocker
重命名 刚复制过来的 control-172.16.1.25.key control-172.16.1.25.crt
[root@swarm-master flocker]# mv control-172.16.1.25.crt control-service.crt
[root@swarm-master flocker]# mv control-172.16.1.25.key control-service.key
设置 权限
[root@swarm-master flocker]# chmod 0700 /etc/flocker
[root@swarm-master flocker]# chmod 0600 /etc/flocker/control-service.key
三、生成 flocker node节点 证书 , 每个节点都必须生成一个不一样的证书
[root@swarm-master flocker]# flocker-ca create-node-certificate
Created 6cc5713a-4976-4545-bf61-3686f182ae50.crt. Copy it over to /etc/flocker/node.crt on your node machine and make sure to chmod 0600 it.
复制 6cc5713a-4976-4545-bf61-3686f182ae50.crt 6cc5713a-4976-4545-bf61-3686f182ae50.key cluster.crt 到 flocker node 节点 /etc/flocker 目录中
[root@swarm-master flocker]# scp 6cc5713a-4976-4545-bf61-3686f182ae50.crt 172.16.1.28:/etc/flocker
[root@swarm-master flocker]# scp 6cc5713a-4976-4545-bf61-3686f182ae50.key 172.16.1.28:/etc/flocker
[root@swarm-master flocker]# scp cluster.crt 172.16.1.28:/etc/flocker
登陆 node 节点 重命名 crt 与 key 文件 为 node.crt node.key
[root@swarm-node-1 flocker]# mv 6cc5713a-4976-4545-bf61-3686f182ae50.crt node.crt
[root@swarm-node-1 flocker]# mv 6cc5713a-4976-4545-bf61-3686f182ae50.key node.key
[root@swarm-node-1 flocker]# chmod 0700 /etc/flocker
[root@swarm-node-1 flocker]# chmod 0600 /etc/flocker/node.key
四、生成 Flocker Plugin for Docker 客户端 API
[root@swarm-master flocker]# flocker-ca create-api-certificate plugin
Created plugin.crt. You can now give it to your API enduser so they can access the control service API.
复制 plugin.crt plugin.key 到 flocker node 节点 /etc/flocker 目录中。
[root@swarm-master flocker]# scp plugin.crt 172.16.1.28:/etc/flocker/
[root@swarm-master flocker]# scp plugin.key 172.16.1.28:/etc/flocker/
五、 控制节点 运行 flocker Service
[root@swarm-master flocker]# systemctl enable flocker-control
[root@swarm-master flocker]# systemctl start flocker-control
六、 配置 node 节点 以及 后端存储
在每个节点 新增 配置文件
[root@swarm-node-1 flocker]# vi /etc/flocker/agent.yml
---------------------------------------------------------------------------------------------------
"version": 1
"control-service":
"hostname": "172.16.1.25"
"port": 4524
# The dataset key below selects and configures a dataset backend (see below: aws/openstack/etc).
# # All nodes will be configured to use only one backend
dataset:
backend: "aws"
region: "<your region; for example, us-west-1>"
zone: "<your availability zone; for example, us-west-1a>"
access_key_id: "<AWS API key identifier>"
secret_access_key: "<Matching AWS API key>"
---------------------------------------------------------------------------------------------------
dataset 为后端存储的设置选项。
后端存储支持列表: https://docs.clusterhq.com/en/latest/flocker-features/storage-backends.html#supported-backends
七、 node 节点 运行 flocker-agent 与 flocker-docker-plugin
[root@swarm-node-1 flocker]# systemctl enable flocker-dataset-agent
[root@swarm-node-1 flocker]# systemctl start flocker-dataset-agent
[root@swarm-node-1 flocker]# systemctl enable flocker-container-agent
[root@swarm-node-1 flocker]# systemctl start flocker-container-agent
[root@swarm-node-1 flocker]# systemctl enable flocker-docker-plugin
[root@swarm-node-1 flocker]# systemctl restart flocker-docker-plugin
八、 docker volume-driver 测试
[root@swarm-master]# docker run -v apples:/data --volume-driver flocker busybox sh -c "echo hello > /data/file.txt"
[root@swarm-master]# docker run -v apples:/data --volume-driver flocker busybox sh -c "cat /data/file.txt"
Flocker 做为后端存储代理 docker volume-driver 支持的更多相关文章
- Docker使用rexray做跨主机存储
Rex-Ray 是一个优秀的 Docker volume driver,不过只有最新版docker才支持. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很 ...
- 理解OpenShift(5):从 Docker Volume 到 OpenShift Persistent Volume
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...
- Docker 0x06: Docker Volume卷
目录 Docker Volume卷 一句话什么是docker volume? docker volume特性 docker 挂载卷 docker 多容器间共享数据券 删除,查看数据卷 备份还原数据卷 ...
- 存储-docker volume 生命周期管理(14)
volume 生命周期管理 - 每天5分钟玩转 Docker 容器技术(44) Data Volume 中存放的是重要的应用数据,如何管理 volume 对应用至关重要.前面我们主要关注的是 volu ...
- docker volume创建、备份、nfs存储
docker存储volume #环境 centos7.4 , Docker version 17.12.0-ce docker volume创建.备份.nfs存储 #docker volume 数据存 ...
- docker volume持久化存储与数据分享
第一种 指定volume文件mysql存储,存储的位置为/var/lib/mysql -v mysql:/var/lib/mysql 第二种 同步文件,将容器中的skeleton文件夹的内容同步到宿主 ...
- 第 6 章 存储 - 040 - docker managed volume
docker managed volume 与 bind mount 在最大区别是不需要指定 mount 源,指明 mount point 就行了 通过 -v 告诉 docker 需要一个 data ...
- Openstack_后端存储平台Ceph
框架图 介绍 一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统 特点 CRUSH算法 Crush算法是ceph的两大创新之一,简单来说,ceph摒弃了传统的集中式存储元数据寻址的方案, ...
- 9 云计算系列之Cinder的安装与NFS作为cinder后端存储
preface 在前面我们知道了如何搭建Openstack的keystone,glance,nova,neutron,horizon这几个服务,然而在这几个服务中唯独缺少存储服务,那么下面我们就学习块 ...
随机推荐
- Thrift项目Server端开发流程
Thrift项目Server端开发流程 首先,先了解工程中所有包的功能(见下图) 该图为用户中心项目的目录结构,以下依次介绍. 1. src/main/java com.framework:该 ...
- JavaScript高级程序设计:第十二章
DOM1级主要定义的是HTML和XML文档的底层结构.DOM2和DOM3级则在这个结构的基础上引入了更多的交互能力,也支持了更高级的XML特性.为此DOM2和DOM3级分为许多模块,这些模块如下: D ...
- thinkphp 实现微信公众号开发(一)
打算用php做一个微信公众号管理平台.用thinkphp框架 教程上面是是应用下面会自动生成Lib文件夹.但是我的3.2.3自动生成目录不一样 我修改了我项目文件夹下面的IndexController ...
- view视图--display中echo出ob_get_contents的缓冲内容--(实现,拼接好文件--导入文件)
view.php01默认设置有3个公共的属性,其他属性.后面实例化的时候.通过传递参数.foreach遍历,不断的增加属性02view对象的实例化.位置在-->控制器父类的构造方法中视图的目录名 ...
- 不注册COM组件直接调用接口
本文以COM组件AppTest.dll为例,AppTest.dll中提供了ITest接口,在不使用regsvr32命令向系统注册的情况下创建ITest接口并调用. 一.导入组件或类型库: 在C++中使 ...
- 【jsp】读取WebRoot下的图像文件
package readPic; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream ...
- 【单源最短路模板】 poj 2387
#include <cstdio> #include <iostream> #include <stdlib.h> #include <memory.h> ...
- 拖动滚动条时某一处相对另一处固定不动(position:fixed)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- Swift -> RunTime(动态性) 问题 浅析
Swift是苹果2014年发布的编程开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序.Swift已经开源,目前最新版本为2.2.我们知道Objec ...
- Android实现GIF图片解码与播放
Android实现GIF图片解码与播放 如何在Android中播放GIF图片呢?如果直接按以前的方法,分解图片,可能相对比较麻烦. 今天给大伙介绍一种新的方式,构造自己的Android图片解码帮助类, ...