GVKun编程网logo

我收到Pod错误:来自kubernetes的CrashLoopBackOff(pod状态为crashloopback)

27

对于我收到Pod错误:来自kubernetes的CrashLoopBackOff感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解pod状态为crashloopback,并且为您提供关于Air

对于我收到Pod错误:来自kubernetes的CrashLoopBackOff感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解pod状态为crashloopback,并且为您提供关于Airflow 从 Kubernetes 接收到错误的 POD 状态、AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了、Azure AKS:分配静态IP后,Kubernetes窗格继续显示CrashLoopBackOff状态、backoffLimit / maxCrashLoopBackOffRestarts的用法的宝贵知识。

本文目录一览:

我收到Pod错误:来自kubernetes的CrashLoopBackOff(pod状态为crashloopback)

我收到Pod错误:来自kubernetes的CrashLoopBackOff(pod状态为crashloopback)

我试图在kubenetes引擎上运行简单的python文件。而我收到以下错误消息“ Pod错误:CrashLoopBackOff”。如何解决这个问题?

答案1

小编典典

由docker容器引起的问题,该容器在“启动”过程完成后立即退出。添加一个永久运行的命令,可能会起作用。例如,重新创建docker映像:

#Dockerfile[...]CMD exec /bin/bash -c "trap : TERM INT; sleep infinity & wait"

Airflow 从 Kubernetes 接收到错误的 POD 状态

Airflow 从 Kubernetes 接收到错误的 POD 状态

从日志/故障排除的角度回答问题:

我相信 read_namespaced_pod() 会调用 Kubernetes API。为了进一步调查这个问题,我想查看 Kubernetes API 服务器的日志。

是的,你没看错,这个函数调用了 Kubernetes API。您可以通过运行以下命令查看 Kubernetes API 服务器的日志:

  • $ kubectl logs -n kube-system KUBERNETES_API_SERVER_POD_NAME

我也会考虑检查 kube-controller-manager

  • $ kubectl logs -n kube-system KUBERNETES_CONTROLLER_MANAGER_POD_NAME

它的示例输出:

I0413 12:33:12.840270       1 event.go:291] "Event occurred" object="default/nginx-6799fc88d8" kind="ReplicaSet" apiVersion="apps/v1" type="Normal" reason="SuccessfulCreate" message="Created pod: nginx-6799fc88d8-kchp7"

附注!

假设您的 kubernetes-apiserverkubernetes-controller-manager Pod 对您可见


您能否分享一下检查 Kubernetes 方面发生的情况的步骤?

此问题针对故障排除/日志检查的基础知识。

为此,您可以使用以下命令(以及前面提到的命令):

  • $ kubectl get RESOURCE RESOURCE_NAME
    • 示例:$ kubectl get pod airflow-pod-name

您也可以添加 -o yaml 以获取更多信息

  • $ kubectl describe RESOURCE RESOURCE_NAME
    • 示例:$ kubectl describe pod airflow-pod-name
  • $ kubectl logs POD_NAME
    • 示例:$ kubectl logs airflow-pod-name

其他资源:

  • Kubernetes.io: Docs: Concepts: Cluster administration: Logging Architecture
  • Kubernetes.io: Docs: Tasks: Debug application cluster: Debug cluster

AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了

AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了

问题出现在版本1.22和1.21中,同样的配置在1.19和1.20版本中成功配置没有问题。

kubeadm init
初始化后提示成功,在master第二个节点 kubeadm join时提示
Could not find a JWS signature

于是回到第一个master上看一下cluster info信息
kubectl get configmap cluster-info --namespace=kube-public -o yaml
非常奇怪的是没有jws段,jws是一个证书的签名用来验证证书的token,这里提一下它并不安全最好不要用于所有节点,可以通过kubeadm create token xxx来创建。
没有jws段那么判断没有生效的token,但是用

kubeadm token list
可以看到token全部正常有效,这个问题就很奇怪了。

在阅读bootstrap-tokens鉴权和kubeadm实现细节后发现,原来cluster info中的aws需要在kube-controller-manager运行后创建。

这时才发现kube-controller-manager的pod没有起来,我们知道kubeadm文档中说过如果init后pod有没有成功生效的那么就要发issue证明是kubeadm坏了,这个判断大概率不成立,肯定是kubeadm配置错误。

kubectl describe kube-controller-manager -nkube-system
kubectl logs -n kube-system kube-controller-manager

后提示:
Error: unkNown flag: --horizontal-pod-autoscaler-use-rest-clients

原来1.21的kube-controller-manager不再支持这个参数。
去掉后pod成功启动

Azure AKS:分配静态IP后,Kubernetes窗格继续显示CrashLoopBackOff状态

Azure AKS:分配静态IP后,Kubernetes窗格继续显示CrashLoopBackOff状态

按照@Vitalli的要求,在遍历所创建的pod的Kubernetes日志后,我已经解决了我的问题。键入kubectl logs [podname]后,我意识到Azure SQL DB的IP地址未添加到连接设置的白名单中。添加并删除pod后,它将重新创建pod,并且应用程序将按预期运行。

enter image description here

backoffLimit / maxCrashLoopBackOffRestarts的用法

backoffLimit / maxCrashLoopBackOffRestarts的用法

这些值未正确缩进。他们需要是这样的:

spring:
  cloud:
    dataflow:
      task:
        platform:
          kubernetes:
            accounts:
              k8sp:
                limits:
                    memory: 512Mi
                    cpu: 1
                entry-point-style: exec
                image-pull-policy: always
                backoffLimit: 1
                maxCrashLoopBackOffRestarts: 1

关于我收到Pod错误:来自kubernetes的CrashLoopBackOffpod状态为crashloopback的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Airflow 从 Kubernetes 接收到错误的 POD 状态、AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了、Azure AKS:分配静态IP后,Kubernetes窗格继续显示CrashLoopBackOff状态、backoffLimit / maxCrashLoopBackOffRestarts的用法的相关信息,请在本站寻找。

本文标签: