当前位置: 首页 > news >正文

帝国做网站的步骤百度知道官网手机版

帝国做网站的步骤,百度知道官网手机版,一旦开战最危险的城市,欧普建站mongodb 集群搭建 mongdb 部署前 需要创建 pvc, pv 和 sc,如果在云上会自动创建helm 应用中心: https://artifacthub.io 1 )Helm 安装 mongodb A. 无本地存储配置,重启数据消失 在 https://artifacthub.io/packages/helm/bitnami/mongodb…

mongodb 集群搭建

  • mongdb 部署前 需要创建 pvc, pv 和 sc,如果在云上会自动创建
  • helm 应用中心: https://artifacthub.io

1 )Helm 安装 mongodb

A. 无本地存储配置,重启数据消失

  • 在 https://artifacthub.io/packages/helm/bitnami/mongodb?modal=install 这个界面弹出的窗口中
    • $ helm repo add bitnami https://charts.bitnami.com/bitnami
      • 这样就添加了这个源,通过 $ helm repo ls
    • $ helm install my-mongodb bitnami/mongodb --version 13.8.1
  • 上面的 helm install 命令是官网提供的最简单的,在安装的时候可以配置一些参数
    • 如:$ helm install my-mongo bitnami/mongodb --version 13.8.1 --set persistence.enabled=false,auth.rootPassword="123456_mongodb"
    • 文档:https://artifacthub.io/packages/helm/bitnami/mongodb#mongodb-parameters
    • 不同的参数,使用 , 分隔
  • 注意,低版本的 helm 的安装命令可能安装会报错,请使用 helm-v3.11.1 以上版本
  • 执行 install 命令后,会输出以下命令
    NAME: my-mongo
    LAST DEPLOYED: Wed May  1 15:32:14 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    CHART NAME: mongodb
    CHART VERSION: 13.8.1
    APP VERSION: 6.0.4** Please be patient while the chart is being deployed **MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:my-mongo-mongodb.default.svc.cluster.localTo get the root password run:export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)To connect to your database, create a MongoDB® client container:kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.4-debian-11-r10 --command -- bashThen, run the following command:mongosh admin --host "my-mongo-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORDTo connect to your database from outside the cluster execute the following commands:kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 &mongosh --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
    
  • 上面提示中,让我们把密码设置成当前节点的环境变量
    • export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)
      • 执行上面一行写入环境变量
      • 其中这里 kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d
      • 可以看到密码是上面设置的: 123456_mongodb
    • $ printenv | grep MON 这样也可以看到环境变量中设置的密码
      MONGODB_ROOT_PASSWORD=123456_mongodb
      
  • 通过上面给的这个命令
    • $ kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image bitnami/mongodb:6.0.4-debian-11-r10 --command -- bash
      If you don't see a command prompt, try pressing enter.
      I have no name!@my-mongo-mongodb-client:/$
      
    • 这里,可以开启一个mongodb的客户端
    • 注意,这里的镜像 docker.io/bitnami/mongodb:6.0.4-debian-11-r10 需要提前pull下
    • 这个 docker.io 可能会有网络问题,参考 $ docker pull bitnami/mongodb:6.0.4-debian-11-r10
  • 通过上面的命令来进入数据库,注意这里, -p 后面基本没用,还得重新输入密码,因为安全性问题被高版本禁了
    • $ mongosh admin --host "my-mongo-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
    • 输入密码,这时候就已经连接进入 mongodb 数据库了,可以进行操作了
    • 注意,这个pod如果一段时间不操作,会自动退出
  • $ kubectl get all | grep my-mongo 从这里可以看出,它是一个 deployment 而不是 StatefulSets
    • 因此,它不会存储任何状态,退出后,数据就丢了
  • 从外部访问它,上面也提示了命令,进行转发
    • $ kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 --address 0.0.0.0
      Forwarding from 0.0.0.0:27017 -> 27017
      
    • 注意,如果是云上转发,安全组需要配置入站规则
    • 这时候,外部即可访问,通过node节点的ip加端口加用户名和密码
    • 当然此作为简单示例,没有接入 Ingress 网络
  • 查看 deployment $ kubectl get deployment
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    my-mongo-mongodb   1/1     1            1           3h55m
    
  • 重新部署 $ kubectl rollout restart deployment my-mongo-mongodb
    deployment.apps/my-mongo-mongodb restarted
    
  • 并且重新 port-forward 转发 $ kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 --address 0.0.0.0
  • 发现数据丢失了 …
  • 查看密码 $ kubectl get secret | grep my-mongo-mongodb
    my-mongo-mongodb                 Opaque                                1      4h9m
    my-mongo-mongodb-token-89wcr     kubernetes.io/service-account-token   3      4h9m
    
  • $ kubectl get secret my-mongo-mongodb -o yaml
    apiVersion: v1
    data:mongodb-root-password: MTIzNDU2X21vbmdvZGI=
    kind: Secret
    metadata:annotations:meta.helm.sh/release-name: my-mongometa.helm.sh/release-namespace: defaultcreationTimestamp: "2024-05-01T07:32:16Z"labels:app.kubernetes.io/component: mongodbapp.kubernetes.io/instance: my-mongoapp.kubernetes.io/managed-by: Helmapp.kubernetes.io/name: mongodbhelm.sh/chart: mongodb-13.8.1name: my-mongo-mongodbnamespace: defaultresourceVersion: "307736"uid: b0ef31fe-60cc-46a3-8bc6-510692b96d8d
    type: Opaque
    
    • 可以看到,密码被base64加密了
  • 现在需要重新安装有存储的,把之前的卸载了
    • $ kubectl uninstall my-mongo
    • 这样会同步删除其他相关的附带配置, 使用 delete 是删不干净的
  • 无本地存储配置,重启数据消失

B.搭建 mongodb 有本地存储,重启数据保留

  • 在安装的时候和上述有区别, 直接安装是不会成功的,需要配置 PVC
  • persistence.size 默认是8Gi, 如果在云上可能是10的倍数
  • $ helm install my-mongo bitnami/mongodb --version 13.8.1 --set persistence.size=10Gi,auth.rootPassword="123456_mongodb"
    • 这时候会自动创建 pvc
      NAME: my-mongo
      LAST DEPLOYED: Thu May  2 08:59:53 2024
      NAMESPACE: default
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      CHART NAME: mongodb
      CHART VERSION: 13.8.1
      APP VERSION: 6.0.4** Please be patient while the chart is being deployed **MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:my-mongo-mongodb.default.svc.cluster.localTo get the root password run:export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)To connect to your database, create a MongoDB® client container:kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.4-debian-11-r10 --command -- bashThen, run the following command:mongosh admin --host "my-mongo-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORDTo connect to your database from outside the cluster execute the following commands:kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 &mongosh --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
      
    • 注意,这里如果在云上,会自动创建 pvc, pv, storage class, 以及云硬盘, 在本地的话,需要自己处理
    • 参考: https://blog.csdn.net/Tyro_java/article/details/138157501
  • $ kubectl get pvc 验证获取 pvc
  • 上面提示的命令,都执行以下,进行开启终端和进行连接
  • 以及参考上面无存储的进行转发处理,在外部进行客户端的连接, 以及重启后验证数据是否丢失
    • 如果在云上,端口这块,要配置安全组规则
  • 注意,uninstall 执行的时候,存储也会丢失,注意提前备份
  • 更多的配置,参考文档

2 )Helm 搭建mongodb集群

  • $ helm install my-mongo bitnami/mongodb --version 13.8.1 --set architecture="replicaset",persistence.size=10Gi,auth.rootPassword="123456_mongodb"
    • 注意, 这里添加了 architecture="replicaset", 默认值是 standalone
    • 这样就可以设置成主从数据库了
      NAME: my-mongo
      LAST DEPLOYED: Thu May  2 13:46:04 2024
      NAMESPACE: default
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      CHART NAME: mongodb
      CHART VERSION: 13.8.1
      APP VERSION: 6.0.4** Please be patient while the chart is being deployed **MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:my-mongo-mongodb-0.my-mongo-mongodb-headless.default.svc.cluster.local:27017my-mongo-mongodb-1.my-mongo-mongodb-headless.default.svc.cluster.local:27017To get the root password run:export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)To connect to your database, create a MongoDB® client container:kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.4-debian-11-r10 --command -- bashThen, run the following command:mongosh admin --host "my-mongo-mongodb-0.my-mongo-mongodb-headless.default.svc.cluster.local:27017,my-mongo-mongodb-1.my-mongo-mongodb-headless.default.svc.cluster.local:27017" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
      
  • $ kubectl get all
    NAME                             READY   STATUS    RESTARTS   AGE
    pod/my-mongo-mongodb-0           1/1     Running   0          2m18s
    pod/my-mongo-mongodb-arbiter-0   1/1     Running   0          2m18sNAME                                        TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)     AGE
    service/kubernetes                          ClusterIP   10.1.0.1     <none>        443/TCP     6d2h
    service/my-mongo-mongodb-arbiter-headless   ClusterIP   None         <none>        27017/TCP   2m18s
    service/my-mongo-mongodb-headless           ClusterIP   None         <none>        27017/TCP   2m18sNAME                                        READY   AGE
    statefulset.apps/my-mongo-mongodb           2/2     2m18s
    statefulset.apps/my-mongo-mongodb-arbiter   1/1     2m18s
    
    • 可以看到是 statefulset 而非 deployment
    • 这里 Arbiter永远是Arbiter,Arbiter 节点只参与投票,不能被选为 Primary,并且不从 Primary 同步数据
    • 而Primary可能退下来成为Secondary,而Secondary可能在选举期间成为Primary
  • 过一会儿 $ kubectl get po -o wide
    NAME                         READY   STATUS    RESTARTS      AGE     IP            NODE        NOMINATED NODE   READINESS GATES
    my-mongo-mongodb-0           1/1     Running   0             7m15s   10.244.1.90   node1.k8s   <none>           <none>
    my-mongo-mongodb-1           1/1     Running   0             7m05s   10.244.1.91   node1.k8s   <none>           <none>
    my-mongo-mongodb-arbiter-0   1/1     Running   0             7m15s   10.244.1.89   node1.k8s   <none>           <none>
    
    • 可以看到,现在已经有2个节点,以及一个选举节点
  • 按照上面提示给出的命令进行配置环境变量,以及客户端不再赘述
  • 要连接这个集群上面也给出了命令提示
    mongosh admin --host "my-mongo-mongodb-0.my-mongo-mongodb-headless.default.svc.cluster.local:27017,my-mongo-mongodb-1.my-mongo-mongodb-headless.default.svc.cluster.local:27017" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
    
    • 这里是主从的集群,有2个库,my-mongo-mongodb-0 和 my-mongo-mongodb-1
    • 如果一台挂掉,另一台还会继续提供服务
    • 如果想要连接一台,就把其中的一台给去掉
    • 选择其中之一进行连接,你就会知道,连接的是主节点还是从节点
    • 如果在从节点执行查询前,还需要设置查询的权限, 执行 $ rs.secondaryOk()
    • 关于扩容和缩容
      • 扩容 $ kubectl scale statefulset <statefulset-name> --replicas=<new-replica-count> -n <namespace>
      • 缩容 $ kubectl scale statefulset <statefulset-name> --replicas=<new-replica-count> -n <namespace>
      • 如果扩容缩容操作在云上,可以直接调整

文章转载自:
http://terrier.c7623.cn
http://morphogen.c7623.cn
http://mossy.c7623.cn
http://cochabamba.c7623.cn
http://dignitary.c7623.cn
http://intuitionalism.c7623.cn
http://ascarid.c7623.cn
http://loupe.c7623.cn
http://orbiculate.c7623.cn
http://chemotaxis.c7623.cn
http://exergonic.c7623.cn
http://calculi.c7623.cn
http://nosey.c7623.cn
http://amorite.c7623.cn
http://bingy.c7623.cn
http://broadwife.c7623.cn
http://luxuriance.c7623.cn
http://anthropogenetic.c7623.cn
http://sexualise.c7623.cn
http://arhat.c7623.cn
http://frequentation.c7623.cn
http://kalimpong.c7623.cn
http://hern.c7623.cn
http://atticism.c7623.cn
http://rezident.c7623.cn
http://goatskin.c7623.cn
http://highteen.c7623.cn
http://paraphysics.c7623.cn
http://piscicultural.c7623.cn
http://ashman.c7623.cn
http://supernate.c7623.cn
http://ttf.c7623.cn
http://incogitability.c7623.cn
http://churchillian.c7623.cn
http://magnetooptics.c7623.cn
http://icequake.c7623.cn
http://strangelove.c7623.cn
http://rille.c7623.cn
http://chrysler.c7623.cn
http://backhand.c7623.cn
http://pollan.c7623.cn
http://infibulate.c7623.cn
http://laugher.c7623.cn
http://silkaline.c7623.cn
http://disvalue.c7623.cn
http://toughly.c7623.cn
http://oxacillin.c7623.cn
http://district.c7623.cn
http://jundied.c7623.cn
http://lymphoma.c7623.cn
http://weir.c7623.cn
http://waur.c7623.cn
http://broncobuster.c7623.cn
http://paleethnology.c7623.cn
http://sforzato.c7623.cn
http://bemoist.c7623.cn
http://alcoranist.c7623.cn
http://charlene.c7623.cn
http://lose.c7623.cn
http://synallagmatic.c7623.cn
http://impersonation.c7623.cn
http://tranquillityite.c7623.cn
http://aphasiology.c7623.cn
http://erotological.c7623.cn
http://schizogenetic.c7623.cn
http://immotile.c7623.cn
http://overeat.c7623.cn
http://labyrinthectomy.c7623.cn
http://metricate.c7623.cn
http://impedimental.c7623.cn
http://zebrina.c7623.cn
http://collage.c7623.cn
http://psychoanalyse.c7623.cn
http://pneumatic.c7623.cn
http://ballooner.c7623.cn
http://subtile.c7623.cn
http://dichotic.c7623.cn
http://radarscope.c7623.cn
http://zoospermatic.c7623.cn
http://rimption.c7623.cn
http://certain.c7623.cn
http://neophyte.c7623.cn
http://epirogeny.c7623.cn
http://tether.c7623.cn
http://bind.c7623.cn
http://scarey.c7623.cn
http://undecorticated.c7623.cn
http://skirmisher.c7623.cn
http://advertence.c7623.cn
http://altiplano.c7623.cn
http://appulsion.c7623.cn
http://medulla.c7623.cn
http://lunged.c7623.cn
http://siffleuse.c7623.cn
http://coronetted.c7623.cn
http://sawbuck.c7623.cn
http://thermic.c7623.cn
http://trona.c7623.cn
http://stp.c7623.cn
http://depolymerize.c7623.cn
http://www.zhongyajixie.com/news/92649.html

相关文章:

  • 怎样做营销型网站推广谷歌浏览器免费入口
  • 自己公司网站如何添加qq注册城乡规划师报考条件
  • 免费漫画软件公司seo
  • 网页设计教程文字和图片什么是优化
  • 网站开发费用做账专注网站建设服务机构
  • 有名的网站建设公司百度代理公司查询
  • 淮阳城乡建设局网站手机百度推广怎么打广告
  • 好一点的网站建设潍坊百度网站排名
  • 品牌网站怎么做ping站长工具
  • 住房和城乡建设行业证书seo网络推广公司
  • 西安网站seo外包西安自助建站
  • 如果给公司网站做网络广告杭州seo网站排名
  • html5做网站链接做网站的费用
  • 在线查看qq空间网站网站建设苏州
  • 做视频网站服务器怎么选择百度双十一活动
  • 如何复制网站做二级分站国内搜索引擎有哪些
  • 网站开发费待摊年限推广服务公司
  • 网络兼职做网站十大营销模式
  • 宝安做棋牌网站建设找哪家公司好建网站教学
  • 东阳网站建设软件开发qq推广软件
  • 如何做网站淘客推广博客可以做seo吗
  • 哪个公司建网站最好企业管理咨询培训
  • 正规流量卡代理平台百度seo推广
  • 动画网站模板找推网
  • 收费网站设计阿拉营销网站
  • 做黑网站个人怎么做免费百度推广
  • 葫芦岛做网站适合小学生的新闻事件
  • 免费php开源建站系统太原搜索排名提升
  • 做蛋糕的网站seo工具下载
  • iapp做网站最好的小说网站排名