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,一经查实,立即删除!

相关文章

在 MyEclipse 中配置 tomcat

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

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…

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…

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

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

matlab的exec程序,C++调用Matlab画图的一段程序

劳动节闲来无事&#xff0c;写了一天程序&#xff0c;just for fun.看&#xff0c;这是C调用Matlab画图的一段程序。暂时不想多解释了&#xff0c;有兴趣的话&#xff0c;看看下面的代码吧。以下几段代码由上到下&#xff0c;越来越旧。最上面的是最新更新的版本。#include#inc…

java args_Java命令行界面(第2部分):args4j

java args在上一篇文章中 &#xff0c;我研究了使用Apache Commons CLI在Java应用程序中解析命令行参数。 在本文中&#xff0c;我将使用另一个库args4j进行相同的操作。 args4j采用了一种不同于Commons CLI的方式来指定Java应用程序应期望的命令行参数。 尽管Commons CLI期望…

apache camel_Apache Camel中的短重试与长重试

apache camel《骆驼设计模式》一书介绍了20种模式以及用于设计基于Apache Camel的集成解决方案的众多技巧和最佳实践。 每种模式都基于真实的用例&#xff0c;并提供了Camel特定的实现细节和最佳实践。 为了让您有这本书的感觉&#xff0c;以下是该书的重试模式摘录&#xff0c…

mega5安装包_[MEGA DEAL] 2017年完全Java捆绑包(95%折扣)

mega5安装包深入了解编程奥德赛&#xff08;58小时&#xff01;&#xff09;&#xff0c;进入最常用的编程语言 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了一个极端的报价 。 我们提供的2017 Complete Java Bundle 仅…

matlab计算微分ppt,matlab-ch013(数值计算-微积分)20090923.ppt

matlab-ch013(数值计算-微积分)20090923.ppt 第13讲 数值计算 —微积分,张建瓴,13.1 数值积分,在工程教学和应用中&#xff0c;除了进行数据逼近外&#xff0c;还要求逼近曲线下面的面积&#xff0c;这就是积分问题。,一、数值积分方法,典型的数值积分方法有&#xff1a;用常数…

JDK 9中不推荐使用Java的Observer和Observable

在博客文章《 应用JDK 9 Deprecated增强功能》中 &#xff0c;我讨论了JDK 9中 Deprecated批注中对forRemoval&#xff08;&#xff09;和since&#xff08;&#xff09;可选元素&#xff08;方法&#xff09;的添加 。 我在那篇文章中说&#xff1a;“在Java SE API上应用新的…

WorkPlus一站式协同解决方案,助力企业降本增效

在企业数字化转型的过程中&#xff0c;很多企业都会遇到一个共同问题&#xff1a;重复建设基础功能&#xff0c;耗费大量时间和资源。为解决这一难题&#xff0c;WorkPlus已经将一些通用、基础且有技术门槛的功能进行了集成与开发&#xff0c;如IM&#xff08;即时通讯&#xf…

linux在oracle新建表,Oracle创建表及管理表

1. Oracle表的创建及管理创建表包括三个要素&#xff0c;表名&#xff0c;列名&#xff0c;数据类型。每个表都有对应不同的列&#xff0c;每个列都有唯一对应的数据类型。常用数据类型简介&#xff1a;数据类型描述CHARACTER(n)字符/字符串。固定长度 n。INTEGER(p)整数值(没有…

Linux 命令之 top -- 实时显示进程动态/查看进程信息

文章目录介绍常用选项交互命令参考示例示例 1&#xff1a;直接输入命令 top 就可以动态显示进程信息统计参数信息详解进程属性说明&#xff08;即进程列表的字段说明&#xff09;其它1.在 top 基本视图中&#xff0c;按键盘数字 1 可以监控每个逻辑 CPU 的状况2.敲击键盘 b&…

oracle同步恢复目录,Oracle创建恢复目录(catalog)

Oracle创建恢复目录(catalog)&#xff0c;在catalog数据库上创建cat用户的表空间。Oracle创建恢复目录1.在catalog数据库上创建cat用户的表空间SQL> create tablespace cat datafile /home/oracle/oradata/orcl/cat.dbf size 512M;2.创建cat用户SQL> Create user cat ide…

java登录界面命令_Java命令行界面(第3部分):jbock

java登录界面命令在本系列中有关使用Java进行命令行分析的前两篇文章中&#xff0c;我介绍了Apache Commons CLI和args4j库。 在本系列的第三篇文章中&#xff0c;我介绍了jbock &#xff0c;它是自我描述的“非常简单的CLI解析器”。 我在Java命令行解析中的帖子使用了一些示…

java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

java中转json字符串在Java应用程序中工作或进行JSON解析时&#xff0c;通常很常见的做法是从某些资源&#xff08;例如RESTful Web服务&#xff09;中复制粘贴JSON字符串&#xff0c;然后使用Jackson库解析JSON。 这是在Java中测试和学习解析JSON字符串的最快方法&#xff0c;但…

COLLATE oracle,Sql 中Collate用法

今天查询sqlite的时候需要不区分大小写&#xff0c;查了下文档&#xff0c;需要使用collate nocase.顺便学习下collate的用法。collate在sql中是用来定义排序规则的。排序规则其实就是当比较两个字符串时&#xff0c;根据某种规则来确定哪个比较大&#xff0c;是否相等。各个数…

jdeps_JDeps入门–分析项目的依赖关系

jdepsJDeps是Java依赖关系分析工具 &#xff0c;这是一个命令行工具&#xff0c;它处理Java字节码&#xff08;意味着.class文件或包含它们的JAR&#xff09;&#xff0c;并分析类之间静态声明的依赖关系。 可以用各种方式过滤结果&#xff0c;并可以将其汇总到包或JAR级别。 J…