对于我收到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)
- Airflow 从 Kubernetes 接收到错误的 POD 状态
- AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了
- Azure AKS:分配静态IP后,Kubernetes窗格继续显示CrashLoopBackOff状态
- backoffLimit / maxCrashLoopBackOffRestarts的用法
我收到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 状态
从日志/故障排除的角度回答问题:
我相信 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-apiserver
和 kubernetes-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 错误启动不了
问题出现在版本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状态
按照@Vitalli的要求,在遍历所创建的pod的Kubernetes日志后,我已经解决了我的问题。键入kubectl logs [podname]
后,我意识到Azure SQL DB的IP地址未添加到连接设置的白名单中。添加并删除pod后,它将重新创建pod,并且应用程序将按预期运行。
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的CrashLoopBackOff和pod状态为crashloopback的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Airflow 从 Kubernetes 接收到错误的 POD 状态、AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了、Azure AKS:分配静态IP后,Kubernetes窗格继续显示CrashLoopBackOff状态、backoffLimit / maxCrashLoopBackOffRestarts的用法的相关信息,请在本站寻找。
本文标签: