完成后 pod 的状态更改为 CrashLoopBackOff
status of pod changes to CrashLoopBackOff after completed
每当我创建 Pod 时,Pod 的状态都会在 'Completed' 之后变为 'CrashLoopBackOff'。
我正在使用 microk8s 我已将图像推送到 microk8s 注册表。我正在通过 运行 这个命令创建一个 pod:“kubectl create -f backend-deployment.yml”
backend.Dockerfile(这个docker文件是Django的):
From python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . ./
EXPOSE 8000
后端-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name : backend-deployment
spec:
replicas: 1
selector:
matchLabels:
component: backend
template:
metadata:
labels:
component: backend
spec:
containers:
- name: backand
image: localhost:32000/backend:latest
ports:
- containerPort: 8000
我做错了什么?
Deployment 的设计将努力保持其所有副本 运行ning。
如果您的 pod 完成,无论成功与否,Deployment 都会重新启动它。
如果 Deployment 检测到 pod 重复重启,它会增加重启尝试的延迟,因此 CrashLoopBackoff
如果 pod 只应 运行 完成一次,则应将其构造为 Job
。
进一步阅读:https://kubernetes.io/docs/concepts/workloads/controllers/job/
我找到了解决方法,主要问题是我没有将命令添加到 运行 django 服务器,这就是 pods 导致 pod 内的图像崩溃的原因 不知道什么 运行.
我将我的 yml 文件更改为:
containers:
- name: backand
image: localhost:32000/backend:latest
command: ["python", "manage.py", "runserver"]
ports:
- containerPort: 8000
每当我创建 Pod 时,Pod 的状态都会在 'Completed' 之后变为 'CrashLoopBackOff'。 我正在使用 microk8s 我已将图像推送到 microk8s 注册表。我正在通过 运行 这个命令创建一个 pod:“kubectl create -f backend-deployment.yml”
backend.Dockerfile(这个docker文件是Django的):
From python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . ./
EXPOSE 8000
后端-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name : backend-deployment
spec:
replicas: 1
selector:
matchLabels:
component: backend
template:
metadata:
labels:
component: backend
spec:
containers:
- name: backand
image: localhost:32000/backend:latest
ports:
- containerPort: 8000
我做错了什么?
Deployment 的设计将努力保持其所有副本 运行ning。
如果您的 pod 完成,无论成功与否,Deployment 都会重新启动它。
如果 Deployment 检测到 pod 重复重启,它会增加重启尝试的延迟,因此 CrashLoopBackoff
如果 pod 只应 运行 完成一次,则应将其构造为 Job
。
进一步阅读:https://kubernetes.io/docs/concepts/workloads/controllers/job/
我找到了解决方法,主要问题是我没有将命令添加到 运行 django 服务器,这就是 pods 导致 pod 内的图像崩溃的原因 不知道什么 运行.
我将我的 yml 文件更改为:
containers:
- name: backand
image: localhost:32000/backend:latest
command: ["python", "manage.py", "runserver"]
ports:
- containerPort: 8000