我正在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才能使其生效吗?
答案 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
希望对您有帮助。