我正在跟着指南学习Kubernetes,尝试使用1个副本部署MongoDB Pod。这是部署配置文件。
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
labels:
app: mongodb
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 27017
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
---
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
spec:
selector:
app: mongodb
ports:
- protocol: TCP
port: 27017
targetPort: 27017
我也尝试使用几乎相同的配置文件部署一个Mongo-Express Pod,但是两个Pod都一直出现CrashLoopBackOff
的错误。根据我所了解的,这是由容器失败并在循环中重新启动引起的。我尝试通过kubectl get events
查看事件,并发现一直出现带有消息Back-off restarting failed container
的警告。我还尝试进行了一些调查,并找到了一个解决方案,它建议添加
command: ['sleep']
args: ['infinity']
这解决了CrashLoopBackOff问题,但是当我尝试获取Pod的日志时,终端上没有显示任何内容。请帮忙解释一下command
和args
是如何解决这个问题的,并告诉我如何防止我的Pods和当前Pod发生崩溃,非常感谢。
未捕获的异常:错误:无法添加用户:规范化预检错误:U_STRINGPREP_PROHIBITED_ERROR _getErrorWithCode@src/mongo/shell/utils.js:25:13
我该如何解决?我正在使用Windows并运行minikube集群。 - thatguy