k8s部署MongDB全过程

 更新时间:2025年01月20日 10:14:31   作者:夜夜流光相皎洁_小宁  
文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接

一、环境准备

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-secret
  namespace: mongdb
type: Opaque
data:
  # echo -n 'username' | base64
  mongo-root-username: cm9vdA==
  # echo -n 'password' | 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
          image: 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
              mountPath: /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指定的;我们使用Robo 3T 这个工具,测试是否能正常连接和使用。

从上图中,我们已经可以看出,我们部署成功了,而且也通过连接工具成功连接上来使用。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java如何使用命令查看内存占用情况

    Java如何使用命令查看内存占用情况

    jhat是一个用于分析Java堆转储文件的工具,通过启动Web服务器并加载堆转储文件,可以在浏览器中查看占用最多内存的类及其详细信息
    2025-02-02
  • SpringBoot配置Access-Control-Allow-Origin教程

    SpringBoot配置Access-Control-Allow-Origin教程

    文章介绍了三种配置Spring Boot跨域访问的方法:1. 使用过滤器;2. 在WebConfig配置文件中设置;3. 通过注解配置,作者分享了个人经验,并鼓励读者支持脚本之家
    2025-03-03
  • 详解Spring Security中权限注解的使用

    详解Spring Security中权限注解的使用

    这篇文章主要为大家详细介绍一下Spring Security中权限注解的使用方法,文中的示例代码讲解详细,对我们学习或工作有一定参考价值,需要的可以参考一下
    2022-05-05
  • SpringBoot整合MyCat实现读写分离的方法

    SpringBoot整合MyCat实现读写分离的方法

    这篇文章主要介绍了SpringBoot整合MyCat实现读写分离的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Spring Cloud之服务监控turbine的示例

    Spring Cloud之服务监控turbine的示例

    这篇文章主要介绍了Spring Cloud之服务监控turbine的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • JDK1.8中的ConcurrentHashMap源码分析

    JDK1.8中的ConcurrentHashMap源码分析

    这篇文章主要介绍了JDK1.8中的ConcurrentHashMap源码分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • java使用httpclient发送post请求示例

    java使用httpclient发送post请求示例

    这篇文章主要介绍了java使用httpclient发送post请求示例,依赖JSON、HTTPClient等jar包,需要的朋友可以参考下
    2014-02-02
  • 项目管理利器-Maven(Windows安装)图文教程

    项目管理利器-Maven(Windows安装)图文教程

    下面小编就为大家带来一篇项目管理利器-Maven(Windows安装)图文教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • bootstrap实现多个下拉框同时搜索的实例

    bootstrap实现多个下拉框同时搜索的实例

    下面小编就为大家带来一篇bootstrap实现多个下拉框同时搜索的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Spring中集成Groovy的四种方式(小结)

    Spring中集成Groovy的四种方式(小结)

    这篇文章主要介绍了Spring中集成Groovy的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论