【发布时间】:2020-10-26 16:10:32
【问题描述】:
我是 Kubernetes 的新手,正在尝试学习,但我遇到了一个无法解释的错误。我在集群中运行 Pod 和 Deployment,它们运行良好,如 CLI 所示,但一段时间后它们不断崩溃,Pod 需要重新启动。
在发布到这里之前,我做了一些研究来解决我的问题,但按照我的理解,我必须进行部署,以便我的副本集将管理我的 Pod 生命周期,而不是独立部署 Pod。但正如您所见,部署中的 Pod 也崩溃了。
kubectl 获取 pod
operator-5bf8c8484c-fcmnp 0/1 CrashLoopBackOff 9 34m
operator-5bf8c8484c-phptp 0/1 CrashLoopBackOff 9 34m
operator-5bf8c8484c-wh7hm 0/1 CrashLoopBackOff 9 34m
operator-pod 0/1 CrashLoopBackOff 12 49m
kubectl 描述 pod 操作符
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled <unknown> default-scheduler Successfully assigned default/operator-pod to workernode
Normal Created 30m (x5 over 34m) kubelet, workernode Created container operator-pod
Normal Started 30m (x5 over 34m) kubelet, workernode Started container operator-pod
Normal Pulled 29m (x6 over 34m) kubelet, workernode Container image "operator-api_1:java" already present on machine
Warning BackOff 4m5s (x101 over 33m) kubelet, workernode Back-off restarting failed container
部署yaml文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: operator
labels:
app: java
spec:
replicas: 3
selector:
matchLabels:
app: call
template:
metadata:
labels:
app: call
spec:
containers:
- name: operatorapi
image: operator-api_1:java
ports:
- containerPort: 80
谁能帮帮我,我该如何调试?
【问题讨论】:
-
您的 pod 启动时是否有要运行的命令?我没有看到您的部署中指定的命令。如果你的 Pod 没有命令运行,它会在启动后立即退出,这可以解释 crashloopbackoff
-
@Popopame 如果未指定,则默认为 Dockerfile 中的 ENTRYPOINT/COMMAND。