k8s部署yaml时一直处于Pending状态问题

解决k8s部署dashboard时一直处于Pending状态的问题 部署dashboard时一直处于Pending状态 搭建Dashboard时执行 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml 查看pod状态,一直报错Pending [root@master01 k8s]# kubectl get pods -n kubernetes-dashboard NAME 阅读详情

1.在k8s环境中使用nginx-deployment.yaml部署一个nginx

[root@k8s-master nginx]# cat nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.14.0
        name: nginx
      nodeSelector:
        type: nginx
      tolerations:
      - key: "key"
        operator: "Equal"
        value: "nginx"
        effect: "NoSchedule"

2.查询状态,一直显示为Pending状态,所有节点尝试手动下载镜像,发现还是这个问题。

[root@k8s-master nginx]# kubectl get pods -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP           NODE        NOMINATED NODE   READINESS GATES
cloud-flaskapp-6c785ddd7b-dnhrp     1/1     Running   0          4d17h   10.244.2.2   k8s-node2   <none>           <none>
nginx-deployment-74bbc7fff8-425r9   0/1     Pending   0          12s     <none>       <none>      <none>           <none>
nginx-deployment-8464c54f76-mmg6l   0/1     Pending   0          15s     <none>       <none>      <none>           <none>

3.查看pod的详细信息,发现最后提示Warning FailedScheduling default-scheduler 0/3 nodes are available: 3 node(s) didn’t match node selector.

[root@k8s-master nginx]# kubectl describe pod nginx-deployment-8464c54f76-mmg6l
Name:           nginx-deployment-8464c54f76-mmg6l
Namespace:      default
Priority:       0
Node:           <none>
Labels:         app=nginx
                pod-template-hash=8464c54f76
Annotations:    kubectl.kubernetes.io/restartedAt: 2021-01-18T10:19:42+08:00
Status:         Pending
IP:             
IPs:            <none>
Controlled By:  ReplicaSet/nginx-deployment-8464c54f76
Containers:
  nginx:
    Image:        nginx:1.14.0
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-bzdrm (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  default-token-bzdrm:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-bzdrm
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  type=nginx
Tolerations:     key=nginx:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  0/3 nodes are available: 3 node(s) didn't match node selector.
  Warning  FailedScheduling  <unknown>  default-scheduler  0/3 nodes are available: 3 node(s) didn't match node selector.

4.解决方式,修改yaml文件,将nodeSelector注释掉

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.14.0
        name: nginx
#      nodeSelector:
#        type: nginx
      tolerations:
      - key: "key"
        operator: "Equal"
        value: "nginx"
        effect: "NoSchedule"

5.再在k8s中启动nginx-deployment.yaml,查看pod状态。

[root@k8s-master nginx]# kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx-deployment created
[root@k8s-master nginx]# kubectl get pod -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP           NODE        NOMINATED NODE   READINESS GATES
cloud-flaskapp-6c785ddd7b-dnhrp     1/1     Running   0          4d17h   10.244.2.2   k8s-node2   <none>           <none>
nginx-deployment-7b988d8687-vrkvw   1/1     Running   0          8s      10.244.2.3   k8s-node2   <none>           <none>

6.另外一种方式,也可以修改k8s节点中,将node节点添加type=nginx的label,也是可以的。
查看当前节点信息

[root@k8s-master nginx]# kubectl  get node -o wide --show-labels
NAME         STATUS   ROLES    AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION              CONTAINER-RUNTIME   LABELS
k8s-master   Ready    master   6d20h   v1.17.0   172.30.18.19   <none>        CentOS Linux 7 (Core)   3.10.0-862.2.3.el7.x86_64   docker://20.10.2    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node1    Ready    worker   6d20h   v1.17.0   172.30.18.15   <none>        CentOS Linux 7 (Core)   3.10.0-862.2.3.el7.x86_64   docker://20.10.2    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker
k8s-node2    Ready    <none>   6d19h   v1.17.0   172.30.18.10   <none>        CentOS Linux 7 (Core)   3.10.0-862.2.3.el7.x86_64   docker://20.10.2    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux

修改k8s-node1节点label为type=nginx,在k8s-node1节点信息最后会添加type=nginx的信息。

[root@k8s-master nginx]# kubectl  label nodes k8s-node1 type=nginx
node/k8s-node1 labeled
[root@k8s-master nginx]# kubectl  get node -o wide --show-labels
k8s-master   Ready    master   6d20h   v1.17.0   172.30.18.19   <none>        CentOS Linux 7 (Core)   3.10.0-862.2.3.el7.x86_64   docker://20.10.2    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node1    Ready    worker   6d20h   v1.17.0   172.30.18.15   <none>        CentOS Linux 7 (Core)   3.10.0-862.2.3.el7.x86_64   docker://20.10.2    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,node-role.kubernetes.io/worker=worker,type=nginx
k8s-node2    Ready    <none>   6d19h   v1.17.0   172.30.18.10   <none>        CentOS Linux 7 (Core)   3.10.0-862.2.3.el7.x86_64   docker://20.10.2    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux

再运行nginx-deployment.yaml,这个文件中没有注释nodeSelector两行代码。

[root@k8s-master nginx]# kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx-deployment created
[root@k8s-master nginx]# kubectl get pods -o wide
NAME                                READY   STATUS    RESTARTS   AGE     IP            NODE        NOMINATED NODE   READINESS GATES
cloud-flaskapp-6c785ddd7b-dnhrp     1/1     Running   0          4d18h   10.244.2.2    k8s-node2   <none>           <none>
nginx-deployment-84fdbd9f54-4cpsp   1/1     Running   0          108s    10.244.1.11   k8s-node1   <none>           <none>
k8s中calico网络组件部署时一个节点一直处于Pending状态 default-scheduler 0/3 nodes are available: 1 Insufficient cpu, 2 node(s) didn't match Pod's node affinity/selector 阅读详情

相关推荐

部署k8s基础环境、配置内核模块、基本组件安装

K8S基本概念(功能、架构);部署k8s基础环境;配置内核模块;基本组件安装;

m0_73907608的博客 2730

彻底搞懂 K8S Pod Pending 故障原因及解决方案

点击上方“程序猿技术大咖”,关注并选择“设为星标”回复“加群”获取入群讨论资格!即使在高成熟度级别 Kubernetes 集群中 pod pending 也是无处不在。如果您随机询问任何使用 Kubernetes DevOps 工程师来确定折磨他们噩梦的最常见错误,pod pending 可能是非常常见的问题(可能仅次于 CrashLoopBackOff)。尝试推送更新并...

xcbeyond|疯狂源自梦想,技术成就辉煌 3万+

Kubernetes应用部署实战:从零构建可落地的YAML四件套

Kubernetes部署本质上是将容器化应用通过声明式配置可靠地交付到集群中运行的过程。其核心原理在于利用Deployment、Service、ConfigMap和Secret四大原生资源,实现应用生命周期管理、服务发现、配置解耦与密钥安全。这种基于YAML的基础设施即代码(IaC)方式,不仅支撑了CI/CD自动化与GitOps实践,更成为云原生时代应用上线的标准范式。典型应用场景包括Java/Spring Boot等后端服务上K8s、微服务治理基础搭建,以及中小团队快速构建稳定生产环境。本文聚焦真实环境中

weixin_34183910的博客 491

k8s pod一直处于pending状态

k8s pod一直处于pending状态,使用下面的命令,查看log,找出详细的错误信息。 # kubectl get pod # kubectl describe pod pod_name -n kube-system # kubectl logs pod_name

yjk13703623757的博客 1万+

Sealos应用商店:让Kubernetes部署从YAML走向表单化

在云原生环境中,Kubernetes作为容器编排标准,原生部署往往需要同时管理Deployment、Service、Ingress、PVC、Secret等多种资源对象,学习成本和运维复杂度都较高。应用商店模式通过将部署过程模板化、表单化,屏蔽底层YAML细节,让用户只需关注业务参数。其核心原理是利用模板引擎渲染出标准的Kubernetes资源,并统一处理持久化存储、敏感信息和访问入口。这种模式特别适合数据库、消息队列等有状态应用的一键交付,也便于团队内部实现应用发布的标准化与复用。Sealos应用商店正是这

weixin_33788244的博客 330

K8S篇之Pod一直处于Pending状态原因解析

Pod一直处于Pending原因解析

小橙子的笔记屋 5812

解决Kubernetes上部署elastic search出现pending的问题

场景与问题: 要在Kubernetes上配置Elastic Search,但是根据官方教程来配置时,节点一直处于以下状态: 而pod也处于pending状态: 按照官网的解决方法并不能很好的解决问题,因此记录。 原因分析: 可能有以下几类原因: 计算资源不足 【重要】没有绑定PV(Persistence Volume) Java虚拟机等其他原因 解决方案: 逐个进行解决: 1.解决计算资源不足 参考官网解决计算资源不足的办法: 修改elastic search的配置文件quickstart.yaml

weixin_43144516的博客 1301

K8S部署的pod一直处于Pending状态问题解决

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 3217

kubernetes的pod或instance一直处于pending状态的解决方案

问题复现: 6台虚拟机上,kong组件(一个用于部署api服务的组件)副本数为4,总有一两个instance起不起来,一直处于pending状态,如下: 解决思路: 整体解决思路:pod -> instance -> DeamonSet -> ConfigMap 1、哪里有问题就进去干,话不多说,直接describe一下处于pending...

little prince,blue coder 6万+

K8S集群中Pod资源处于Pending状态排查思路

Pending状态表示挂起,处于该状态的原因有以下几点:处于Pending状态的原因最有可能的就是调度的Node节点上资源不足了。1)首先去排查节点的资源使用情况,使用命令查看内存的使用情况,命令查看系统的负载及CPU使用情况,查看磁盘的使用情况,快速定位是否是由于节点资源不足而引发的问题。如果资源充足,那么就可以排除是节点自身的问题了。2)被调度的节点可能存在污点配置,当K8S集群安装完成后,Master默认是开启污点的,开启污点的节点不允许被调度,可以进一步使用命令排查节点是否设置了污点操作,如果设置了

江晓龙的博客 1万+

k8s 重新部署 jenkins 后一直 Pending【排查分析】

K8s 中重新部署 jenkins,发现一直Pending,怎么破?

甘蓝的专栏 671

Python应用程序部署至K8s——循序渐进版

(1)修改admin.conf等配置文件,并且应用配置,但是在其中也会报错。⚠注:在工作节点中,很可能一开始就不存在admin.conf文件,需要将主节点中的文件复制到工作节点上的对应位置;问题描述:盒子联网时地IP并不总是固定的,如果在配置文件没有同步更改IP的情况下,就会出现集群无法使用的情况。解决方法:将程序设置成能够常驻的,并且在创建容器时使用交互式,即可看到输出以及Pod运行正常。原因:python不能够常驻,只能运行一次,且是后台运行情况,则会出错。Ⅰ.将主节点(master)中的“/etc/

wmy2002718的博客 1871

如何实现chrome谷歌浏览器多开(独立环境 独立cookie)

由于各种各样的原因,你可能需要在一个电脑登录某个平台,比如一个电脑登录3个公众号,或者3个知乎等等。最简单的方案是,直接安装3个不同的浏览器,比如一个谷歌浏览器,一个火狐浏览器,一个 Edge 浏览器。这个方案也能解决,但如果想多开10个呢?安装10个不同的浏览器也能解决,但感觉这样比较复杂,另外一方面安装太多的应用,会导致电脑卡顿。这里给大家介绍,我在 Win 和 Mac 系统下的躲开解决方案。Win 系统下的解决方案最为简单,原理就是给不同的谷歌浏览器,指向不同的用户存储路径即可。

lzqial1987的专栏 1万+

k8s 学习笔记 之 statefulset 应用 为何总是pending 状态

k8s pv 和 PVC 为何绑定不上使用statefuset 部署有状态应用,应用总是处于pending 状态,在开始之前先介绍什么是statefuset, 在 k8s 中一般用 deployment 管理无状态应用,statefuset 用来管理有状态应用,如 redis 、mysql 、zookper 等分布式应用,这些应用的启动停止都会有严格的顺序一、state...

chanzhoujian8385的博客 1596

2019年7月28日解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 00840

Blizzard—Battle.net—2019年7月28解决战网BLZBNTBNA00000005BLZBNTBNA00000006BLZBNTBTS0000005DBLZBNTBTS0000004A 007D0 008A4 008402019年7月28日再次更新写在前面■■■ 排查网路问题 ■■■■■■ 排查电脑自身问题 ■■■■尝试重置internet设置■网络的设置和防火墙规则■如果还是不...

MCGC高质人类协作会-MCG贴吧 3万+

YOLOv8n轻量化实战:10分钟打通实时摄像头目标检测,附参数调优与避坑指南

本文介绍了如何快速入门YOLOv8目标检测框架,通过摄像头实战实现实时检测。YOLOv8凭借轻量化架构和跨平台优势,是新手入门的理想选择。文章详细讲解了环境搭建(1分钟完成)、核心代码逻辑(3分钟掌握)以及性能调优技巧(3分钟进阶),提供可直接运行的代码示例。重点包括:模型选择(优先yolov8n.pt)、摄像头参数优化、置信度阈值调整、检测类别指定等实用技巧,帮助开发者快速实现10-15FPS的实时检测效果,并针对不同场景提供优化建议。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 370

k8s-csi-s3 排障笔记:PVC Pending 与挂载失败的 8 个定位动作

k8s-csi-s3 是一个 Kubernetes CSI 驱动,把 S3 兼容的对象存储(AWS S3、Yandex Object Storage 等)动态挂载为持久卷。这份笔记面向负责存储的运维和后端同学,把 PVC Pending 排查、k8s S3 挂载失败这类 CSI 驱动部署故障,从基础体检到 geesefs 配置与版本兼容,拆成 8 个可执行动作。按顺序核对即可定位问题,不必逐台节点

gitblog_00690的博客 513

C++ PCL点云处理实战专栏

工业级点云处理技术学习资源,涵盖电力、建筑、隧道等领域的实战案例。内容分为三阶段:代码原理(算法认知)、动态库(项目验证)和完整代码(定制开发)。

weixin_45196569的博客 1117

k8s dashboard可视化界面部署

本文介绍了解决K8s集群中Node状态为NotReady和CoreDNS处于Pending状态的方法,并部署了K8s Dashboard可视化界面。首先解释了CoreDNS作为服务发现组件的重要性,它能解决Pod动态变化带来的IP地址变化问题。接着通过部署Calico网络插件解决CoreDNS问题,并详细说明了Dashboard的部署过程,包括修改Service配置、创建管理员账户和获取访问token。最后提到后续将部署.NET Core应用程序到集群中。全文提供了从网络问题排查到Dashboard部署的完

chenpan01的专栏 1814

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

前程算法屋的博客 5593

为什么我的OpenClaw安装后无法启动?Gateway服务故障排查全攻略

OpenClaw是一款功能强大的自动化工具,但其安装和运行依赖于多个服务组件,其中Gateway服务是核心组件之一。如果Gateway服务无法启动,整个OpenClaw系统将无法正常运行。本文将详细介绍OpenClaw安装后无法启动的常见原因及故障排查方法,帮助你快速定位并解决问题。

一键难忘的博客 4623

ECK在Kubernetes上部署Elasticsearch集群:YAML声明式管理实战

在云原生时代,Kubernetes已成为容器编排的事实标准,而声明式API正是其核心设计哲学。通过Operator模式,复杂的分布式应用也能像普通工作负载一样被自动化管理。Elastic Cloud on Kubernetes(ECK)正是这一理念在Elasticsearch领域的最佳实践,它让用户只需编写一份YAML清单,即可定义集群的期望状态,包括节点角色、存储容量、资源配额等,由控制器自动完成StatefulSet、Service、Secret的创建与滚动升级。这种管理方式不仅显著降低了运维门槛,还保

weixin_34234829的博客 289

端侧 AI 落地避坑指南(中):为什么 QAT 救不了精度?——对齐“融合后算子“的硬件物理约束

在上一篇文章中,我们深入探讨了量化的本质,并得出结论:QAT(量化感知训练)是保持精度的关键。明明做了 QAT,精度还是崩塌了!让我们看一个真实的案例:✅ 使用了✅ 配置了量化✅ 训练了 50 个 epoch,学习率降为原来的 1/10✅ 冻结了 BN 统计量FP32 模型:mAP = 0.85QAT 后 FP32:mAP = 0.84(正常)工具量化后:mAP = 0.68(崩塌!问题出在哪里?层融合(Layer Fusion)机制。

weixin_51988935的博客 55

ECK实战:在Kubernetes中用YAML快速部署Elasticsearch与Kibana

Kubernetes作为容器编排的事实标准,正在改变有状态应用的部署方式。传统手工编写StatefulSet、Service和PVC来运行Elasticsearch,往往面临配置复杂、升级困难、节点发现不稳定等挑战。Operator模式的出现,将领域运维经验固化为代码,通过声明式API自动完成应用的部署、扩缩容和自愈。Elastic Cloud on Kubernetes(ECK)正是这一思想的官方实践,它让用户仅需几个YAML文件即可在K8s集群中拉起完整的Elastic Stack。本文从Operato

weixin_29231027的博客 324

Python 【编程实战】玩转 MCP 在工具函数中获取请求 Headers 的正确姿势

本文介绍了如何在使用FastMCP框架的工具函数中获取请求信息。通过Context对象可以访问请求上下文,包括请求头、用户信息等。具体实现方式是在工具函数中注入ctx:Context参数,通过ctx.request_context.request获取Starlette的Request对象,从而访问headers等信息。Context参数的位置可以灵活放置,但建议放在函数参数的开头或末尾。这种机制为权限校验、数据打点等操作提供了统一访问不同通信模式下请求信息的解决方案。

wjianwei666的专栏 388

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Kubernetes (K8s) 运维命令速查手册

Kubernetes (K8s) 运维命令速查手册摘要 本文整理了 Kubernetes 运维中最常用的 kubectl 命令,方便开发者快速查阅。内容涵盖: 集群信息:版本检查(version)、节点状态(get nodes)、上下文切换(config use-context) Pod操作:查看日志(logs)、进入容器(exec)、删除重建(delete pod) Deployment管理:扩缩容(scale)、滚动更新(rollout)、版本回滚(undo) Service配置:服务暴露(expose

yimomrik的博客 297

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 安装centos7操作系统,安装界面在选择语言时卡主
下一篇: openstack queens horizon登录异常情况
skyroach
博客等级 码龄7年 37粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值