本文主要是介绍k8s部署MongDB全过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接...
一、环境准备
1.1 环境说明
本文搭建MongoDB,基于WMware虚拟机,操作系统Centos 8,且已经基于Kubeadm搭好了k8s集群,k8s节点信息如下:
服务器 | IP地址 |
master | 192.168.31.80 |
node1 | 192.168.31.8 |
node2 | 192.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-secret namespace: mongdb type: Opaque data: # echo -n 'username' | base64 mongo-root-username: cm9vdA== # echo -n 'pajavascriptsswpythonord' | base64 mongo-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-service namespace: mongdb spec: type: NodePort selector: app: mongodb ports: - protocol: TCP port: 27017 targetPort: 27017 nodePort: 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-deployment namespace: mongdb labels: app: mongodb spec: replicas: 1 selector: matchLabels: app: mongodb template: metadata: labels: app: mongodb spec: containers: - name: mongodb imChina编程age: mongo ports: - containerPort: 21017 env: - name: MONGO_INITDB_ROOT_USERNAME valueFrom: secretKeyRef: name: mongodb-secret key: mongo-root-username - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: mongodb-secret key: mongo-root-password volumeMounts: - name: mongodb-storage mounhttp://www.chinasem.cntPath: /data/db volumes: - name: mongodb-storage emptyDir: {}
4.3 执行名称生成Deployment
kubectl create -f mongodb-deployment.yaml
五、测试
从上面两个图片可以看出,MongoDB服务的外网IP是192.168.31.8,端口是30017,是mongodb-server.yaml中的nodePort指定的;我们使用Rophpbo 3T 这个工具,测试是否能正常连接和使用。
从上图中,我们已经可以看出,我们部署成功了,而且也通过连接工具成功连接上来使用。
总结
这篇关于k8s部署MongDB全过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!