簡體   English   中英

Kube.netes | Pod 狀態 - CrashLoopBackOff | 退避重啟失敗的容器

[英]Kubernetes | Pod Status - CrashLoopBackOff | Back-off restarting failed container

我正在創建 mongodb 部署,即mongo.yaml並且我還創建了一個秘密以從mongo-secret.yaml中獲取用戶名和密碼的引用。 我在 windows 終端和 minikube 集群中實現了這個 在默認命名空間中運行它。 我分別運行了以下命令:-

PS C:\Users\Safeer_Pasha\kubernetes-sample-project> kubectl apply -f mongo-secret.yaml
secret/mongodb-secret created



PS C:\Users\Safeer_Pasha\kubernetes-sample-project> kubectl get secret
NAME                  TYPE                                  DATA   AGE
default-token-76pch   kubernetes.io/service-account-token   3      6d18h
mongodb-secret        Opaque                                2      2m11s

一旦創建了秘密,我就運行了部署:-

PS C:\Users\Safeer_Pasha\kubernetes-sample-project> kubectl apply -f mongo.yaml
deployment.apps/mongodb-deployment created

PS C:\Users\Safeer_Pasha\kubernetes-sample-project> kubectl get deployments
NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
mongodb-deployment   0/1     1            0           51s

PS C:\Users\Safeer_Pasha\kubernetes-sample-project> kubectl get pods
NAME                                 READY   STATUS             RESTARTS      AGE
mongodb-deployment-8f6675bc5-hk6zt   0/1     CrashLoopBackOff   3 (43s ago)   95s

PS C:\Users\Safeer_Pasha\kubernetes-sample-project> kubectl describe pod mongodb-deployment-8f6675bc5-hk6zt
Name:         mongodb-deployment-8f6675bc5-hk6zt
Namespace:    default
Priority:     0
Node:         minikube/172.24.73.184
Start Time:   Wed, 20 Apr 2022 15:40:34 +0530
Labels:       app=mongodb
              pod-template-hash=8f6675bc5
Annotations:  <none>
Status:       Running
IP:           172.18.0.4
IPs:
  IP:           172.18.0.4
Controlled By:  ReplicaSet/mongodb-deployment-8f6675bc5
Containers:
  mongodb:
    Container ID:   docker://a9553ef7c260906f5f42f84568d2be919aeba697a98101b8accf24ca73940290
    Image:          mongo
    Image ID:       docker-pullable://mongo@sha256:1e72fdd16fc769e5200dad77eff5b2316730d42473c281d8192872698e1f8689
    Port:           27017/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Wed, 20 Apr 2022 15:42:12 +0530
      Finished:     Wed, 20 Apr 2022 15:42:13 +0530
    Ready:          False
    Restart Count:  4
    Environment:
      MONGO_INITDB_ROOT_USERNAME:  <set to the key 'mongo-root-username' in secret 'mongodb-secret'>  Optional: false
      MONGO_INITDB_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-2p6kf (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  kube-api-access-2p6kf:
    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  2m24s                default-scheduler  Successfully assigned default/mongodb-deployment-8f6675bc5-hk6zt to minikube
  Normal   Pulled     2m21s                kubelet            Successfully pulled image "mongo" in 2.758842062s
  Normal   Pulled     2m17s                kubelet            Successfully pulled image "mongo" in 2.699501399s
  Normal   Pulled     2m1s                 kubelet            Successfully pulled image "mongo" in 2.69845367s
  Normal   Created    93s (x4 over 2m21s)  kubelet            Created container mongodb
  Normal   Started    93s (x4 over 2m20s)  kubelet            Started container mongodb
  Normal   Pulled     93s                  kubelet            Successfully pulled image "mongo" in 2.717896979s
  Warning  BackOff    62s (x7 over 2m15s)  kubelet            Back-off restarting failed container
  Normal   Pulling    49s (x5 over 2m23s)  kubelet            Pulling image "mongo"
  Normal   Pulled     46s                  kubelet            Successfully pulled image "mongo" in 2.7922607s

請在下面找到文件-

mongo.yaml:-

 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

mongo-secret.yaml:-

apiVersion: v1
kind: Secret
metadata:
    name: mongodb-secret
type: Opaque
data:
    mongo-root-username: dXNlcm5hbWU=
    mongo-root-password: cGFzc3dvcmQNCg==

請幫助我找到問題並解決它。 請提供評論以獲取更多詳細信息。

檢查日志后(發生錯誤):-

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:1367:11
@(shell):1:1
Error saving history file: FileOpenFailed Unable to open() file /home/mongodb/.dbshell: No such file or directory
{"t":{"$date":"2022-04-20T13:44:04.789+00:00"},"s":"I",  "c":"NETWORK",  "id":22944,   "ctx":"conn2","msg":"Connection ended","attr":{"remote":"127.0.0.1:60512","uuid":"453ae58a-1864-478e-95de-6ce536bb77d6","connectionId":2,"connectionCount":0}}
> echo cGFzc3dvcmQNCg==| base64 --decode | cat -e
password^M$

您在秘密中的密碼末尾有一個額外的字符。 您可以直接創建它,而不是預先編碼秘密:

apiVersion: v1
kind: Secret
metadata:
    name: mongodb-secret
type: Opaque
data:
    mongo-root-username: username
    mongo-root-password: password

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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