Шлем кубернетесь на АКС Под CrashLoopBackOff - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь развернуть простое приложение nodejs через helm kubernetes в Azure Kubernetes Service, но после извлечения моего изображения оно говорит: CrashLoopBackOff.

Вот что я пробовал до сих пор:

Мой Dockerfile:

FROM node:6
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 32000
CMD [ "npm", "start" ]

Мой server.js:

'use strict';

const express = require('express');

const PORT = 32000;
const HOST = '0.0.0.0';

const app = express();
app.get('/', (req, res) => {
  res.send('Hello world from container.\n');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

Я переместил это изображение в ACR.

Новое обновление: Вот полный вывод kubectl describe pod POD_NAME:

Name:               myrel02-mychart06-5dc9d4b86c-kqg4n
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               aks-nodepool1-19665249-0/10.240.0.6
Start Time:         Tue, 05 Feb 2019 11:31:27 +0500
Labels:             app.kubernetes.io/instance=myrel02
                    app.kubernetes.io/name=mychart06
                    pod-template-hash=5dc9d4b86c
Annotations:        <none>
Status:             Running
IP:                 10.244.2.5
Controlled By:      ReplicaSet/myrel02-mychart06-5dc9d4b86c
Containers:
  mychart06:
    Container ID:   docker://c239a2b9c38974098bbb1646a272504edd2d199afa50f61d02a0ce335fe60660
    Image:          registry-1.docker.io/arycloud/docker-web-app:0.5
    Image ID:       docker-pullable://registry-1.docker.io/arycloud/docker-web-app@sha256:4faab280d161b727e0a6a6d9dfb52b22cf9c6cd7dd07916d6fe164d9af5737a7
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Tue, 05 Feb 2019 11:39:56 +0500
      Finished:     Tue, 05 Feb 2019 11:40:22 +0500
    Ready:          False
    Restart Count:  7
    Liveness:       http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:
      KUBERNETES_PORT_443_TCP_ADDR:  cluster06-ary-2a187a-dc393b82.hcp.centralus.azmk8s.io
      KUBERNETES_PORT:               tcp://cluster06-ary-2a187a-dc393b82.hcp.centralus.azmk8s.io:443
      KUBERNETES_PORT_443_TCP:       tcp://cluster06-ary-2a187a-dc393b82.hcp.centralus.azmk8s.io:443
      KUBERNETES_SERVICE_HOST:       cluster06-ary-2a187a-dc393b82.hcp.centralus.azmk8s.io
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-gm49w (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-gm49w:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-gm49w
    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  10m                    default-scheduler                  Successfully assigned default/myrel02-mychart06-5dc9d4b86c-kqg4n to aks-nodepool1-19665249-0
  Normal   Pulling    10m                    kubelet, aks-nodepool1-19665249-0  pulling image "registry-1.docker.io/arycloud/docker-web-app:0.5"
  Normal   Pulled     10m                    kubelet, aks-nodepool1-19665249-0  Successfully pulled image "registry-1.docker.io/arycloud/docker-web-app:0.5"
  Warning  Unhealthy  9m30s (x6 over 10m)    kubelet, aks-nodepool1-19665249-0  Liveness probe failed: Get http://10.244.2.5:80/: dial tcp 10.244.2.5:80: connect: connection refused
  Normal   Created    9m29s (x3 over 10m)    kubelet, aks-nodepool1-19665249-0  Created container
  Normal   Started    9m29s (x3 over 10m)    kubelet, aks-nodepool1-19665249-0  Started container
  Normal   Killing    9m29s (x2 over 9m59s)  kubelet, aks-nodepool1-19665249-0  Killing container with id docker://mychart06:Container failed liveness probe.. Container will be killed and recreated.
  Warning  Unhealthy  9m23s (x7 over 10m)    kubelet, aks-nodepool1-19665249-0  Readiness probe failed: Get http://10.244.2.5:80/: dial tcp 10.244.2.5:80: connect: connection refused
  Normal   Pulled     5m29s (x6 over 9m59s)  kubelet, aks-nodepool1-19665249-0  Container image "registry-1.docker.io/arycloud/docker-web-app:0.5" already present on machine
  Warning  BackOff    22s (x33 over 7m59s)   kubelet, aks-nodepool1-19665249-0  Back-off restarting failed container

Обновление: docker logs CONTAINER_ID Вывод:

> nodejs@1.0.0 start /usr/src/app
> node server.js

Running on http://0.0.0.0:32000

Как мне избежать этой проблемы?

Заранее спасибо!

1 Ответ

0 голосов
/ 05 февраля 2019

Как видно из вывода команды kubectl describe pod, ваш Контейнер внутри Pod уже завершен с кодом выхода 0 (@ 4c74356b41 упомянул об этом в комментариях).Reason: Completed, в котором говорится об успешном завершении без ошибок / проблем.Однако жизненный цикл стручка был очень коротким, поэтому Kubernetes постоянно планирует новые стручки, но пробам на жизнеспособность и готовность все еще не удается восстановить здоровье контейнера.

Чтобы поддерживать работу модуля Pod, необходимо указать задачу (процесс) внутри контейнера для возможности непрерывной работы.Существует множество дискуссий и решений о том, как решить такую ​​проблему, больше подсказок можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...