Kuberenetes: получить crashloopbackoff

Я могу успешно запустить следующее изображение в локальном контейнере.

Dockerfile:

FROM ubuntu:latest

RUN apt-get update
RUN apt-get -qq update
RUN apt-get install -y nodejs npm
# TODO could uninstall some build dependencies

# debian installs `node` as `nodejs`
RUN update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

COPY package.json package.json

RUN npm install

COPY . .

CMD ["npm", "start"]

Текущая папка содержит простое приложение node-express "hello world", и я могу свернуть его до localhost:3000.

Depolyment.yml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: node-deployment
  labels:
    app: node-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: node-app
  template:
    metadata:
      labels:
        app: node-app
    spec:
      containers:
      - name: node-app
        image: my-repo/ubuntu-node:firsttry 
        ports:
        - containerPort: 3000

и событие (kubectl describe pod):

Warning  BackOff                40s (x20 over 5m)  kubelet, minikube  Back-off restarting failed container

Есть предложения, как решить проблему?

Что показывает kubectl logs POD_NAME?

Dominik 11.04.2018 13:29
1
1
860
1

Ответы 1

Итак, модуль был создан, а затем снова и снова вылетал из строя. Я обнаружил это, запустив:

kubctl logs node-deployment-57568f8f75-c2brt

И это была проблема nodemon:

[nodemon] watching: *.*
[nodemon] starting `node app.js`
Example app listening on port 3000!
[nodemon] Internal watch failed: watch /usr/lib/x86_64-linux-gnu/libanl.a ENOSPC

На данный момент я просто изменил CMD в Dockerfile на:

CMD ["node", "app.js"]

А теперь стручки работают.

Другие вопросы по теме