You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure部署微服务Pod遇CrashLoopBackOff问题求助

问题:Azure上部署微服务Pod处于CrashLoopBackOff状态

日志输出

执行kubectl logs --previous --tail 10 app-dev-559d688468-8lr6n得到以下错误:

/usr/local/bin/python: can't open file '/app/3/ON_ /Scripts/manage.py': [Errno 2] No such file or directory

Kubernetes资源配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name:  app-dev
  namespace: dev
spec:
  replicas: 1
  selector:
    matchLabels:
      app:  app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
        - name:  -app
          image: "${DOCKER_REGISTRY}/app:${IMAGE_TAG}"
          readinessProbe:
            failureThreshold: 6
            httpGet:
              path: /
              port: 8000
            initialDelaySeconds: 30
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 1
          imagePullPolicy: Always
          command: ["/bin/sh"]
          args:
            - -c
            - >-
                /bin/sed -i -e "s/# 'autodynatrace.wrappers.django'/'autodynatrace.wrappers.django'/" /app/T /ON_ 3/ON_  /settings.py &&
                /usr/local/bin/python manage.py collectstatic --noinput &&
                AUTOWRAPT_BOOTSTRAP=autodynatrace AUTODYNATRACE_FORKABLE=True /usr/local/bin/gunicorn --workers 8 --preload --timeout 120 --config gunicorn.conf.py --bind 0.0.0.0:8000
          env:
            - name: AUTODYNATRACE_POD_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: AUTODYNATRACE_APPLICATION_ID
              value: Django ($(AUTODYNATRACE_POD_NAME):8000)
          ports:
            - containerPort: 8000
          volumeMounts:
          - name: secrets
            readOnly: true
            mountPath: /root/FHIREngine/conf
          - name: secrets
            readOnly: true
            mountPath: /home/ view/FHIREngine/conf
      imagePullSecrets:
        - name: docker-registry-credentials
      volumes:
       - name: secrets
         secret:
            secretName:   config
            defaultMode: 420
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name:  app
  namespace: dev
spec:
  type: NodePort
  ports:
    - name:  app
      port: 8000
      targetPort: 8000
  selector:
    app:  app
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app
  namespace:  dev
  annotations:
    #external-dns.alpha.kubernetes.io/hostname:  .io
    #external-dns.alpha.kubernetes.io/type: external
    kubernetes.io/ingress.class: nginx-internal
spec:
  rules:
    - host:  com
      http:
        paths:
          - path: /
            backend:
              service:
                name:  app
                port:
                  number: 8000
            pathType: ImplementationSpecific

Pod事件信息

执行kubectl describe pod得到以下事件:

Events:
  Type     Reason   Age                    From     Message
  ----     ------   ----                   ----     -------
  Warning  BackOff  13m (x681 over 157m)   kubelet  Back-off restarting failed container
  Normal   Pulling  3m27s (x36 over 158m)  kubelet  Pulling image " applicationA:latest"

解决思路

1. 修复启动命令中的路径错误

从日志和配置能看到明显的路径异常:

  • sed命令的目标路径/app/T /ON_ 3/ON_ /settings.py包含多余空格,属于无效路径,需修正为容器内settings.py的真实路径(比如/app/ON_3/settings.py,具体根据镜像内结构调整)
  • python manage.py未指定绝对路径,容器启动时的工作目录可能不是manage.py所在位置,需改为绝对路径,比如/usr/local/bin/python /app/Scripts/manage.py(需匹配镜像内实际路径)

2. 修正Volume挂载路径错误

Deployment中Volume挂载路径/home/ view/FHIREngine/conf包含空格,这是无效的Linux路径,会导致挂载失败,需改为/home/view/FHIREngine/conf(移除空格)

3. 验证容器内文件结构

临时修改Deployment的启动命令,让容器保持运行以便排查:

command: ["/bin/sh"]
args: ["-c", "sleep 3600"]

应用修改后,执行kubectl exec -it <pod-name> -n dev -- /bin/sh进入容器,检查:

  • /app目录下的实际文件结构,确认settings.py和manage.py的真实位置
  • Volume挂载路径是否正常创建,secret内容是否正确挂载

4. 确认镜像一致性

检查GitHub Actions中${DOCKER_REGISTRY}和${IMAGE_TAG}变量是否正确注入,确保Azure环境拉取的镜像与AWS环境运行正常的镜像完全一致

5. 检查Secret配置

确认名为config的Secret是否在dev命名空间存在,且包含的内容符合应用需求,挂载路径不会覆盖应用的关键文件

内容的提问来源于stack exchange,提问作者green

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:00:54