本文是关于k8s资源清单的相关内容
前言
本文是k8s的学习笔记,资源是 【k8s教程】薪享宏福Kubernetes v1.29 |2024最新版!B站最强!百万播放汪洋授课,轻松拿捏k8s
一、什么是资源?
K8S中所有的内容都抽象为资源,资源实例化之后,叫做对象。 我个人觉得资源清单跟docker compose 很像啊,都是在定义我们怎么去启动一个容器。
二、资源分类
- 名称空间级别
工作负载型资源:Pod、ReplicaSet、Deployment … 服务发现及负载均衡型资源:Service、Ingress.. 配置与存储型资源:Volume、CSI… 特殊类型的存储卷:ConfigMap、Secre …
集群级资源
Namespace、Node、ClusterRole、ClusterRoleBinding
元数据型资源
HPA、PodTemplate、LimitRange
名称空间级别的资源,我个人理解就是类似于节点内部的资源,比如,某个大学的某个系 集群级别资源,我个人理解就是,节点级别的资源,比如,某个大学 元数据型资源,我个人理解就是,对资源进行监控,当资源不够用的时候自动进行扩容。
三、资源清单
1.资源清单的结构
资源清单的结构主要分成5大部分
分别是apiversion,kind,metadata,spec,status
apiversion
apiversion 用于指定 采用的是什么的东西,我个人理解是官方开发的一些东西 这里需要填写的 接口组/版本号
kubectl api-versions
可以用这个命令来查看有哪些接口组

kind
kind是类别,我个人理解这里主要是写资源的类型
metadata
元数据,主要是写关于资源的一些数据,比如名称,标签,等等
spec
Specification 规格,规范 这里主要是用来定义我们对资源的各种规范
status
状态,这里是关于资源的各种状态,由集群维护,我们主要是写上面四个
资源清单上手
kubectl create -f 1.pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
spec:
containers:
- name: myapp-1
image: wangyanglinux/myapp:v1.0
- name: busybox-1
image: wangyanglinux/tools:busybox
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
获取命名空间里的pod
kubectl get pod -n 命名空间

获取节点信息
kubectl get node
常用命令
pod相关
获取全部的pod
kubectl get pod -A
获取pod的额外信息
kubectl get pod -o wide
进入到pod的容器内部
kubectl exec -it pod名称 -c 容器名称 -- /bin/bash
注::-c可以省略,当pod只有一个容器的时候
查看pod的标签
kubectl get pod --show-labels
通过标签去查询pod
kubectl get pod -l 标签
查看容器的日志
kubectl logs pod名 -c 容器名

