02 基本介绍及Pod基础排错

news2025/5/21 5:43:36

01 yaml文件里的字段错误

# 多打了一个i导致的报错
[root@master01 yaml]# cat 01-pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: likexy
spec:
  contaiiners:
  - name: aaa
    image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
[root@master01 yaml]# kubectl apply -f 01-pod.yaml 
error: error validating "01-pod.yaml": error validating data: [ValidationError(Pod.spec): unknown field "contaiiners" in io.k8s.api.core.v1.PodSpec, ValidationError(Pod.spec): missing required field "containers" in io.k8s.api.core.v1.PodSpec]; if you choose to ignore these errors, turn validation off with --validate=false

image-20250520134417716

图1 报错详情

02 重复创建资源

[root@master01 yaml]# kubectl apply -f 02-network.yaml 
The Pod "likexy" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds`, `spec.tolerations` (only additions to existing tolerations) or `spec.terminationGracePeriodSeconds` (allow it to be set to 1 if it was previously negative)
  core.PodSpec{
  	Volumes:        {{Name: "kube-api-access-cm7wz", VolumeSource: {Projected: &{Sources: {{ServiceAccountToken: &{ExpirationSeconds: 3607, Path: "token"}}, {ConfigMap: &{LocalObjectReference: {Name: "kube-root-ca.crt"}, Items: {{Key: "ca.crt", Path: "ca.crt"}}}}, {DownwardAPI: &{Items: {{Path: "namespace", FieldRef: &{APIVersion: "v1", FieldPath: "metadata.namespace"}}}}}}, DefaultMode: &420}}}},
  	InitContainers: nil,
  	Containers: []core.Container{
  		{
- 			Name:    "b",
+ 			Name:    "aaa",
  			Image:   "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1",
  			Command: nil,
  			... // 4 identical fields
  			Env:          nil,
  			Resources:    {},
- 			VolumeMounts: nil,
+ 			VolumeMounts: []core.VolumeMount{
+ 				{
+ 					Name:      "kube-api-access-cm7wz",
+ 					ReadOnly:  true,
+ 					MountPath: "/var/run/secrets/kubernetes.io/serviceaccount",
+ 				},
+ 			},
  			VolumeDevices: nil,
  			LivenessProbe: nil,
  			... // 10 identical fields
  		},
  	},
  	EphemeralContainers: nil,
  	RestartPolicy:       "Always",
  	... // 5 identical fields
  	AutomountServiceAccountToken: nil,
  	NodeName:                     "node03",
  	SecurityContext: &core.PodSecurityContext{
- 		HostNetwork: true,
+ 		HostNetwork: false,
  		HostPID:     false,
  		HostIPC:     false,
  		... // 11 identical fields
  	},
  	ImagePullSecrets: nil,
  	Hostname:         "",
  	... // 16 identical fields
  }

image-20250520155341241

图2 重复创建名字为likexy的报错
# 解决方案
	# 删除并重新创建 Pod
	# 修改Yaml文件

03 容器的镜像名字错误

[root@master01 yaml]# cat 02-network.yaml 
apiVersion: v1
kind: Pod
metadata: 
  name: likeixy
spec:
  hostNetwork: true
  containers:
  - name: b
    # image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
    image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v100
[root@master01 yaml]# kubectl apply -f 02-network.yaml 
pod/likeixy configured
[root@master01 yaml]# kubectl get pods -o wide
NAME      READY   STATUS             RESTARTS      AGE     IP            NODE     NOMINATED NODE   READINESS GATES
likeixy   0/1     ImagePullBackOff   0 (20s ago)   8m43s   172.2.25.52   node01   <none>           <none>
# 镜像名字错误,导致状态为ImagePullBackOff:镜像拉取失败

image-20250520160931991

图3 镜像名写错了
[root@master01 yaml]# kubectl describe pod likeixy 
Name:         likeixy
Namespace:    default
Priority:     0
Node:         node01/172.2.25.52
Start Time:   Tue, 20 May 2025 16:00:31 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           172.2.25.52
IPs:
  IP:  172.2.25.52
Containers:
  b:
    Container ID:   docker://390c2930bab1c54b8275a7889226a73267951fefb78ade253b07cd32f93e1ad9
    Image:          registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v100
    Image ID:       docker-pullable://registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps@sha256:3bee216f250cfd2dbda1744d6849e27118845b8f4d55dda3ca3c6c1227cc2e5c
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       ImagePullBackOff
    Last State:     Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Tue, 20 May 2025 16:00:32 +0800
      Finished:     Tue, 20 May 2025 16:08:54 +0800
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-k6xv2 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  kube-api-access-k6xv2:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  14m                    default-scheduler  Successfully assigned default/likeixy to node01
  Normal   Pulled     14m                    kubelet            Container image "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1" already present on machine
  Normal   Created    14m                    kubelet            Created container b
  Normal   Started    14m                    kubelet            Started container b
  Normal   Killing    5m53s                  kubelet            Container b definition changed, will be restarted
  Normal   BackOff    5m24s (x2 over 5m52s)  kubelet            Back-off pulling image "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v100"
  Warning  Failed     5m24s (x2 over 5m52s)  kubelet            Error: ImagePullBackOff
  Normal   Pulling    4m20s (x4 over 5m53s)  kubelet            Pulling image "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v100"
  Warning  Failed     4m19s (x4 over 5m53s)  kubelet            Failed to pull image "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v100": rpc error: code = Unknown desc = Error response from daemon: manifest for registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v100 not found: manifest unknown: manifest unknown
  Warning  Failed     4m19s (x4 over 5m53s)  kubelet            Error: ErrImagePull
  Warning  BackOff    3m26s (x7 over 5m1s)   kubelet            Back-off restarting failed container

image-20250520161525465

图4 提示镜像拉取失败

04 镜像名字格式不正确

# 这个也是镜像拉取失败,因为定义镜像名称是含有大写字母,所以报错

image-20250520163045672

图5 错误提示,提示图像命名不合法
[root@master01 yaml]# kubectl describe pod likeixy 
Name:         likeixy
Namespace:    default
Priority:     0
Node:         node01/172.2.25.52
Start Time:   Tue, 20 May 2025 16:30:25 +0800
Labels:       <none>
Annotations:  <none>
Status:       Pending
IP:           172.2.25.52
IPs:
  IP:  172.2.25.52
Containers:
  b:
    Container ID:   
    Image:          registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/Apps:v1
    Image ID:       
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       InvalidImageName
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-dvhcl (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  kube-api-access-dvhcl:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason         Age               From               Message
  ----     ------         ----              ----               -------
  Normal   Scheduled      72s               default-scheduler  Successfully assigned default/likeixy to node01
  Warning  InspectFailed  5s (x7 over 71s)  kubelet            Failed to apply default image tag "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/Apps:v1": couldn't parse image reference "registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/Apps:v1": invalid reference format: repository name must be lowercase
  Warning  Failed         5s (x7 over 71s)  kubelet            Error: InvalidImageName

image-20250520163223926

图6 提示名字必须是小写字母

05 休眠

[root@master01 yaml]# cat 02-network.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: oldboyedu-xiuxian-command
spec:
  hostNetwork: true
  containers:
  - name: c1
    image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
    # 修改容器的启动命令,相当于替换了Dockerfile的ENTRYPOINT指令
    command: ["sleep","3600"]
[root@master01 yaml]# kubectl apply -f 02-network.yaml 
pod/oldboyedu-xiuxian-command created
[root@master01 yaml]# kubectl get pods -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
oldboyedu-xiuxian-command   1/1     Running   0          12s   172.2.25.52   node01   <none>           <none>

image-20250520163741597

图7 表面上容器是正常运行的

image-20250520163833958

图8 使用Curl命令是拒绝连接的
[root@master01 yaml]# kubectl exec -it oldboyedu-xiuxian-command -- sh
/ # ps -ef
PID   USER     TIME  COMMAND
    1 root      0:00 sleep 3600
    7 root      0:00 sh
   12 root      0:00 ps -ef
/ # nginx
2025/05/20 08:40:02 [notice] 13#13: using the "epoll" event method
2025/05/20 08:40:02 [notice] 13#13: nginx/1.20.1
2025/05/20 08:40:02 [notice] 13#13: built by gcc 10.2.1 20201203 (Alpine 10.2.1_pre1) 
2025/05/20 08:40:02 [notice] 13#13: OS: Linux 3.10.0-1160.el7.x86_64
2025/05/20 08:40:02 [notice] 13#13: getrlimit(RLIMIT_NOFILE): 4096:4096
2025/05/20 08:40:02 [notice] 14#14: start worker processes
2025/05/20 08:40:02 [notice] 14#14: start worker process 15
2025/05/20 08:40:02 [notice] 14#14: start worker process 16
/ # ps -ef
PID   USER     TIME  COMMAND
    1 root      0:00 sleep 3600
    7 root      0:00 sh
   14 root      0:00 nginx: master process nginx
   15 nginx     0:00 nginx: worker process
   16 nginx     0:00 nginx: worker process
   17 root      0:00 ps -ef

image-20250520164105088

图9 进入容器发现有睡眠一小时的启动命令,手动启动Nginx

image-20250520164243937

图10 这回是能够Curl通的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2380481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

⼆叉搜索树详解

1. ⼆叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树: • 若它的左⼦树不为空&#xff0c;则左⼦树上所有结点的值都⼩于等于根结点的值 • 若它的右⼦树不为空&#xff0c;则右⼦树上所有结点的值都⼤于等于根结…

如何使用通义灵码提高前端开发效率

工欲善其事&#xff0c;必先利其器。对于前端开发而言&#xff0c;使用VSCode已经能够极大地提高前端的开发效率了。但有了AI加持后&#xff0c;前端开发的效率又更上一层楼了&#xff01; 本文采用的AI是通义灵码插件提供的通义千问大模型&#xff0c;是目前AI性能榜第一梯队…

Android Studio Kotlin 中的方法添加灰色参数提示

在使用 Android Studio 时&#xff0c; 我发现使用 Java 编写方法后在调用方法时&#xff0c; 会自动显示灰色的参数。 但在 Kotlin 中没有显示&#xff0c; 于是找了各种方法最后找到了设置&#xff0c; 并且以本文章记录下来。 博主博客 https://blog.uso6.comhttps://blog.…

TCP协议简介

TCP 协议 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是互联网协议套件中的核心协议之一&#xff0c;位于传输层。它提供了一种可靠的、面向连接的、基于字节流的数据传输服务。TCP 的主要特点是确保数据在传输过程中不丢失、不重复&a…

Linux学习心得问题整理(二)

day05 Linux基础入门 Linux语法解析 如何理解ssh远程连接?如何使用ssh使用远程连接服务&#xff1f; ssh进也称远程服务终端&#xff0c;常见连接方式可以包括windows和Linux两种方式 首先咱们使用windows窗口进行连接&#xff0c;这里就采用xshell连接工具来给大家做演示吧…

SOC-ESP32S3部分:2-2-VSCode进行编译烧录

飞书文档https://x509p6c8to.feishu.cn/wiki/CTzVw8p4LiaetykurbTciA42nBf?fromScenespaceOverview 无论是使用Window搭建IDF开发环境&#xff0c;还是使用Linux Ubuntu搭建IDF开发环境&#xff0c;我们都建议使用VSCode进行代码编写和编译&#xff0c;VSCode界面友好&#x…

Python虚拟环境再PyCharm中自由切换使用方法

Python开发中的环境隔离是必不可少的步骤,通过使用虚拟环境可以有效地管理不同项目间的依赖,避免包冲突和环境污染。虚拟环境是Python官方提供的一种独立运行环境,每个项目可以拥有自己单独的环境,不同项目之间的环境互不影响。在日常开发中,结合PyCharm这样强大的IDE进行…

使用Mathematica绘制一类矩阵的特征值图像

学习过线性代数的&#xff0c;都知道&#xff1a;矩阵的特征值非常神秘&#xff0c;但却携带着矩阵的重要信息。 今天&#xff0c;我们将展示&#xff1a;一类矩阵&#xff0c;其特征值集体有着很好的分布特征。 modifiedroots[c_List] : Block[{a DiagonalMatrix[ConstantAr…

SpringBoot-6-在IDEA中配置SpringBoot的Web开发测试环境

文章目录 1 环境配置1.1 JDK1.2 Maven安装配置1.2.1 安装1.2.2 配置1.3 Tomcat1.4 IDEA项目配置1.4.1 配置maven1.4.2 配置File Encodings1.4.3 配置Java Compiler1.4.4 配置Tomcat插件2 Web开发环境2.1 项目的POM文件2.2 项目的主启动类2.3 打包为jar或war2.4 访问测试3 附录3…

基于springboot+vue的病例管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 患者信息管理 医…

SpringBoot(三)--- 数据库基础

目录 前言 一、MySQL 1. 关系型数据库 2.数据模型 二、SQL语句 1.DDL语句 1.1 数据库操作 1.1.1 查询数据库 1.1.2 创建数据库 1.1.3 使用数据库 1.1.4 删除数据库 1.2 表操作 1.2.1 创建表 1.2.2 约束 1.2.3 数据类型 2.DML语句 2.1 增加&#xff08;insert&…

【漫话机器学习系列】268. K 折交叉验证(K-Fold Cross-Validation)

图解 K 折交叉验证&#xff08;K-Fold Cross-Validation&#xff09;| 原理 数学公式 实践应用 原图作者&#xff1a;Chris Albon&#xff0c;手绘风格清晰易懂&#xff0c;本文基于其图解做详细扩展&#xff0c;适用于机器学习、深度学习初学者及进阶者参考学习。 一、什么是…

【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核

如果你在conda的base环境运行了jupyter lab打开了一个ipynb文本&#xff0c;此时选择的内核是base虚拟环境的Python内核&#xff0c;如果我想切换成其他conda虚拟环境来运行这个文件该怎么办&#xff1f;下面我们试着还原一下问题&#xff0c;并且解决问题。 【注】 这个问题出…

【Boost搜索引擎】构建Boost站内搜索引擎实践

目录 1. 搜索引擎的相关宏观原理 2. 正排索引 vs 倒排索引 - 搜索引擎具体原理 3. 编写数据去标签与数据清洗的模块 Parser 去标签 编写parser 用boost枚举文件名 解析html 提取title ​编辑 去标签 构建URL 将解析内容写入文件中 4. 编写建立索引的模块 Index 建…

Nginx配置记录访问信息

文章目录 方法一&#xff1a;使用Nginx原生配置记录访问信息方法二&#xff1a;使用Nginx_headers_more模块记录更加详细的信息 Nginx被广泛应用于各种场景如&#xff1a;Web服务器、反向代理服务器、负载均衡器、Web应用防火墙(WAF)等 在实际的产品开发中&#xff0c;无论是功…

HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)

1. SGCC_Electricity 应用介绍 SGCC_Electricity 是一个用于将国家电网&#xff08;State Grid Corporation of China&#xff0c;简称 SGCC&#xff09;的电费和用电量数据接入 Home Assistant 的自定义集成组件。通过该应用&#xff0c;用户可以实时追踪家庭用电量情况&…

JAVA EE(进阶)_HTML

思如云烟&#xff0c;行若磐石。 ——陳長生. ❀主页&#xff1a;陳長生.-CSDN博客❀ &#x1f4d5;上一篇&#xff1a;JAVA EE&#xff08;进阶&#xff09;_进阶的开端-CSDN博客 1.HTML HTML&#xff08;HyperText Mark…

职坐标AIoT技能培训课程实战解析

职坐标AIoT技能培训课程以人工智能与物联网技术深度融合为核心&#xff0c;构建了“理论实战行业应用”三位一体的教学体系。课程体系覆盖Python编程基础、传感器数据采集、边缘计算开发、云端服务部署及智能硬件开发全链路&#xff0c;通过分层递进的知识模块帮助学员建立系统…

8-游戏详情制作(Navigation组件)

1.1 需求 使用Navigation实现游戏主详情视图&#xff0c;从瀑布流容器中的游戏项&#xff08;游戏中心首页-游戏瀑布流列表&#xff09;点击游戏后进入游戏详情页&#xff0c;从游戏详情页可以返回游戏列表主页。 1.2 界面原型 从瀑布流组件进入&#xff1a; 游戏详情&#…

Unity引擎源码-物理系统详解-其二

继续我们关于Unity的物理系统的源码阅读&#xff0c;不过这一次我们的目标是PhysX引擎——这个Unity写了一堆脚本来调用API的实际用C写成的底层物理引擎。 Github的地址如下&#xff1a;NVIDIA-Omniverse/PhysX: NVIDIA PhysX SDK (github.com) 下载后发现由三个文件组成&…