Отложенный перезапуск контейнера, в котором произошел сбой в Azure AKS

Модуль контейнера Linux с образами докеров из реестра контейнеров Azure продолжает перезапускаться с параметром restartPolicy as Always. Описание стручка приведено ниже.

kubectl describe pod example-pod

...

State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Thu, 11 Jun 2020 03:27:11 +0000
      Finished:     Thu, 11 Jun 2020 03:27:12 +0000
...
Back-off restarting failed container

Этот модуль создается с секретом для доступа к репозиторию реестра ACR. Причина в том, что модуль успешно завершает выполнение с кодом выхода 0. Однако он должен продолжать прослушивание на определенном номере порта. Ссылка на документ Microsoft находится по этому URL-адресу Среда выполнения группы контейнеров под заголовком «Контейнер постоянно выходит и перезапускается»

Содержание файла deployment-example.yml приведено ниже.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: example-deployment
  namespace: development
  labels:
    app: example
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  template:
    metadata:
      labels:
        app: example
    spec:
      containers:
      - name: example
        image: contentocr.azurecr.io/example:latest
        #command: ["ping -t localhost"]
        imagePullPolicy: Always
        ports:
        - name: http-port
          containerPort: 3000
      imagePullSecrets:
        - name: regpass
      restartPolicy: Always
      nodeSelector:
        agent: linux
---
apiVersion: v1
kind: Service
metadata:
  name: example
  namespace: development
  labels:
    app: example
spec:
  ports:
  - name: http-port
    port: 3000
    targetPort: 3000
  selector:
      app: example
  type: LoadBalancer

Вывод событий kubectl get показан ниже.

3m39s       Normal    Scheduled              pod/example-deployment-5dc964fcf8-gbm5t    Successfully assigned development/example-deployment-5dc964fcf8-gbm5t to aks-agentpool-18342716-vmss000000
2m6s        Normal    Pulling                pod/example-deployment-5dc964fcf8-gbm5t    Pulling image "contentocr.azurecr.io/example:latest"
2m5s        Normal    Pulled                 pod/example-deployment-5dc964fcf8-gbm5t    Successfully pulled image "contentocr.azurecr.io/example:latest"
2m5s        Normal    Created                pod/example-deployment-5dc964fcf8-gbm5t    Created container example
2m49s       Normal    Started                pod/example-deployment-5dc964fcf8-gbm5t    Started container example
2m20s       Warning   BackOff                pod/example-deployment-5dc964fcf8-gbm5t    Back-off restarting failed container
6m6s        Normal    SuccessfulCreate       replicaset/example-deployment-5dc964fcf8   Created pod: example-deployment-5dc964fcf8-2fdt5
3m39s       Normal    SuccessfulCreate       replicaset/example-deployment-5dc964fcf8   Created pod: example-deployment-5dc964fcf8-gbm5t
6m6s        Normal    ScalingReplicaSet      deployment/example-deployment              Scaled up replica set example-deployment-5dc964fcf8 to 1
3m39s       Normal    ScalingReplicaSet      deployment/example-deployment              Scaled up replica set example-deployment-5dc964fcf8 to 1
3m38s       Normal    EnsuringLoadBalancer   service/example                            Ensuring load balancer
3m34s       Normal    EnsuredLoadBalancer    service/example                            Ensured load balancer

Точка входа в файл Docker похожа на ENTRYPOINT ["npm", "start"] с CMD ["tail -f / dev / null /"]


person Prakashsinha Bayas    schedule 12.06.2020    source источник
comment
поделиться выводом событий kubectl get   -  person Arghya Sadhu    schedule 12.06.2020
comment
какой код вы запускаете внутри изображения (любой скрипт)?   -  person Atul    schedule 12.06.2020
comment
Думаю, проблема в вашем имидже. Вам нужно проверить, может ли изображение работать локально.   -  person Charles Xu    schedule 15.06.2020


Ответы (1)


Работает локально. Неявно ему присваивается флаг CI = "true". Однако в docker-compose необходимо установить stdin_open: true или tty: true, а в файле развертывания Kubernetes переменная с именем ENV CI должна быть настроенным со значением "true".

person Prakashsinha Bayas    schedule 15.06.2020