失效链接处理 |
使用+StatefulSet+搭建+MongoDB+集群 PDF 下载
本站整理下载:
提取码:fz6y
相关截图:
主要内容:
未经允许不得转载
前提条件
创建 StatefulSet
查看 MongoDB 集群状态
StatefulSet 的场景应用场景
oMongoDB 集群的扩容
o自动故障恢复
以 MongoDB 为例,使用 StatefulSet 完成 MongoDB 集群的创建,为每个 MongoDB 实例在共享存储中(这里采用 Ceph)申请一片存储空间,以实现一个无单点故障、高可用、可动态扩展的 MongoDB 集群。
前提条件
在创建 StatefulSet 之前,需要确保在 Kubernetes 集群中管理员已经创建好了共享存储,并能够与 StorageClass 对接,以实现动态存储供应的模式。
创建 StatefulSet
为了完成 MongoDB 集群的搭建,需要创建如下三个资源对象。
一个 StorageClass,用于 StatefulSet 自动为各个应用 Pod 申请 PVC。
一个 Headless Service,用于维护 MongoDB 集群的状态。
一个 StatefulSet。
首先,保证拥有一个 StorageClass 对象。在 Ceph 中已经创建。
mongo-sidecar 作为 MongDB 集群的管理者,将使用此 Headless Service 来维护各个 MongoDB 示例之间的集群关系,以及集群规模变化时的自动更新。
mongo-headless-service.yaml
apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
clusterIP: None
selector:
role: mongo
配置 mongo statefulset 配置文件:
statefulset-mongo.yaml
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
spec:
serviceName: "mongo"
replicas: 3
template:
metadata:
role: mongo
environment: test
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo
command:
- mongod
- "--replSet"
- rs0
- "--smallfiles"
- "--noprealloc"
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
- name: mongo-sidecar
image: cvallance/mongo-k8s-sidecar
env:
|