kubernetes дает ошибку CrashLoopBackOff при создании модулей - PullRequest
0 голосов
/ 17 января 2020

Я создаю контейнер контейнера узлов, и он выдаёт ошибку CrashLoopBackOff .

kubectl get pods

enter image description here

kubectl описать pod test-node3

enter image description here

Любая помощь будет принята с благодарностью .

Ответы [ 3 ]

2 голосов
/ 17 января 2020

Вы можете добавить команду, как показано ниже, чтобы модуль оставался в рабочем состоянии.

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox
    command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']

Ref: Do c

2 голосов
/ 17 января 2020

Ваш контейнер не имеет длительного процесса. Основной процесс в контейнере завершается с кодом выхода 0, который обычно означает, что процесс завершился успешно. Вы можете увидеть это в разделе описания kubectl, которым вы поделились.

Reason: Completed 
Exit Code: 0
1 голос
/ 17 января 2020

Как только Pod назначен узлу планировщиком, kubelet начинает создавать контейнеры с использованием среды выполнения контейнера. Существует три возможных состояния контейнеров: Ожидание, Запуск и Завершение.

Завершено: Указывает, что контейнер завершил выполнение и прекратил работу .

Контейнер входит в него, когда он успешно завершил выполнение или когда по какой-то причине произошел сбой. Независимо от этого, причина и код выхода также отображаются как начало контейнера и время окончания sh.

На вашем скриншоте ясно, что контейнер внутри модуля работает до конца с выполненной работой, с кодом завершения 0, как показано ниже:

  State:          Terminated
    Reason:       Completed
    Exit Code:    0

Вы должны либо добавить длительный запуск обработать в вашем контейнере или определить restartPolicy: Never в определении модуля.

Протестировал изображение с добавлением правильной политики перезапуска, и POD работает правильно до завершения без cra * sh

kubectl run test --image=abhishekk27/kube-pub:new --restart=Never

$ kubectl get pods
NAME      READY   STATUS      RESTARTS   AGE
test      0/1     Completed   0          8m12s

yaml genrated:

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: test
  name: test
spec:
  containers:
  - image: abhishekk27/kube-pub:new
    name: test
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Never

Результат :

$ kubectl describe pod test
Name:         test
Namespace:    default
Priority:     0
Node:         dlv-k8s-node-1/131.160.200.104
Start Time:   Fri, 17 Jan 2020 09:45:00 +0000
Labels:       run=test
Annotations:  <none>
Status:       Succeeded
IP:           10.244.1.12
IPs:
  IP:  10.244.1.12
Containers:
  test:
    Container ID:   docker://b335e5fef022dced824f85ba2bfe4c024608c9b5463599eb36591a14d709786d
    Image:          abhishekk27/kube-pub:new
    Image ID:       docker-pullable://abhishekk27/kube-pub@sha256:6a696bd733edaa48b9be781960f4ee178d16f1c9aea51e53bd0f54326a3d05b1
    Port:           <none>
    Host Port:      <none>
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Fri, 17 Jan 2020 09:45:48 +0000
      Finished:     Fri, 17 Jan 2020 09:45:48 +0000
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-7f4mt (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-7f4mt:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-7f4mt
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age    From                     Message
  ----    ------     ----   ----                     -------
  Normal  Scheduled  6m50s  default-scheduler        Successfully assigned default/test to dlv-k8s-node-1
  Normal  Pulling    6m46s  kubelet, dlv-k8s-node-1  Pulling image "abhishekk27/kube-pub:new"
  Normal  Pulled     5m58s  kubelet, dlv-k8s-node-1  Successfully pulled image "abhishekk27/kube-pub:new"
  Normal  Created    5m58s  kubelet, dlv-k8s-node-1  Created container test
  Normal  Started    5m58s  kubelet, dlv-k8s-node-1  Started container test
...