kubernetes使用statefulset部署mongoDB 单机版 自定义配置文件、密码等
注:
docker版的mongo移除了默认的/etc/mongo.conf, 修改了db数据存储路径为 /data/db.
创建configmap配置,注意不能加fork=true,否则Pod会变成Completed。
存储:aliyun nas
svc: ClusterIP ? Headless Service ?
资源清单
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-conf
namespace: zisefeizhu
data:
mongodb.conf: |
dbpath=/data/zisefeizhu/mongodb
logpath=/data/zisefeizhu/mongodb/mongodb.log
pidfilepath=/data/zisefeizhu/mongodb/master.pid
directoryperdb=true
logappend=true
bind_ip=0.0.0.0
port=27017
storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: mongodb
namespace: zisefeizhu
mountOptions:
- nolock,tcp,noresvport
- vers=3
parameters:
volumeAs: subpath
server: "7131dxxxxxxxxxxxxxxxxxxxxxxcs.com:/mongodb/"
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Retain
svc.yaml
kind: Service
apiVersion: v1
metadata:
labels:
name: mongodb
name: mongodb
namespace: zisefeizhu
spec:
type: ClusterIP
ports:
- name: mongodb
port: 27017
targetPort: 27017
selector:
name: mongodb
statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongodb
namespace: zisefeizhu
spec:
replicas: 1
podManagementPolicy: OrderedReady #按照顺序启动或者终止Pod
serviceName: mongodb
selector:
matchLabels:
name: mongodb
template:
metadata:
labels:
name: mongodb
spec:
containers:
- name: mongodb
image: mongo:4.2.1
command:
- sh
- -c
- "exec mongod -f /data/zisefeizhu/mongodb/conf/mongodb.conf"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 27017
name: mongodb
protocol: TCP
volumeMounts:
- name: mongodb-config
mountPath: /data/zisefeizhu/mongodb/conf/
- name: data
mountPath: /data/zisefeizhu/mongodb/
volumes:
- name: mongodb-config
configMap:
name: mongodb-conf
volumeClaimTemplates: #定义创建PVC使用的模板
- metadata:
name: data
annotations: #这是指定storageclass
volume.beta.kubernetes.io/storage-class: mongodb
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi
测试
# ctl get pods -n zisefeizhu | grep mongodb
mongodb-0 1/1 Running 0 25m
连接
ctl exec -it mongodb-0 -n zisefeizhu -- mongo
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("de51ecc8-ce78-4e4d-8107-662f3adb0e77") }
MongoDB server version: 4.2.1
Server has startup warnings:
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten]
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten]
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten]
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2021-03-29T07:18:24.047+0000 I CONTROL [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
kubernetes使用statefulset部署mongoDB 单机版 自定义配置文件、密码等的更多相关文章
- kubernetes之StatefulSet部署zk和kafka
前提 至少需要三个node节点,否则修改亲和性配置 如果外部访问,需要自己暴露 需要有个storageClass,这样做的原因是避免手动创建pv了 部署zk和kafka 参考: https://www ...
- 为首次部署MongoDB做好准备:容量计划和监控
如果你已经完成了自己新的MongoDB应用程序的开发,并且现在正准备将它部署进产品中,那么你和你的运营团队需要讨论一些关键的问题: 最佳部署实践是什么? 为了确保应用程序满足它所必须的服务层次我们需要 ...
- (转)为首次部署MongoDB做好准备:容量计划和监控
如果你已经完成了自己新的MongoDB应用程序的开发,并且现在正准备将它部署进产品中,那么你和你的运营团队需要讨论一些关键的问题: 最佳部署实践是什么? 为了确保应用程序满足它所必须的服务层次我们需要 ...
- docker 部署 mongodb 并且开启远程连接
mongodb 使用 docker 部署 mongodb 拉取镜像 docker pull mongo 可以查看镜像是否下载成功 docker images | grep mongo 应该会有如下的显 ...
- kubernetes集群部署
鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...
- Kubernetes集群部署关键知识总结
Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...
- Spring Boot2.0自定义配置文件使用
声明: spring boot 1.5 以后,ConfigurationProperties取消locations属性,因此采用PropertySource注解配合使用 根据Spring Boot2. ...
- 基于Kubernetes集群部署skyDNS服务
目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...
- Kubernetes集群部署之四Master节点部署
Kubernetes Master节点部署三个服务:kube-apiserver.kube-controller-manager.kube-scheduler和一个命令工具kubectl. Maste ...
随机推荐
- 来必力 & Disqus
来必力 & Disqus 正在载入来必力 https://livere.com 个人博客-双评论系统(来必力与Disqus) https://tianbozhang.coding.me/com ...
- array auto slice
array auto slice https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Ar ...
- PM2 in depth
PM2 in depth ecosystem.config.js module.exports = { apps : [{ name: "app", script: ". ...
- Web Animations API & SVG & requestAnimationFrame
Web Animations API WWAPI https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API https:/ ...
- 基本的DOS命令
基本的DOS命令 打开CMD的方法 菜单+系统+命令提示符 WIN+R后输入CMD 桌面或文件夹任意位置按住SHIFT后鼠标右键 常见的DOS命令 #盘符切换 直接输入要切换的盘符名称 如输入&quo ...
- 【转】【机器人学:运动规划】OMPL开源运动规划库的安装和demo
https://blog.csdn.net/gpeng832/article/details/73736225
- AtCoder Beginner Contest 192 F - Potion
题目链接 点我跳转 题目大意 给定 \(N\) 个物品和一个 \(X\) ,第 \(i\) 个物品的重量为 \(ai\),你可以从中选择任意个物品(不能不选) 假定选择了 \(S\) 个物品,物品的总 ...
- Java并发包源码学习系列:同步组件Semaphore源码解析
目录 Semaphore概述及案例学习 类图结构及重要字段 void acquire() 非公平 公平策略 void acquire(int permits) void acquireUninterr ...
- 处理ios键盘弹出按钮点击click失效
用ontouchstart绑定事件即可,然后用 document.activeElement.blur();让键盘收起 this.value = value.replace(/\s/g, " ...
- JUC学习
JUC是java.util.concurrent包 并发编程的工具包 并发.并行 并发:多线程操作一个资源 并行:多人一起走 并发编程的本质:充分利用cpu的资源 线程的几个状态 新建 运行 堵塞 等 ...