基于k8s部署MongDB

一、环境准备

1.1 环境说明

本文搭建MongoDB,基于WMware虚拟机,操作系统CentOS 8,且已经基于Kubeadm搭好了k8s集群,k8s节点信息如下:

服务器IP地址
master192.168.31.80
node1192.168.31.8
node2192.168.31.9

如需知道k8s集群搭建,可跳转我的文章《kubeadm部署k8s集群》查看。

1.2 创建 namespace

kubectl create ns mongdb

1.3 创建mongdb账号/密码

echo -n 'root' | base64
# cm9vdA==
echo -n 'xiaoning' | base64
# eGlhb25pbmc=# 可自行修改为自己的账号密码,同时注意保存好,下文中创建Secret需要

二、创建Secret

Kubernetes专门有一种资源叫做Secret,用来解决密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露PodTemplate的Spec信息中。Secret也分三种类型,今天我们使用的是Opaque类型的Secret,它以base64编码格式存储密码、密钥等信息。

2.1 定义Secret 文件

cat > mongo-secret.yaml

2.2 生成mongo-secret.yaml

apiVersion: v1
kind: Secret
metadata:name: mongodb-secretnamespace: mongdb
type: Opaque
data:# echo -n 'username' | base64mongo-root-username: cm9vdA==# echo -n 'password' | base64mongo-root-password: eGlhb25pbmc=

2.3 执行命令,生成Secret资源

kubectl create -f mongo-secret.yaml

三、创建mongodb服务

3.1 定义 MongoDB服务

cat > mongodb-server.yaml

3.2 生成mongodb-server.yaml

apiVersion: v1
kind: Service
metadata:name: mongodb-servicenamespace: mongdb
spec:type: NodePortselector:app: mongodbports:- protocol: TCPport: 27017targetPort: 27017nodePort: 30017

3.3 执行命令生成Service

kubectl create -f mongodb-server.yaml

四、创建Deployment

4.1 定义Deployment 服务

cat > mongodb-deployment.yaml

4.2 生成mongodb-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: mongodb-deploymentnamespace: mongdblabels:app: mongodb
spec:replicas: 1selector:matchLabels:app: mongodbtemplate:metadata:labels:app: mongodbspec:containers:- name: mongodbimage: mongoports:- containerPort: 21017env:- name: MONGO_INITDB_ROOT_USERNAMEvalueFrom:secretKeyRef:name: mongodb-secretkey: mongo-root-username- name: MONGO_INITDB_ROOT_PASSWORDvalueFrom:secretKeyRef:name: mongodb-secretkey: mongo-root-passwordvolumeMounts:- name: mongodb-storagemountPath: /data/dbvolumes:- name: mongodb-storageemptyDir: {}

4.3 执行名称生成Deployment

kubectl create -f mongodb-deployment.yaml

五、测试

 

 

 从上面两个图片可以看出,MongoDB服务的外网IP是192.168.31.8,端口是30017,是mongodb-server.yaml中的nodePort指定的;我们使用Robo 3T 这个工具,测试是否能正常连接和使用。

 

 

 

从上图中,我们已经可以看出,我们部署成功了,而且也通过连接工具成功连接上来使用。好了,本次k8s部署MongoDB的分享就到这里!

如果觉得本文对您有帮助,欢迎点赞+收藏+关注!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部