couchbase_使用Portworx和Couchbase的有状态容器

couchbase

容器本应是短暂的,因此可以很好地扩展以用于无状态应用程序。 有状态的容器(例如Couchbase)需要区别对待。 管理Docker容器的持久性概述了如何管理有状态容器的持久性。

该博客将说明如何使用Docker Volume Plugins和Portworx创建有状态的容器。

为什么选择Portworx?

Portworx是易于部署的容器数据服务,可提供持久性,复制,快照,加密,安全的RBAC等。 一些好处是:

  1. 容器粒度卷 – Portworx可以在每个主机上占用多个EBS卷,并聚合容量并派生每个容器的容器粒度虚拟(软)卷。
  2. 可用区HA – Portworx将在跨可用区的多个计算实例中以块级别保护数据。 随着复制控制器在不同节点上重新启动Pod,数据仍将在那些节点上具有高可用性。
  3. 支持企业数据操作 – Portworx在可用物理卷之上实施容器粒度快照,服务等级以及分层。
  4. 易于部署和配置 -Portworx本身作为容器部署,并与业务流程工具集成。 DevOps可以以编程方式提供具有任何属性的容器粒度存储,例如大小,服务等级,加密密钥等。

设置AWS EC2实例

Portworx仅在Linux或CoreOS上运行。 在AWS EC2上设置Ubuntu实例:

  1. 使用m3.medium实例类型启动Ubuntu 14.04实例。 确保将端口8091添加到入站安全规则。 这样,以后便可以访问Couchbase Web Console 。
  2. 使用以下命令登录到EC2实例: ssh -i ~/.ssh/arun-cb-west1.pem ubuntu@<public-ip>
  3. 更新Ubuntu实例: sudo apt-get update
  4. 安装Docker: curl -sSL https://get.docker.com/ | sh curl -sSL https://get.docker.com/ | sh 获取适用于Ubuntu的Docker可获得更多详细说明。
  5. 启用sudo usermod -aG docker ubuntu命令的非root用户访问权限: sudo usermod -aG docker ubuntu
  6. 从EC2实例注销并重新登录

创建AWS EBS卷

  1. 如docs中所述,使用EC2控制台为10GB创建EBS卷。
  2. 从EC2控制台获取实例ID。 使用此实例ID将此卷附加到EC2实例,使用默认设备名称/dev/sdf.

    /dev/sdf.

  3. 在EC2实例中使用lsblk命令来验证该卷是否已附加到该实例:
    NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    xvda    202:0    0   8G  0 disk
    └─xvda1 202:1    0   8G  0 part /
    xvdb    202:16   0  30G  0 disk /mnt
    xvdf    202:80   0  10G  0 disk

Portworx集装箱

  1. 每个节点的物理存储结构,集群中所有已配置的卷及其容器映射都存储在etcd集群中。 启动一个etcd集群:
    docker run -v \/data/varlib/etcd \-p 4001:4001 \-d \portworx/etcd:latest
  2. 默认情况下,不允许共享根安装的卷。 使用以下命令启用此功能:
    sudo mount --make-shared /

    有关更多信息,请参见Ubuntu配置和共享安装 。

  3. 带有Docker Engine的服务器上的PX-Developer(px-dev)容器将该服务器转变为横向扩展存储节点。 另一方面,PX-Enterprise提供了多集群和多云支持,受管理的存储可以在内部部署,也可以在AWS等公共云中进行。
    对于此博客,我们将启动一个px-dev容器:
    docker run --restart=always --name px -d --net=host \--privileged=true                             \-v /run/docker/plugins:/run/docker/plugins    \-v /var/lib/osd:/var/lib/osd:shared           \-v /dev:/dev                                  \-v /etc/pwx:/etc/pwx                          \-v /opt/pwx/bin:/export_bin:shared            \-v /var/run/docker.sock:/var/run/docker.sock  \-v /var/cores:/var/cores                      \-v /usr/src:/usr/src                           \--ipc=host                                    \portworx/px-dev -daemon -k etcd://localhost:4001 -c cluster1 -s /dev/xvdf

    使用Docker运行PX中提供了有关此命令的完整详细信息。

  4. 使用docker container logs -f px查找日志,并注意以下语句:
    time="2017-02-16T05:33:26Z" level=info msg="Initialize the scheduler client and the scheduler watch" 
    time="2017-02-16T05:33:26Z" level=info msg="Started a kvdb watch on key : scheduler/containers" 
    time="2017-02-16T05:33:26Z" level=info msg="Started a kvdb watch on key : scheduler/volumes" 
    time="2017-02-16T05:33:26Z" level=info msg="Started a kvdb watch on key : scheduler/nodes/list"
  5. 使用sudo /opt/pwx/bin/pxctl status检查可用于Portworx的附加卷的sudo /opt/pwx/bin/pxctl status以查看输出:
    Status: PX is operational
    Node ID: 679b79b1-f4c3-413e-a8e0-c527348647c9IP: 172.31.25.21 Local Storage Pool: 1 poolPool    IO_Priority    Size    Used    Status    Zone    Region0    LOW        10 GiB    266 MiB    Online    a    us-west-1Local Storage Devices: 1 deviceDevice    Path        Media Type        Size        Last-Scan0:1    /dev/xvdf    STORAGE_MEDIUM_SSD    10 GiB        16 Feb 17 05:33 UTCtotal            -            10 GiB
    Cluster SummaryCluster ID: cluster1Node IP: 172.31.25.21 - Capacity: 266 MiB/10 GiB Online (This node)
    Global Storage PoolTotal Used        :  266 MiBTotal Capacity    :  10 GiB

    它显示了可用和已使用的总容量。

Docker卷

  1. 让我们创建一个Docker卷:
    docker volume create -d pxd -o size=10G -o fs=ext4 --name cbvol

    有关此命令的更多详细信息,请参见使用Docker创建卷 。

  2. 使用docker volume ls命令检查可用卷的列表:
    DRIVER              VOLUME NAME
    local               70f7b9a356df4c1f0c08e13a4e813f1ef3e174a91001f277a63b62d683a27159
    pxd                 cbvol
    local               f7bc5fa455a88638c106881f1bce98244b670e094d5fdc47917b53a88e46c073

    如图所示, cbvol是使用pxd驱动程序创建的。

带有Portworx卷的Couchbase

  1. 使用Portworx卷创建一个Couchbase容器:
    docker container run \-d \--name db \-v cbvol:/opt/couchbase/var \-p 8091-8094:8091-8094 \-p 11210:11210 \arungupta/couchbase

    注意将所有Couchbase数据存储在容器中的/opt/couchbase/var如何映射到主机上的cbvol卷。 该卷由Portworx映射。

  2. 通过http:// <public-ip>:8091登录到Couchbase Web Console,使用登录Administratorpassword作为密码。
  3. 转到数据桶并创建一个新的数据桶pwx:
  4. 在EC2实例中,请参阅容器列表:
    ubuntu@ip-172-31-25-21:~$ docker container ls
    CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                                                                               NAMES
    8ae763d9d53b        arungupta/couchbase    "/entrypoint.sh /o..."   5 minutes ago       Up 5 minutes        0.0.0.0:8091-8094->8091-8094/tcp, 11207/tcp, 11211/tcp, 0.0.0.0:11210->11210/tcp, 18091-18093/tcp   db
    5423bcd9b426        portworx/px-dev        "/docker-entry-poi..."   14 minutes ago      Up 14 minutes                                                                                                           px
    cf3c779a4459        portworx/etcd:latest   "/entrypoint.sh /b..."   21 minutes ago      Up 21 minutes       2379-2380/tcp, 7001/tcp, 0.0.0.0:4001->4001/tcp                                                     youthful_jepsen

    etcdpx-devdb容器正在运行。

  5. 杀死db容器:
    docker container rm -f db
  6. 重新启动数据库容器为:
    docker container run \-d \--name db \-v cbvol:/opt/couchbase/var \-p 8091-8094:8091-8094 \-p 11210:11210 \arungupta/couchbase

    现在,由于cbvol再次映射到/opt/couchbase/var ,因此在重新启动/opt/couchbase/var保留数据。 可以通过访问Couchbase Web控制台并检查先前创建的pwx存储桶来验证这一点。

另一个有趣的观点也是为什么数据库不用于容器? 。 仅仅因为有了Docker,并不意味着您所有的数据库需求都应该被Docker化。 但是,如果需要,则有很多选择,可以在生产级应用程序中使用。

想更多地了解如何在容器中运行Couchbase?

  • 容器上的Couchbase
  • Couchbase开发人员门户
  • @couchhasedev和@couchbase

翻译自: https://www.javacodegeeks.com/2017/03/stateful-containers-using-portworx-couchbase.html

couchbase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jpa获取数据库当前时间_SpringDataJPA存储数据时通过注解自动设置创建时间和修改时间...

如果我们此时是通过 Spring Data JPA进行数据库的操作&#xff0c;Spring Data JAP提供了Auditing特性&#xff0c;我们可以通过起很好的实现我们的需求。其原因基本时通过插入监听器&#xff0c;当我们对被特定注解的数据bean进行操作时&#xff0c;其在中间自动进行一系列的操…

在 MyEclipse 中配置 tomcat

在 IDE 配置 tomcat 实则就是让 IDE 来管理 tomcat 配置 步骤 1 点击工具栏上的“Run/Stop/Restart MyEclipse Servers”图标旁边的下拉箭头 步骤 2 选择“Configure Server” 步骤 3 在弹出的对话框“Preferences”中展开“MyEclipse” – “Servers” – “Tomcat”–“To…

finalizer_Java Finalizer和Java文件输入/输出流

finalizer在与主题直接合作或花时间学习它们之后&#xff0c;我经常会发现自己在网上注意到更多主题。 最近的Stephen Connolly &#xff08; CloudBees &#xff09;发表了FileInputStream / FileOutputStream被认为有害的文章&#xff0c;引起了我的注意&#xff0c;因为我最…

unity 陶瓷质感_一种基于Unity3D的虚拟陶瓷设计方法与流程

本发明涉及虚拟现实领域&#xff0c;特别涉及一种基于Unity3D的虚拟陶瓷设计方法。背景技术&#xff1a;陶艺工艺制作环境要求严格&#xff1a;不仅在拉坯成型需要利用旋转机器&#xff0c;在烧制过程则需要窑炉锻造&#xff0c;如何将陶瓷制作工艺与虚拟现实开发完美结合在一起…

java 中怎么加汉字,jquery怎么向body里面增加文字

jquery如何向里面增加文字jsp代码是这样的&#xff1a;我想在页面加载时动态的将一行文字增加到里面&#xff0c;不知道为什么总是加不进去&#xff0c;js代码如下&#xff1a;$(document).ready(function(){if($("#type").val()"MESSAGE") {$(".ke-t…

MacBook 推出移动硬盘时总是提示有程序在使用它,如何解决?

如下图所示&#xff1a; 先使用命令 df -lh 在终端查看当前系统的所有硬盘&#xff0c;命令如下&#xff1a; liaowenxiongliaowenxiongdeMacBook-Air ~ % df -lh Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s5s1 234Gi…

m_map投影_MATLAB使用m_map工具箱演示绘制m_map logo

第二&#xff0c;新建脚本(CtrlN)&#xff0c;输入如下代码&#xff1a;close all; clear all; clcm_proj(ortho,lat,45,long,-95);m_coast(color,[0,1,0],linewidth,5);m_coast(patch,r);m_grid(linestyle,:,xticklabels,[],yticklabels,[]);patch(0.5*[-1,1,1,-1],0.25*[1,1,…

webcrypto库下载_使用WebCrypto API的电子签名

webcrypto库下载有时我们需要让用户进行电子签名。 通常&#xff0c;人们会理解为以某种方式将您的手写签名放置在屏幕上。 根据管辖范围&#xff0c;可能很好&#xff0c;或者仅存储图像可能还不够。 例如&#xff0c;在欧洲&#xff0c;有910/2014号法规 &#xff0c;该法规定…

21朵水仙花算法java,柏拉图说,如果你有两块面包,你应当用一块去换一朵水仙花。。。。。...

昨天做了一回“黑心商贩”&#xff0c;和我们的团伙一起去卖花了。街上的小情侣们很甜蜜啊&#xff0c;看男孩们眼里的宠爱和迁就还有女孩们小鸟依人的姿态&#xff0c;真是替他们幸福啊&#xff01;(我跟这儿瞎激动啥啊&#xff01;)关键是&#xff0c;正谈恋爱的小情侣们掏钱…

Linux 命令之 ps -- 显示进程状态/查看进程信息

文章目录介绍语法格式常用选项命令示例示例 1&#xff0c;查看进程的 PID、名称以及 CPU 占用率示例 2&#xff0c;查看所有的进程示例 3&#xff0c;按内存资源的使用量对进程进行排序示例 4&#xff0c;按 CPU 资源的使用量对进程进行排序示例 5&#xff0c;显示所有进程信息…

ts获取服务器数据_怎么使用Satruts2实现页面列表数据导出到Excel表格

Java codeprivate InputStream excelFile;public void setExcelFile(InputStream excelFile) {this.excelFile excelFile;}public InputStream getExcelFile() {return excelFile;}public String createExcelFile() {try {String[] headName { "昵称","电子邮…

java登录界面命令_Java命令行界面(第5部分):JewelCli

java登录界面命令细算在Java命令行处理与Apache的百科全书CLI &#xff0c; args4j &#xff0c; jbock和命令行中先前的文章&#xff0c;我把注意力转向在这个岗位使用JewelCli完成的命令行参数相似的处理Java中。 几个Java命令行处理库使用批注来定义命令行选项。 到目前为止…

matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)

本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影、仿射、投影、多项式、分段线性、局部加权平均配准的过程。实验平台X86 PC&#xff0c;Windows XP sp2, Matlab 7.1资源的获取matlab工具的使用方法&#xff1a;查看帮助mage Processing Toolb…

Linux 命令之 pstree -- 以树状图显示进程/查看进程信息

文章目录介绍常用选项命令示例介绍 Linux 系统中 pstree 命令的英文全称是“process tree”&#xff0c;即将所有进程以树状图显示&#xff0c;树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root)&#xff0c;如果有指定使用者 id&#xff0c;则树状图会只显…

totolinkn200up怎么设置_totolinkN200R无线路由器如何设置啊,求高人指点

展开全部totolinkN200R无线路e68a84e8a2ad3231313335323631343130323136353331333337393532由器设置方法&#xff1a;【设置无线路由器方法】【家庭网络环境布线】&#xff1a;1、有猫(modem)&#xff1a;猫(modem)----路由器wan口&#xff1b;路由器lan口----电脑。2、没有猫(…

jersey 入门示例_Jersey Web Service Hello World Java示例

jersey 入门示例在Restlet之后&#xff0c; Jersey是另一个流行的开源框架&#xff0c;可以用Java创建RESTful Web服务 。 Jersey符合JAX-RS规范&#xff0c;实际上它是JAX-RS&#xff08;JSR 311&#xff09;&#xff08;http://jsr311.java.net/nonav/releases/1.1/index.htm…

php domdocument getelementbyid,PHP DOMDocument- getElementByID添加Â代替空

PHP DOMDocument-> getElementByID添加代替空(PHP DOMDocument->getElementByID adding in place of empty )我正在使用PHP的DOMDocument对象来解析一些HTML(使用cURL获取)。 当我按ID获取元素并输出它时&#xff0c;任何空的 标记都会获得一个额外的字符并变为 。代码…

Linux 命令之 whois 命令-用于查找并显示用户信息

文章目录介绍参考示例介绍 whois指令会去查找并显示指定帐号的用户相关信息&#xff0c;因为它是到Network Solutions的WHOIS数据库去查找&#xff0c;所以该帐号名称必须在上面注册方能寻获&#xff0c;且名称没有大小写的差别。 参考示例 [rootlocalhost www]# whois root…

gptuefi优势_UEFI+GPT的区别,有啥不同?写的很详细易懂

搜索相关知识时看到的好文章&#xff0c;由于百度空间挂了&#xff0c;在此注明出处作者QQ:407647406以表谢意&#xff0c;原地址戳我其实楼主早就知道UEFI&#xff0c;曾经也一直关注并试图了解&#xff0c;无奈限于当时国内有关资料匮乏&#xff0c;实在找不到什么使用有效能…

oauth2和jwt_OAuth2,JWT,Open-ID Connect和其他令人困惑的事物

oauth2和jwt免责声明 如果觉得我必须从一个重要的免责声明开始这篇文章&#xff1a; 不要太相信我要说的话。 我之所以这样说&#xff0c;是因为我们正在讨论安全性。 而且&#xff0c; 当您谈论安全性时&#xff0c;除了100&#xff05;正确的陈述外&#xff0c;还有冒任何其他…