ZBLOG

在k8s上使用statefulset部署一个mongodb使用secret设置账号密码,账号testuser密码testpassword,请编写对应的代码,要求全部使用yaml文件,不许使用命令行

以下是在 Kubernetes 上使用 StatefulSet 部署 MongoDB 并设置用户名和密码的 YAML 文件配置:

  1. 创建一个名为 mongo-secret 的 Secret,其中包含用于身份验证的用户名和密码。将以下内容保存为 mongo-secret.yaml
   apiVersion: v1
   kind: Secret
   metadata:
     name: mongo-secret
   type: Opaque
   data:
     username: dGVzdHVzZXI= # 使用 base64 编码后的用户名 "testuser"。
     password: dGVzdHBhc3N3b3Jk # 使用 base64 编码后的密码 "testpassword"。
  1. 创建以下 YAML 文件并保存为 mongodb-statefulset.yaml
   apiVersion: apps/v1
   kind: StatefulSet
   metadata:
     name: mongodb
     labels:
       app: mongodb
   spec:
     serviceName: mongodb-service
     replicas: 3 # 适当调整数量以适合您的需求。
     selector:
       matchLabels:
         app: mongodb
     template:
       metadata:
         labels:
           app: mongodb
       spec:
         containers:
           - name: mongodb-container
             image: mongo
             ports:
               - containerPort: 27017 # MongoDB 默认端口号。
             volumeMounts:
               - name: mongo-persistent-storage # 持久化存储卷名称。
                 mountPath: /data/db # 数据库文件将存储在此目录下。
             envFrom:
               - secretRef:
                   name: mongo-secret # 引用上述创建的 Secret。
         volumes:
           - name: mongo-persistent-storage # 持久化存储卷名称。
             persistentVolumeClaim:
               claimName: mongo-pvc # 数据库数据将存储在此 PVC 中,需要提前创建好。
  1. 创建名为 mongo-pvc 的 PersistentVolumeClaim(PVC),该 PVC 将用于持久化 MongoDB 数据。将以下内容保存为 mongo-pvc.yaml
   apiVersion: v1
   kind: PersistentVolumeClaim
   metadata:
     name: mongo-pvc
   spec:
     accessModes:
       - ReadWriteOnce # 仅允许单个 Pod 以读写模式访问此 PVC。
     resources:
       requests:
         storage: 1Gi # 您可以适当调整容量以适合您的需求。
  1. 运行以下命令来创建 StatefulSet 和 PVC:
   kubectl apply -f mongo-secret.yaml
   kubectl apply -f mongodb-statefulset.yaml
   kubectl apply -f mongo-pvc.yaml
  1. 等待 StatefulSet 和 PVC 创建完成并运行成功。您可以使用以下命令检查它们的状态:
   kubectl get statefulsets,pvc, pods -l app=mongodb
  1. 使用以下命令连接到 MongoDB 实例,然后验证用户名和密码是否正常工作:

    kubectl run --rm -it mongo-client --image=mongo --restart=Never mongo -- mongo mongodb-service/testuser?authSource=mydb -u testuser -p testpassword
    
  2. 在 mongoshell 中,输入以下命令确认您已经成功连接到 MongoDB 并已通过身份验证:

    db.runCommand({ connectionStatus: 1 })
    
  3. 如果一切正常,请退出 mongoshell。

  4. 要删除部署,请使用以下命令:

    kubectl delete statefulset,pvc,service,secret -l app=mongodb
    

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6315

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?