MongoDB状态集更新

时间:2019-06-05 11:27:28

标签: mongodb google-kubernetes-engine kubectl

我正在mongodb上部署ReplicaSet GKE

我的部署工作正常,但是我想在Mongo上启用身份验证。

我已连接到我的吊舱

kubectl exec -it {pod_name} mongo admin

创建了一个Admin用户,也是我的数据库用户。当时我以为我可以用mongo-statefulset.yaml标志更新--auth并应用更新后的yaml

类似

.....
spec:
      terminationGracePeriodSeconds: 10
      containers:
        - name: mongod-container
          image: mongo:3.6
          command:
            - mongod
            - "--bind_ip"
            - "0.0.0.0"
            - "--replSet"
            - rs0
            - "--smallfiles"
            - "--noprealloc"
            - "--auth"
          ports:
            - containerPort: 27017
          volumeMounts:
            - name: mongo-persistent-storage
              mountPath: /data/db
.....

但是运行kubectl apply -f mongo-statefulset.yaml只会产生

  

service / mongo-svc不变

     

statefulset.apps / mongo配置

我应该重新启动pod才能使其生效吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试

kubectl delete -f mongo-statefulset.yaml && kubectl apply -f mongo-statefulset.yaml

答案 1 :(得分:0)

尝试进行滚动更新: RollingUpdate更新策略将以逆序顺序更新StatefulSet中的所有Pod,同时遵守StatefulSet保证。

修补Web StatefulSet以应用RollingUpdate更新策略。

$ kubectl patch statefulset your_statefulset_name -p '{"spec":{...}}}'

别忘了添加带有您在pod上创建的凭据的环境标签,例如:

      env:
        - name: MONGODB_USERNAME
          value: admin
        - name: MONGODB_PASSWORD
          value: password

希望对您有帮助。