如何在Kubernetes上创建MongoDB集群?
我想创建三台机器的MongoDB副本,它需要指定这些机器的IP地址吗?但他们遇到了一个吊舱,拥有一个动态IP。如果您试图指定DNS名称服务MongoDB,他说 副本集的新配置XXXXX中未描述任何主机 应用程序\u副本映射到此节点 如何为CK8S配置MongoDB副本 我使用k8s的DNS插件。 我尝试如下初始化集群:如何在Kubernetes上创建MongoDB集群?,mongodb,networking,docker,replication,kubernetes,Mongodb,Networking,Docker,Replication,Kubernetes,我想创建三台机器的MongoDB副本,它需要指定这些机器的IP地址吗?但他们遇到了一个吊舱,拥有一个动态IP。如果您试图指定DNS名称服务MongoDB,他说 副本集的新配置XXXXX中未描述任何主机 应用程序\u副本映射到此节点 如何为CK8S配置MongoDB副本 我使用k8s的DNS插件。 我尝试如下初始化集群: var config = { "_id" : "app_replica", "members" : [ { "_id" :
var config = {
"_id" : "app_replica",
"members" : [
{
"_id" : 0,
"host" : "mongodb-node-01"
},
{
"_id" : 1,
"host" : "mongodb-node-02"
},
{
"_id" : 2,
"host" : "mongodb-node-03",
"arbiterOnly" : true
}
]
}
rs.initiate(config)
配置服务:
配置复制控制器:
您需要设置多个部署和服务。看看这个动物园管理员的例子- 您不依赖节点/计算机IP。相反,您依赖于多个服务的稳定DNS名称。看一看,这里有一个很棒的pdf教程
apiVersion: v1
kind: Service
metadata:
name: "mongodb-node-01"
labels:
app: "mongodb-node-01"
spec:
ports:
- port: 27017
targetPort: 27001
selector:
app: "mongodb-node-01"
apiVersion: v1
kind: ReplicationController
metadata:
name: "mongodb-node-01"
labels:
app: "mongodb-node-01"
spec:
replicas: 1
selector:
app: "mongodb-node-01"
template:
metadata:
labels:
app: "mongodb-node-01"
spec:
containers:
- name: "mongodb-node-01"
image: 192.168.0.139:5000/db/mongo
command:
- mongod
- "--replSet"
- "app_replica"
- "--smallfiles"
- "--noprealloc"
env:
- name: ENV
value: "prod"
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
readOnly: false
volumes:
- name: mongo-persistent-storage
hostPath:
path: /data/mongo/mongodb-node-01
nodeSelector:
database: "true"
mongodb01: "true"