[英]Kubernetes Pod stuck in CrashLoopBackOff
FROM ubuntu
MAINTAINER user@gmail.com
RUN apt-get update
RUN apt-get install -y openjdk-8-jdk
ADD build/libs/micro-service-gradle-0.0.1-SNAPSHOT.jar /var/local/
ENTRYPOINT exec java $JAVA_OPTS \
-jar /var/local/micro-service-gradle-0.0.1-SNAPSHOT.jar
EXPOSE 8080
apiVersion: apps/v1
kind: Deployment
metadata:
name: micro-service-gradle
labels:
app: micro-service-gradle
spec:
replicas: 1
selector:
matchLabels:
app: micro-service-gradle
template:
metadata:
labels:
app: micro-service-gradle
spec:
containers:
- name: micro-service-gradle
image: micro-service-gradle:latest
ports:
- containerPort: 8080
在 Kubernetes 中部署 Spring Boot 應用程序。 Pod 沒有被創建。 當我檢查 kubectl get pods 時。 它說 CrashLoopBackOff。
NAME READY STATUS RESTARTS AGE
micro-service-gradle-fc97c97b-8hwhg 0/1 CrashLoopBackOff 6 6m23s
我試圖檢查同一個容器的日志。 日志是空的
kubectl logs -p micro-service-gradle-fc97c97b-8hwhg
我使用 docker run 手動創建了容器。 圖像沒有問題,容器工作正常。
如何驗證日志以了解 Pod 處於崩潰狀態的原因。
你需要使用
kubectl describe pod micro-service-gradle-fc97c97b-8hwhg
獲取相關日志。 這應該會引導您解決您的問題。
您的部署資源看起來不錯。 由於您可以使用手動創建容器,問題在於與圖像存儲庫的連接。 設置頁面拉取密碼,您應該能夠創建 pod
我遇到了類似的問題。 只需驗證您的容器是否能夠連續運行。 您必須在前台運行該進程以保持容器運行。
我遇到了類似的問題。 當我跑
kubectl describe pod <podname>
並讀取事件,雖然圖像被拉出,但輸出的消息是“重新啟動失敗的容器”這個 pod 令人興奮,因為它沒有執行任何任務。 為了讓它繼續運行,我根據文檔中的類似示例添加了一個 sleep 命令
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
這個 SO 答案還提到運行無限也可以解決這個問題https://stackoverflow.com/a/55610769/7128032
出現此類錯誤的可能原因是:
您可以通過檢查事件來查看正在發生的事情:
kubectl get events
或檢查 pod 狀態:
kubectl describe po mypod-390jo50wn3-sp40r
完整解釋在這里: https : //pillsfromtheweb.blogspot.com/2020/05/troubleshooting-kubernetes.html
我遇到了同樣的問題,但使用它對我有用:
image: Image:latest
command: [ "sleep" ]
args: [ "infinity" ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.