我在gke kubernetes引擎上使用mongo db,在我更新pod映像版本之前,它工作正常,我试图删除volumeclaim和磁盘,但是问题是相同的 这是我的pod和初始化脚本,这是logs和yaml文件:
2019-11-09T00:51:03.806+0000 E QUERY [js] uncaught exception: Error: couldn't add user:
Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1370:11
@(shell):1:1
2019-11-09T00:51:03.808+0000 E - [main] Error saving history file: FileOpenFailed:
Unable to open() file /home/mongodb/.dbshell: No such file or directory
2019-11-09T00:51:03.814+0000 I NETWORK [conn2] end connection 127.0.0.1:56832 (0
connections now open)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongo-pro
namespace: production
spec:
serviceName: "mongo-local"
replicas: 1
selector:
matchLabels:
app: mongo-local-pro
template:
metadata:
labels:
app: mongo-local-pro
spec:
containers:
- name: mongo-pro
image: hasnimehdi2020/mongo:1.0.0
volumeMounts:
- name: mongostorageprox
mountPath: /data/
env:
- name: MONGO_INITDB_ROOT_username
valueFrom:
secretKeyRef:
name: mongosecretspro
key: MONGO_USER
- name: MONGO_INITDB_DATABASE
value: "database"
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongosecretspro
key: MONGO_PASSWORD
imagePullSecrets:
- name: dockerhub
volumeclaimTemplates:
- metadata:
name: mongostorageprox
spec:
accessModes: ["ReadWriteonce"]
resources:
requests:
storage: 10Gi
最后这是我的初始化脚本
if [ "$MONGO_INITDB_ROOT_username" ] && [ "$MONGO_INITDB_ROOT_PASSWORD" ]; then
"${mongo[@]}" "$MONGO_INITDB_DATABASE" <<-EOJS
db.createUser({
user: $(_js_escape "$MONGO_INITDB_ROOT_username"),pwd: $(_js_escape "$MONGO_INITDB_ROOT_PASSWORD"),roles: [ "readWrite","dbAdmin" ]
})
EOJS
fi
echo ======================================================
echo created $MONGO_INITDB_ROOT_username in database $MONGO_INITDB_DATABASE
echo ======================================================