pod一直处于Pending状态且修改statefulset 有些不允许直接修改

一、问题:pod一直处于Pending状态

        问题排查


kubectl describe pod jenkins-0

         排查结果:意思是内存和CPU不足

二、解决办法第一步:修改内存和CPU后报错如何:

kubectl apply -f jenkins-statefulset.yaml

#输出提示:

The StatefulSet "jenkins" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden

        意思是除了 'replicas', 'template',  'updateStrategy'   其他部分都是不可以改的。

二、解决办法第二步:备份一下当前 statefulset 的配置文件  把当前的 statefulset删掉 重新apply新的文件。

cp  cp jenkins-statefulset.yaml jenkins-statefulset-new.yaml

#jenkins为name
kubectl delete statefulsets.apps  jenkins

#或基于配置文件来删除
kubectl delete -f jenkins-statefulset.yaml

kubectl apply -f jenkins-statefulset-new.yaml

Pod 一直处于 Pending 状态通常是由于以下几个原因: 1. 调度问题:Kubernetes 集群中的节点可能没有足够的资源(如 CPU、内存、存储)来运行 Pod。您可以使用 `kubectl describe pod <pod-name>` 命令来查看 Pod 的详细信息,了解它为什么无法调度。 2. 网络问题:Pod 可能无法与 Kubernetes 集群中的其他组件通信。您可以使用 `kubectl describe pod <pod-name>` 命令来查看 Pod 的详细信息,查看是否存在网络问题。 3. 挂载问题:如果 Pod 挂载了 PVC(Persistent Volume Claim)并且 PVC 无法满足 Pod 的要求,那么 Pod 可能会一直处于 Pending 状态。您可以使用 `kubectl describe pvc <pvc-name>` 命令来查看 PVC 的详细信息,了解它是否满足 Pod 的要求。 4. 镜像拉取问题:如果 Pod 的容器镜像无法拉取或者拉取速度很慢,那么 Pod 可能会一直处于 Pending 状态。您可以使用 `kubectl describe pod <pod-name>` 命令来查看 Pod 的详细信息,查看是否存在镜像拉取问题。 针对以上原因,您可以通过以下方式进行排查和解决: 1. 调整资源配额或者增加节点资源; 2. 检查网络配置,确保 Pod 可以与其他组件通信; 3. 检查 PVC 是否满足 Pod 的要求,如果需要可以修改 PVC 的配置; 4. 检查容器镜像是否可用,可以尝试使用 `docker pull <image-name>` 命令手动拉取镜像,或者使用国内的镜像加速器来加速镜像拉取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值