0

我正在部署一个mongodb ReplicaSeton GKE.

我的部署有效,但是我想在 Mongo 上启用身份验证。

我已连接到我的 pod

kubectl exec -it {pod_name} mongo 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只会产生

服务/mongo-svc 不变

statefulset.apps/mongo 已配置

我应该重新启动我的 pod 以使其现在生效吗?

4

2 回答 2

0

你可以试试

kubectl delete -f mongo-statefulset.yaml && kubectl apply -f mongo-statefulset.yaml
于 2019-06-05T11:59:42.600 回答
0

尝试进行滚动更新:RollingUpdate 更新策略将按照相反的顺序更新 StatefulSet 中的所有 Pod,同时尊重 StatefulSet 的保证。

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

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

不要忘记使用您在 pod 上创建的凭据添加 env 标签,例如:

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

我希望它有所帮助。

于 2019-06-06T10:17:26.603 回答