当前位置: 首页 > news >正文

kubernetes_pods资源清单及常用命令

示例:

apiVersion: v1
kind: Pod
metadata:name: nginx-podnamespace: defaultlabels:app: nginx
spec:containers:- name: nginx-containerimage: nginx:1.21ports:- containerPort: 80

多个容器运行示例

apiVersion: v1
kind: Pod
metadata:name: linux85-nginx-tomcat
spec:containers:
- name: nginximage: nginx:1.23.4-alpine
- name: tomcatimage: tomcat:jre8-alpine

在这里插入图片描述

apiVersion: v1
描述的是资源使用的 API 版本。Kubernetes 中的 API 版本是按功能和稳定性分层的,例如 v1(稳定版)、apps/v1(应用程序组资源)、batch/v1(批处理任务资源)等。不同的资源类型可能属于不同的 API 组和版本。

这里指定的是 v1 版本的 API,表示这个资源使用 Kubernetes 核心 API 的第一个版本。

kind: Pod
指定 Kubernetes 资源的类型。比如 Pod、Service、Deployment、ConfigMap 等。这个字段定义了资源的具体类别,告诉 Kubernetes 这是一个什么样的对象。
这是一个 Pod 资源,表明这个 YAML 定义了一个 Pod 对象。

metadata:
包含资源的元数据,主要包括:
name:资源的名称,用于唯一标识这个对象。
namespace:资源所属的命名空间,默认是 default,可以指定其他命名空间。
labels:用于标识资源的键值对,方便管理和选择器操作。
annotations:注解,提供额外的元数据,通常用来存储不影响资源对象本身的辅助信息(例如调试、监控信息等)。
name: nginx-pod
Pod 的名称是 nginx-pod,这是该 Pod 在 Kubernetes 集群中的唯一标识。
namespace: default
这个 Pod 位于 default 命名空间中。
labels:
app: nginx
标签定义了一个键值对 app: nginx,这可以用作选择器,方便其他资源(如服务)与其进行关联。

spec:
定义资源的期望状态。用户在这个字段中描述自己希望资源以什么方式运行,比如在 Deployment 中可以指定副本数量(replicas),在 Pod 中可以定义容器的镜像、挂载卷等。
containers:
这是 Pod 内部的容器定义。此 Pod 中有一个名为 nginx-container 的容器:
name: nginx-container
容器的名称。
image: nginx:1.21
这个容器使用的是官方 nginx 镜像的 1.21 版本。
ports:
containerPort: 80
容器将暴露端口 80,用于接收 HTTP 请求。

#创建工作目录[root@master210 ~]# mkdir -pv /test_demo/pods/ && cd /test_demo/pods/
mkdir: 已创建目录 "/test_demo"
mkdir: 已创建目录 "/test_demo/pods/"
[root@master210 pods]# #编写资源清单
[root@master210 pods]# cat nginx.yaml 
apiVersion: v1
kind: Pod
metadata:name: nginx-podnamespace: defaultlabels:app: nginx
spec:containers:- name: nginx-containerimage: nginx:1.21ports:- containerPort: 80[root@master210 pods]# kubectl apply -f nginx.yaml 
pod/nginx-pod created
[root@master210 pods]# kubectl get pods
NAME        READY   STATUS    RESTARTS   AGE
nginx-pod   1/1     Running   0          3s
[root@master210 pods]#  kubectl get pods -o wide
NAME        READY   STATUS    RESTARTS   AGE     IP           NODE      NOMINATED NODE   READINESS GATES
nginx-pod   1/1     Running   0          6m38s   10.100.2.5   node211   <none>           <none>

查看资源

# 查看当前命名空间下的所有 Pods 
[root@master210 pods]# kubectl get pods
# 查看所有命名空间下的所有 Pods
[root@master210 pods]# kubectl get pods -A
或者
[root@master210 pods]# kubectl get pods --all-namespaces
# 查看指定命名空间中的 Pods
[root@master210 pods]# kubectl get pods -n <namespace>
# 查看 Pods 的详细信息
[root@master210 pods]# kubectl get pods -o wide
# 查看指定 Pod 的详细描述
[root@master210 pods]# kubectl describe pod <pod-name>
# 查看特定 Pod 的日志
[root@master210 pods]# kubectl logs <pod-name>
# 如果 Pod 内有多个容器,可以使用: -c参数
[root@master210 pods]# kubectl logs <pod-name> -c <container-name>
# 持续监控 Pods 状态(自动刷新)
[root@master210 pods]# kubectl get pods -w
# 查看 Pod 中容器的 CPU 和内存使用情况
kubectl top pod <pod-name>
# 查看所有 Pod 的资源使用情况
kubectl top pod

删除

# 删除指定 Pod
kubectl delete pod <pod-name>
# 删除多个 Pods
kubectl delete pod <pod-name-1> <pod-name-2>
# 强制删除 Pod
kubectl delete pod <pod-name> --grace-period=0 --force
# 删除所有命名空间下的所有 Pods
kubectl delete pod --all -A
# 删除当前命名空间下的所有 Pods
kubectl delete pod --all
# 删除某个命名空间中的所有 Pods
kubectl delete pod --all -n <namespace>
# 根据标签删除 Pods
kubectl delete pod -l <label-key>=<label-value>
# 删除 Pod 并保留其资源(Finalizer)
kubectl patch pod <pod-name> -p '{"metadata":{"finalizers":[]}}'
# 查看删除进度 在删除某个 Pod 之前执行该命令,可以实时监控 Pod 的删除过程。
kubectl get pod <pod-name> -w

调试

# 进入 Pod 内部运行命令
kubectl exec -it <pod-name> -- /bin/sh
# 在特定容器内执行命令(多容器 Pod)
kubectl exec -it <pod-name> -c <container-name> -- /bin/sh
# 将本地端口转发到 Pod 内的端口
kubectl port-forward <pod-name> <local-port>:<pod-port>
例如:kubectl port-forward nginx-pod 8080:80 将本地的 8080 端口转发到 Pod 的 80 端口。
http://www.lryc.cn/news/468565.html

相关文章:

  • 科目二侧方位停车全流程
  • 2024源鲁杯CTF网络安全技能大赛题解-Round2
  • 10.24学习
  • 社交媒体与客户服务:新时代的沟通桥梁
  • 设置虚拟机与windows间的共享文件夹
  • 微信小程序性能优化 ==== 合理使用 setData 纯数据字段
  • 【加密系统】华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本
  • 直连南非,服务全球,司库直联再进一步
  • 【spring】从spring是如何避免并发下获取不完整的bean引发的思考 什么是双重检查锁 什么是java内存模型
  • 【计算机网络一】网络学习前置知识
  • nuScenes数据集使用的相机的外参和内参
  • 数据结构与算法:贪心算法与应用场景
  • 音频编解码器音频文件格式
  • FreeSWITCH JSON API
  • 学习docker第三弹------Docker镜像以及推送拉取镜像到阿里云公有仓库和私有仓库
  • 一文掌握Kubernates核心组件,构建智能容器管理集群
  • 正则表达式快速入门
  • 【小程序】-基础语法(二)
  • js 填充数组
  • AI创作3款软件分享,助力内容创作者高效产出优质作品
  • A survey of loss functions for semantic segmentation——论文笔记
  • docker部署es与kibana Mac
  • redis的渐进式哈希?说一下细节?------面试题分享
  • javaWeb项目-springboot+vue-车辆管理系统功能介绍
  • redis和memcached的区别
  • 构建安全基石:网络安全等级保护定级指南
  • PyQt 入门教程(3)基础知识 | 3.1、使用QtDesigner创建.ui文件
  • 解锁金融大门,你的基从备考秘籍全揭秘!
  • 详解Linux系统中的设备驱动程序.ko文件
  • MG协议转换器:高效连接,智控未来