程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 kubernetes 之外的 statefulset 中公开 mongodb大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 kubernetes 之外的 statefulset 中公开 mongodb?

开发过程中遇到如何在 kubernetes 之外的 statefulset 中公开 mongodb的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 kubernetes 之外的 statefulset 中公开 mongodb的解决方法建议,希望对你解决如何在 kubernetes 之外的 statefulset 中公开 mongodb有所启发或帮助;

我的 webprotege StatefulSet 有以下配置。

APIVersion: apps/v1
kind: StatefulSet
Metadata:
   name: webprotege-test
   labels:
      app: webprotege-test
spec:
   servicename: "webprotege-service-test"
   volumeClaimTemplates:
   - Metadata:
       name: data
     spec:
       accessModes: [ "ReaDWriteOnce" ]
       resources:
         requests:
           storage: 20Gi
   replicas: 1
   SELEctor:
      matchLabels:
         app: webprotege-test
   template:
      Metadata:
         labels:
            app: webprotege-test
      spec:
         containers:
         #
         # webprotege app
         - name: webprotege-test
           #image: alexmilowski/allegrograph-kubernetes:latest
           image: testwebprotege:4.0.2
           # Wait for database. checks that the db is Listening on port 27017.
           command: ["/bin/sh"]
           args: ["-c","for i in {1..20}; do if nc -z localhost 27017; then catalina.sh run; fi; echo 'waiTing for database...'; sleep 2; done; exit 1"]
           volumeMounts:
           - name: data
             mountPath: /srv/webprotege
           ports:
           - containerPort: 8080
             name: webprotege-http
           env:
           - name: webprotege.mongodb.host
             value: localhost
         #
         # mongodb
         - name: wpmongo-test
           image: mongo:4.1-bionic
           volumeMounts:
           - name: data
             mountPath: /data/db

我想使用 mongodb 客户端访问 kubernetes 之外的 mongo DB 容器。如何将 mongodb 公开给 kubernetes 集群之外的客户端。我曾尝试添加一个 containerPort,但这似乎不起作用。

解决方法

有多种方式可以公开您的服务。使用哪一种取决于您的用例。

根据 the documentation,以下是在集群外公开 mongo DB pod 的 2 种可能方法:

  • NodePort - 使用 NAT 在集群中每个选定节点的相同端口上公开服务。使用 : 从集群外部访问服务。 ClusterIP 的超集。
  • LoadBalancer - 在当前云中创建一个外部负载平衡器(如果支持)并为服务分配一个固定的外部 IP。 NodePort 的超集。

请注意,您需要在支持 LoadBalancers 的环境中运行集群才能使用它们。这通常意味着在受支持的云提供商(AWS、Azure、Google Cloud、Digital Ocean 等)或专门配置为支持负载均衡器的本地集群中运行。

大佬总结

以上是大佬教程为你收集整理的如何在 kubernetes 之外的 statefulset 中公开 mongodb全部内容,希望文章能够帮你解决如何在 kubernetes 之外的 statefulset 中公开 mongodb所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。