gpt4 book ai didi

mongodb - Kubernetes MongoDB 自动缩放

转载 作者:行者123 更新时间:2023-12-03 15:59:33 30 4
gpt4 key购买 nike

我已经在我的 k8s 集群中部署了有状态的 mongodb 设置。每次扩展新的 pod 时,我都需要使用 rs.add() 命令从 mongodb 控制台添加 pod。有什么方法可以编排这个吗?..另外,如何在 k8s 集群之外公开我的 mongodb 服务。.将服务类型更改为 nodeport 对我来说不起作用..请帮忙。

下面给出了我用来部署 mongodb 的有状态 yaml 文件。

apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
clusterIP: None
selector:
role: mongo
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
spec:
serviceName: "mongo"
replicas: 3
template:
metadata:
labels:
role: mongo
environment: test
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo:3.4
command:
- mongod
- "--replSet"
- rs0
- "--bind_ip"
- 0.0.0.0
- "--smallfiles"
- "--noprealloc"
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
- name: mongo-sidecar
image: cvallance/mongo-k8s-sidecar
env:
- name: MONGO_SIDECAR_POD_LABELS
value: "role=mongo,environment=test"
volumeClaimTemplates:
- metadata:
name: mongo-persistent-storage
annotations:
volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 2Gi

最佳答案

当您使用 Kubernetes(容器编排平台)时,您始终可以扩展您的 deployment/statefulset使用$ kubectl scale deployment [deployment_name] --repplicas=X$ kubectl scale statefulset [statefulset-name] --replicas=X其中 X 表示您希望部署的 Pod 总数。它将根据您的部署设置自动创建 Pod。如果您不想手动创建它,您应该阅读有关 Kubernetes 自动缩放的内容 - HPA .

关于在 Kubernetes 之外公开应用程序,您必须使用 Service 来完成。 。更多信息可查询here 。我不确定是否NodePort在这种情况下是正确的。您可以查看ServiceType描述。

但是我对 MongoDB 和 Kubernetes 不太熟悉,但也许这些教程对你有帮助。 Scaling MongoDB on Kubernetes , Running MongoDB as a Microservice with Docker and Kubernetes , Running MongoDB on Kubernetes with StatefulSets .

希望能有所帮助。

关于mongodb - Kubernetes MongoDB 自动缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57993664/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com