Kubernetes MongoDB自动标定
我已经在我的k8s集群中部署了一个有状态的mongodb设置。每次缩放新pod时,我都需要使用rs.add()命令从mongodb控制台添加pod。有什么办法可以协调吗?。还有,我如何在我的k8s群集之外公开我的mongodb服务..将服务类型更改为nodeport对我不起作用..请帮助 下面给出了我用来部署mongodb的有状态yaml文件Kubernetes MongoDB自动标定,mongodb,kubernetes,kubernetes-statefulset,Mongodb,Kubernetes,Kubernetes Statefulset,我已经在我的k8s集群中部署了一个有状态的mongodb设置。每次缩放新pod时,我都需要使用rs.add()命令从mongodb控制台添加pod。有什么办法可以协调吗?。还有,我如何在我的k8s群集之外公开我的mongodb服务..将服务类型更改为nodeport对我不起作用..请帮助 下面给出了我用来部署mongodb的有状态yaml文件 apiVersion: v1 kind: Service metadata: name: mongo labels: name: mong
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(容器编排平台)时,您总是可以使用
$kubectl scale deployment[deployment_name]--repplicats=X来扩展部署/状态集
或$kubectl scale statefulset[statefulset name]--副本=X
其中X表示您希望在部署中总共有多少个吊舱。它将根据您的部署设置自动创建吊舱。
如果您不想手动创建它,您应该阅读Kubernetes autoscaling-
关于在Kubernetes之外公开应用程序,您必须使用服务。可以找到更多信息。我不确定NodePort
在这种情况下是否正确。您可以查看描述
不过,我对MongoDB和Kubernetes不是很熟悉,但这些教程可能对您有所帮助。
希望能有所帮助。正如@PjoterS建议的那样,您可以使用HPA扩展kubernetes内部的mongoDB副本或POD
但是,有了它,您还必须注意卷的装载。还要注意副本之间的数据延迟
我建议最好先检查mongo db it self和configure提供的本机伸缩集群选项。您可以为mongoDB使用一些运算符
比如:https://docs.mongodb.com/kubernetes-operator/master/tutorial/install-k8s-operator/
否则,如果当前配置遵循本机集群,并且支持在replca之间扩展副本和数据副本,则可以选择HPA
您还可以查看以下内容:https://medium.com/faun/scaling-mongodb-on-kubernetes-32e446c16b82
您能否详细说明HPA如何解决在每个新节点上运行rs.add()
命令的问题?