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 ...
随机推荐
- Linux directory tree
Linux directory tree https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://en.wikipedi ...
- Redux Middleware All in One
Redux Middleware All in One https://redux.js.org/advanced/middleware https://redux.js.org/api/applym ...
- leetcode bug & 9. Palindrome Number
leetcode bug & 9. Palindrome Number bug shit bug "use strict"; /** * * @author xgqfrms ...
- Taro 物料市场
Taro 物料市场 taro component demo https://taro-ext.jd.com/ https://taro-ext.jd.com/plugin/view/5caab6c68 ...
- JULLIAN MURPHY:拥有良好的心态,运气福气便会自来
JULLIAN MURPHY是星盟全球投资公司的基金预审经理,负责星盟投资项目预审,有着资深的基金管理经验,并且在区块链应用的兴起中投资了多个应用区块链技术的公司. JULLIAN MURPHY认为往 ...
- Fast-RTPS简介
RTPS即DDS中的主要核心通信部分.它提供实时高效的去中心化publish/subscribe通信机制.是ROS-2的核心底层通信组件,也是未来机器人/无人驾驶领域一个必然的方向. 资料参考: ht ...
- FTP服务器搭建以及上传下载的学习
首先需要搭建FTP服务步骤如下: 1.在win7上先开启ftp服务:这里点击确定后,可能会要等一会儿,完成后有时系统会提示重启 2.打开 计算机-->管理--> 在这里我们可以看见 ...
- 微信小程序:如何实现两个按钮在最右侧并排
要实现的效果: wxml端代码: <view class="prepare_param"> <view clas ...
- 微信的两种access_token总结,不能混淆
大家需要弄清楚微信的网页授权token和公众号api调用授权token. 1.网页授权access_token 1.有效期:7200ms 2.微信网页授权是通过OAuth2.0机制实现的,在用户授权给 ...
- 学习java之基础语法(一)
学习java之基础语法(一) 基本语法 编写 Java 程序时,应注意以下几点: 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说 ...