首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kubernetes 上编排 MongoDB 集群

无状态应用在 Kubernetes 的使用非常方便,但是对于一些有状态应用部署还是相对较麻烦,虽然也有单独的 StatefulSets 资源对象来处理有状态应用,但是毕竟不具有通用性,有状态应用的编排和具体的应用息息相关...,比如 MongoDB、ElasticSearch、Redis、Zookeeper 等应用。...此外需要提供一个可用的 StorageClass,这样可以保证不同的副本数据持久化到不同的 PV。...rs.status() 显示副本集名称和成员数量 成员列表也可以看到每个成员的 FQDN 名称和状态,不过需要注意的是 FQDN 只能在 Kubernetes 集群内部访问: ?...到这里我们就成功地将 MongoDB 部署到了 Kubernetes 集群,而且还是可伸缩的。

4.4K42

kubernetes持久化存储之StorageClass

PVC,找到对应的StorageClass,然后Kubernetes就会调用 StorageClass声明的存储插件,创建出需要的PV。...这里我们以NFS为例,要使用NFS,我们就需要一个nfs-client的自动装载程序,我们称之为Provisioner,这个程序会使用我们已经配置好的NFS服务器自动创建持久卷,也就是自动帮我们创建PV.../external-storage/tree/master/nfs-client 部署之前,首先得确保有可用得NFS服务器,这里默认已经有可用得NFS服务器了。...metadata: name: nfs-client-storageclass provisioner: rookieops/nfs 注意provisioner必须和上面得Deployment的YAML文件PROVISIONER_NAME...另外我们可以看到我们这里是手动创建的一个 PVC 对象,实际工作,使用 StorageClass 更多的是 StatefulSet 类型的服务,StatefulSet 类型的服务我们也可以通过一个

76810
您找到你想要的搜索结果了吗?
是的
没有找到

kubernetes中用Glusterfs做持久化存储

但是在生产中我们并不会去选择NFS,更多的是Ceph、Glusterfs等等,今天就来带大家了解kubernetes中使用Glusterfs。...测试 2.1、简单测试 (1)、配置endpoints # curl -O https://raw.githubusercontent.com/kubernetes/examples/master/volumes...测试 (1)、创建需要使用的secret(heketi-secret.yaml) apiVersion: v1 kind: Secret metadata: name: heketi-secret...,默认值为”false”,heketi服务开启认证时必须设置为”true”; restuser:可选参数,开启认证时设置相应用户名; secretNamespace:可选参数,开启认证时可以设置为使用持久化存储的.../pv-data # ls 1111.txt 存储节点查看是否有我们pod写入的文件 # cd /var/lib/heketi/mounts/vg_bffb11849513dded78f671f64e76750c

2K10

(译)Kubernetes 持久卷进行扩容

Kubernetes v1.11 持久卷扩容能力升级为 Beta 阶段。这个功能让用户可以轻松的通过编辑 PVC 对象的方式修改现有卷的容量。...持久卷不支持缩容操作。... Kubernetes v1.11 ,这两个项目都会被缺省激活。 虽然功能已经被激活,但是集群管理员还是需要进行操作,让用户能够对自己的卷进行扩容。...管理员确定底层存储能够支持卷扩展之后,就可以 StorageClass 对象设置 allowVolumeExpansion 为 true 来启用这一功能了。...文件系统扩展过程遇到任何错误,都会在 Pod 以 Event 的形式表现出来。 在线文件系统扩展 Kubernetes v1.11 还引入了一个 Alpha 功能,叫做在线文件系统扩展。

2.1K20

MongoDB 数组mongodb 存在的意义

MOGNODB 的文档设计和存储,存在两个部分 1 嵌套 2 数组,所以如果想设计好一个MONGODB 在理解业务,读写比例,查询方式后,就需要介入到更深层次的理解嵌套的查询方式,嵌套多层后的性能问题...MONGODB 的数组是属于同类型数据的元素集合,每个数组的元素代表这个数组同样属性的不同值,其实我们可以理解为,一个JSON ,有行和行列集合的存在,本身JSON可以通过数组的方式,一个平面里面表达一个列的集合...数组一部分应用设计适合进行数据查询,而另外一点就是数组的缺点,就是对数组的数据进行更新,尤其是高频次,大量的数据更新和数据的添加。 下面就是针对ORACLE 添加在数组添加一个数据元素。...将刚才的加入的数组元素进行修改db.databases.update({system_name:"oracle"},{$set:{"score.4":50}}) 另外对于数组的另外一个功能,就是将一些设计的行转换...数组MONGODB 存在的意义很大,很多设计中都可以通过数组的使用降低查询的复杂度和降低建立索引的SIZE。

4.2K20

Docker安装MongoDB

“docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo” 在上面的命令,几个命令参数的详细解释如下: -p...外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务 -v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器的/data/db,作为 mongodb 的存储目录...studiot 3T下载地址:https://studio3t.com/download/ 5.创建mongo用户 可以看到一个空的mongo数据库,有一个不太完美的地方在于我们的mongo没有任何账户密码,裸奔...指定验证启动mongo容器:docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth 也就是之前的启动命令后面加上...--auth:需要密码才能访问容器服务 此时强行访问,可以看到提示,没有授权 这里我们连接的地方指定一下账户密码 再来查询,已经正确查询出来之前添加的用户信息 7.创建一个业务数据库和对应的读写账户

6.5K11

Kubernetes上运行MongoDB的5个理由

对于寻求满足可扩展性、可靠性和性能需求的企业来说, Kubernetes 上运行 MongoDB 是一个明智的选择。这两种技术的集成解决了企业管理大规模动态环境时面临的一些最关键的挑战。...让我们探讨 Kubernetes 上运行 MongoDB 作为企业为未来优化其数据基础设施的推荐策略的五大理由。...此外,通过 Kubernetes 有效地管理集群的资源,您的 MongoDB 占用空间可以有效运行,并且没有性能或可用性问题,但资源占用空间却小得多。... Kubernetes 上运行 MongoDB 允许您利用此生态系统,从而更轻松地构建、部署和维护强大的应用程序。...此外,Kubernetes 对容器化环境的支持确保了您的 MongoDB 实例隔离的可重复环境运行。

8810

kubernetes持久化存储之PV和PVC

[nh2gq0h9ei.jpg] 持久化存储 Kubernetes为了能更好的支持有状态应用的数据存储问题,除了基本的HostPath和EmptyDir提供的数据持久化方案之外,还提供了PV,PVC和StorageClass...PV 前面介绍了PV的基本概念,介绍我们知道PV可以用很多共享存储做底层存储设备,这里用NFS作为存储设备做测试。...:删除,将从Kubernetes删除PV对象,以及外部基础设施相关的存储资产,比如AWS EBS, GCE PD, Azure Disk, 或Cinder volume; Recycle:回收,清楚...PV的所有数据,相当于执行rm -rf /pv-volume/*; 然后我们创建PV: # kubectl create -f pv01-daemo.yaml 然后观察其PV: [root@master...反之创建 (4)、selector:定义绑定卷的标签查询 (5)、storageClassName:定义的storageClass的名字 (6)、volumeMode:定义卷的类型 (7)、volumeName

2.8K00

使用Rook+CephKubernetes上作持久存储

Ruby III 我想在新的Kubernetes集群上安装Prometheus和Grafana,但为了使这些软件包能够工作,他们需要一些地方来存储持久数据。...当我Seagate担任云架构师时,我已经对Ceph进行了性能和规模测试,并且在过去的一年里玩过Rook,所以我决定安装Rook+Ceph,并将其用于Kubernetes集群的数据存储。...Rook充当CephKubernetes的业务流程层,将OSD和MON流程部署为POD副本集。来自Rook的README文件: Rook将存储软件转变为自我管理、自我扩展和自我修复的存储服务。...https://github.com/rook/rook/blob/master/README.md 当我创建集群时,我构建了具有40GB硬盘的VM,所以使用5个Kubernetes节点,我的集群上提供了大约...Rook给Prometheus服务器的持久存储 ? 希望您觉得这个有帮助。

94521

kubernetes运行openebs

数据平面和控制平面之间的这种清晰的分离为用户提供了与Kubernetes的微服务相同的优势。这种独特的架构通过使存储实体与持久性脱钩,从而有助于工作负载的可移植性。...节点设备管理器 Kubernetes工作时,在有状态应用程序的情况下管理持久性存储的任务由各种工具完成。NDM或节点设备管理器 就是一种可以填补这一空白的工具。...请按照以下步骤Linux平台(Ubuntu)启动该过程。...为准入控制设置节点选择器 准入控制器的作用是在对象持久化之前截取已提交给Kubernetes的API服务器的请求。仅在授权或验证请求后才能执行此操作。...然后您要做的就是cStor池中部署ENV设置以cStor池pod启用转储核心,并将ENV设置放入ndm守护程序规范daemonset pod核心转储。

4.6K10

Wiredtiger MONGODB 的疑问

MongoDB 也有类似MYSQL 的数据库引擎的插件化的概念,虽然MYSQL 被ORACLE 搞得现在对这个数据库的引擎认知都存在于INNODB,但实际上MYSQL 之前的存储引擎还是丰富多彩的,...实际上MONGODB ,快速的返回结果其实cursors的功劳不小,首先不要用传统的数据库思维来去想MONGODB,他返回的数据结果集,要比传统的数据结果集大的多,(言外之意就是MONGODB 处理的数据量...,删除操作应该好好考虑如何处理。...2 作为WIREDTIGER 的两个日志系统,Journal and oplog ,系统他们的负责的任务是不同的,(如不清楚 Journal & oplog 是什么请百度),那么这里有一个问题,Journal...这也是由于两者在对MONGODB 数据库功能上的主责不同。一个是负责系统crash后的恢复,自然以结果为ORDER ,而OPLOG 则是要对 REPL负责,所以操作的顺序是ORDER。

1.7K20

Kubernetes配置Container Capabilities

图片来源: https://unsplash.com/photos/6T0rb_X_3Bs 我们使用 Kubernetes 过程,偶尔会遇到如下所示的一段配置: securityContext:...如果设置为开启,那么执行 execve 函数后,Permitted 集合中新增的 capabilities 会自动出现在进程的 Effective 集合。...--privileged 的情况下(建议)我们可以使用 --cap-add=NET_ADMIN 将这个 Capabilities 添加回来: $ docker run -it --rm --cap-add...Kubernetes 配置 Capabilities 上面我介绍了 Docker 容器下如何来配置 Capabilities, Kubernetes 也可以很方便的来定义,我们只需要添加到 Pod...Kubernetes 通过 sercurityContext.capabilities 进行配置容器的 Capabilities,当然最终还是通过 Docker 的 libcontainer 去借助

3.7K30

Kubernetes集群扩展CoreDNS

用于调整Kubernetes集群的CoreDNS资源/需求的指南 Chris O'Haver 我正在分享Kubernetes(1.12)中使用CoreDNS(1.2.5)运行的一些测试结果,以便为将...除了默认配置测试CoreDNS之外,我还测试了CoreDNS并启用了可选的autopath插件。...autopath插件是一种优化,有助于透明地缓解由于Kubernetes臭名昭着的ndots:5问题而导致的Pod性能损失。这些测试启用autopath时量化了内存/性能交易。...内存和Pod 大规模Kubernetes集群,CoreDNS的内存使用率主要受集群Pod和服务数量的影响。 ?...使用autopath插件 CoreDNS的autopath插件是一个减轻ClusterFirst搜索列表惩罚的选项。启用后,它会减少客户端查找外部名称时进行的DNS查询次数。

2.1K30
领券