[英]Kubernetes pod in CrashLoopBackOff for mongodb
我正在學習 k8s,我正在嘗試使用 mongo db 進行部署。 這是我的 yaml
部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deployment
labels:
app: mongodb
spec:
replicas: 2
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_INITIDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
秘密
apiVersion: v1
kind: Secret
metadata:
name: mongodb-secret
type: 0paque
data:
mongo-root-username: dXNlcm5hbWU=
mongo-root-password: cGFzc3dvcmQ=
如您所見,pod 在 CrashLoopBackOff state 中
kubectl get all
NAME READY STATUS RESTARTS AGE
pod/mongodb-deployment-6ddd5fb89-h9rjz 0/1 ImagePullBackOff 0 7m25s
pod/mongodb-deployment-6ddd5fb89-wvz6p 0/1 ImagePullBackOff 0 7m25s
pod/mongodb-deployment-f7df49f67-2gp4x 0/1 CrashLoopBackOff 5 (43s ago) 3m54s
pod/nginx-deployment-78cc6468fb-22wz5 1/1 Running 0 49m
pod/nginx-deployment-78cc6468fb-6hxq8 1/1 Running 0 49m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 68m
service/nginx-service ClusterIP 10.110.136.45 <none> 80/TCP 34m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mongodb-deployment 0/2 1 0 7m25s
deployment.apps/nginx-deployment 2/2 2 2 49m
NAME DESIRED CURRENT READY AGE
replicaset.apps/mongodb-deployment-6ddd5fb89 2 2 0 7m25s
replicaset.apps/mongodb-deployment-f7df49f67 1 1 0 3m54s
replicaset.apps/nginx-deployment-78cc6468fb 2 2 2 49m
如果我檢查吊艙,它只會退縮。 不確定那里發生了什么,肯定是配置問題,但我還是 k8s 的新手。
kubectl describe pod/mongodb-deployment-f7df49f67-2gp4x
Name: mongodb-deployment-f7df49f67-2gp4x
Namespace: default
Priority: 0
Node: minikube/192.168.49.2
Start Time: Thu, 06 Oct 2022 13:10:09 -0500
Labels: app=mongodb
pod-template-hash=f7df49f67
Annotations: <none>
Status: Running
IP: 172.17.0.7
IPs:
IP: 172.17.0.7
Controlled By: ReplicaSet/mongodb-deployment-f7df49f67
Containers:
mongodb:
Container ID: docker://73f6707f1fc2b5ae690cf3518e35ab05d258a3f209b106c014310b0e38c05f00
Image: mongo
Image ID: docker-pullable://mongo@sha256:2ca8fb22c9522b49fd1f5490dee3e7026a4331b9f904d5acf10a9638c1d1539d
Port: 27017/TCP
Host Port: 0/TCP
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Exit Code: 1
Started: Thu, 06 Oct 2022 13:11:47 -0500
Finished: Thu, 06 Oct 2022 13:11:47 -0500
Ready: False
Restart Count: 4
Environment:
MONGO_INITDB_ROOT_USERNAME: <set to the key 'mongo-root-username' in secret 'mongodb-secret'> Optional: false
MONGO_INITIDB_ROOT_PASSWORD: <set to the key 'mongo-root-password' in secret 'mongodb-secret'> Optional: false
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-gpmw4 (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 2m17s default-scheduler Successfully assigned default/mongodb-deployment-f7df49f67-2gp4x to minikube
Normal Pulled 2m13s kubelet Successfully pulled image "mongo" in 2.4540099s
Normal Pulled 2m11s kubelet Successfully pulled image "mongo" in 2.0397836s
Normal Pulled 113s kubelet Successfully pulled image "mongo" in 2.5676941s
Normal Created 84s (x4 over 2m13s) kubelet Created container mongodb
Normal Started 84s (x4 over 2m13s) kubelet Started container mongodb
Normal Pulled 84s kubelet Successfully pulled image "mongo" in 2.2913276s
Warning BackOff 53s (x7 over 2m10s) kubelet Back-off restarting failed container
Normal Pulling 42s (x5 over 2m16s) kubelet Pulling image "mongo"
Normal Pulled 39s kubelet Successfully pulled image "mongo" in 2.3732048s
如果查看失敗 pod 的日志,您將看到:
$ k logs deploy/mongodb-deployment
error: missing 'MONGO_INITDB_ROOT_USERNAME' or 'MONGO_INITDB_ROOT_PASSWORD'
both must be specified for a user to be created
這給了我們一個想法,我們應該在哪里尋找問題的根源。 仔細查看您的清單,我們發現您的 Deployment 中有錯字。
你有:
- name: MONGO_INITIDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
變量名中有一個錯誤的I
你要:
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secret
key: mongo-root-password
添加到以前的答案。 似乎在下面還有一個錯字:
type: 0paque -> It should be capital O
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.