因此,我正在通过指南了解库伯内特斯的情况,我正在尝试部署一个带有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,但我一直为这两个Pods获取CrashLoopBackOff,据我所知,这是由于容器在循环中失败和重新启动造成的。我试着用kubectl get events来查看这些事件,我看到一个带有Back-off restarting failed container消息的警告一直在发生。我还试着四处挖了一下,发现了一个解决方案,上面写着
command: ['sleep']
args: ['infinity']这解决了CrashLoopBackOff问题,但是当我试图获取Pod的日志时,终端上不会显示任何内容。我需要一些帮助和可能的解释,因为command和args似乎是如何解决它的,也是我如何阻止这次崩溃发生在我的Pods和当前的一个,非常感谢。
发布于 2020-11-13 11:28:56
我的建议是在Kubernetes上部署MongoDB作为StatefulSet。
在有状态应用程序中,主节点的N个副本管理一个集群下的多个工作节点.因此,如果任何主节点发生故障,则其他序数实例将处于活动状态以执行工作流。主节点实例必须标识为唯一的序数编号,称为StatefulSet。详情见:mongodb-sts,mongodb on-kubernetes。还可以使用无头服务来管理Pod的域。在对无头服务的一般理解中,不需要LoadBalancer或https://kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/直接与Pods交互,而是使用Service,因此集群IP被设置为none。
就你而言:
apiVersion: v1
kind: Service
metadata:
name: mongodb
spec:
clusterIP: None
selector:
app: mongodb
ports:
- port: 27017错误:
Also uncaught exception: Error: couldn't add user: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR _getErrorWithCode@src/mongo/shell/utils.js:25:13指示该秘密可能丢失。看看:mongodb-初始化。
在你的例子中,秘密应该看起来很相似:
apiVersion: v1
kind: Secret
metadata:
name: mongodb-secret
type: Opaque
data:
mongo-root-username: YWRtaW4=
mongo-root-password: MWYyZDFlMmU2N2Rm记住也要为你的豆荚配置一个卷-遵循我上面链接的教程。
发布于 2020-11-13 06:09:08
使用StatefulSet部署mongodb,而不是部署。
示例:
apiVersion: v1种类:服务元数据:名称:mongodb-服务标签:名称:v1规范:端口:
apiVersion: apiVersion: StatefulSet元数据:名称:mongodb-服务副本:3模板:元数据:角色:StatefulSet复制环境: MainRepSet规范: MainRepSet : podAntiAffinity: MainRepSet:MainRepSet: podAffinityTerm: matchExpressions:- key:复制运算符: In value:-MainRepSet topologyKey: kubernetes.io/hostname terminationGracePeriodSeconds: 10卷:-name-卷机密: secretName: shared-data defaultMode: 256个容器:名称:mon上帝容器#图像:pkdone/ mongo.4图像: mongo命令:- "numactl“内部--auth-mongodb-keyfile“
https://stackoverflow.com/questions/64815920
复制相似问题