簡體   English   中英

CrashLoopBackOff 中的 Kube.netes pod for mongodb

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM