K8s新手系列之K8s中的资源
K8s中资源的概念
在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。
kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。kubernetes的最小管理单元是pod而不是容器,所以只能将容器放在Pod中,而kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod可以提供服务之后,就要考虑如何访问Pod中服务,kubernetes提供了Service资源实现这个功能。当然,如果Pod中程序的数据需要持久化,kubernetes还提供了各种存储系统。
简单点说,k8s中一切皆是资源
K8s中的内置资源
查看K8s中所有的内置资源
通过kubectl api-resources命令可以查看K8s中所有的内置资源。
[root@master01 ~/pod]# kubectl api-resources
NAME SHORTNAMES APIVERSION NAMESPACED KIND
bindings v1 true Binding
componentstatuses cs v1 false ComponentStatus
configmaps cm v1 true ConfigMap
endpoints ep v1 true Endpoints
events ev v1 true Event
limitranges limits v1 true LimitRange
namespaces ns v1 false Namespace
nodes no v1 false Node
persistentvolumeclaims pvc v1 true PersistentVolumeClaim
persistentvolumes pv v1 false PersistentVolume
pods po v1 true Pod
podtemplates v1 true PodTemplate
replicationcontrollers rc v1 true ReplicationController
resourcequotas quota v1 true ResourceQuota
secrets v1 true Secret
serviceaccounts sa v1 true ServiceAccount
services svc v1 true Service
mutatingwebhookconfigurations admissionregistration.k8s.io/v1 false MutatingWebhookConfiguration
validatingwebhookconfigurations admissionregistration.k8s.io/v1 false ValidatingWebhookConfiguration
customresourcedefinitions crd,crds apiextensions.k8s.io/v1 false CustomResourceDefinition
apiservices apiregistration.k8s.io/v1 false APIService
controllerrevisions apps/v1 true ControllerRevision
daemonsets ds apps/v1 true DaemonSet
deployments deploy apps/v1 true Deployment
replicasets rs apps/v1 true ReplicaSet
statefulsets sts apps/v1 true StatefulSet
tokenreviews authentication.k8s.io/v1 false TokenReview
localsubjectaccessreviews authorization.k8s.io/v1 true LocalSubjectAccessReview
selfsubjectaccessreviews authorization.k8s.io/v1 false SelfSubjectAccessReview
selfsubjectrulesreviews authorization.k8s.io/v1 false SelfSubjectRulesReview
subjectaccessreviews authorization.k8s.io/v1 false SubjectAccessReview
horizontalpodautoscalers hpa autoscaling/v2 true HorizontalPodAutoscaler
cronjobs cj batch/v1 true CronJob
jobs batch/v1 true Job
certificatesigningrequests csr certificates.k8s.io/v1 false CertificateSigningRequest
leases coordination.k8s.io/v1 true Lease
bgpconfigurations crd.projectcalico.org/v1 false BGPConfiguration
bgpfilters crd.projectcalico.org/v1 false BGPFilter
bgppeers crd.projectcalico.org/v1 false BGPPeer
blockaffinities crd.projectcalico.org/v1 false BlockAffinity
caliconodestatuses crd.projectcalico.org/v1 false CalicoNodeStatus
clusterinformations crd.projectcalico.org/v1 false ClusterInformation
felixconfigurations crd.projectcalico.org/v1 false FelixConfiguration
globalnetworkpolicies crd.projectcalico.org/v1 false GlobalNetworkPolicy
globalnetworksets crd.projectcalico.org/v1 false GlobalNetworkSet
hostendpoints crd.projectcalico.org/v1 false HostEndpoint
ipamblocks crd.projectcalico.org/v1 false IPAMBlock
ipamconfigs crd.projectcalico.org/v1 false IPAMConfig
ipamhandles crd.projectcalico.org/v1 false IPAMHandle
ippools crd.projectcalico.org/v1 false IPPool
ipreservations crd.projectcalico.org/v1 false IPReservation
kubecontrollersconfigurations crd.projectcalico.org/v1 false KubeControllersConfiguration
networkpolicies crd.projectcalico.org/v1 true NetworkPolicy
networksets crd.projectcalico.org/v1 true NetworkSet
endpointslices discovery.k8s.io/v1 true EndpointSlice
events ev events.k8s.io/v1 true Event
flowschemas flowcontrol.apiserver.k8s.io/v1beta3 false FlowSchema
prioritylevelconfigurations flowcontrol.apiserver.k8s.io/v1beta3 false PriorityLevelConfiguration
ingressclasses networking.k8s.io/v1 false IngressClass
ingresses ing networking.k8s.io/v1 true Ingress
networkpolicies netpol networking.k8s.io/v1 true NetworkPolicy
runtimeclasses node.k8s.io/v1 false RuntimeClass
apiservers operator.tigera.io/v1 false APIServer
imagesets operator.tigera.io/v1 false ImageSet
installations operator.tigera.io/v1 false Installation
tigerastatuses operator.tigera.io/v1 false TigeraStatus
poddisruptionbudgets pdb policy/v1 true PodDisruptionBudget
bgpconfigurations bgpconfig,bgpconfigs projectcalico.org/v3 false BGPConfiguration
bgpfilters projectcalico.org/v3 false BGPFilter
bgppeers projectcalico.org/v3 false BGPPeer
blockaffinities blockaffinity,affinity,affinities projectcalico.org/v3 false BlockAffinity
caliconodestatuses caliconodestatus projectcalico.org/v3 false CalicoNodeStatus
clusterinformations clusterinfo projectcalico.org/v3 false ClusterInformation
felixconfigurations felixconfig,felixconfigs projectcalico.org/v3 false FelixConfiguration
globalnetworkpolicies gnp,cgnp,calicoglobalnetworkpolicies projectcalico.org/v3 false GlobalNetworkPolicy
globalnetworksets projectcalico.org/v3 false GlobalNetworkSet
hostendpoints hep,heps projectcalico.org/v3 false HostEndpoint
ipamconfigurations ipamconfig projectcalico.org/v3 false IPAMConfiguration
ippools projectcalico.org/v3 false IPPool
ipreservations projectcalico.org/v3 false IPReservation
kubecontrollersconfigurations projectcalico.org/v3 false KubeControllersConfiguration
networkpolicies cnp,caliconetworkpolicy,caliconetworkpolicies projectcalico.org/v3 true NetworkPolicy
networksets netsets projectcalico.org/v3 true NetworkSet
profiles projectcalico.org/v3 false Profile
clusterrolebindings rbac.authorization.k8s.io/v1 false ClusterRoleBinding
clusterroles rbac.authorization.k8s.io/v1 false ClusterRole
rolebindings rbac.authorization.k8s.io/v1 true RoleBinding
roles rbac.authorization.k8s.io/v1 true Role
priorityclasses pc scheduling.k8s.io/v1 false PriorityClass
csidrivers storage.k8s.io/v1 false CSIDriver
csinodes storage.k8s.io/v1 false CSINode
csistoragecapacities storage.k8s.io/v1 true CSIStorageCapacity
storageclasses sc storage.k8s.io/v1 false StorageClass
volumeattachments storage.k8s.io/v1 false VolumeAttachment
各列字段详解:
- NAME:表示资源的名称
- SHORTNAMES:表示资源的简称,例如Pod可以简写为po
[root@master01 ~/pod]# kubectl get Pod
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 30m
[root@master01 ~/pod]# kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 30m
- APIVERSION:资源所属的API组及版本,对应Manifests文件中apiVersion字段
- NAMESPACED:表示是否受namespace(命名空间)的隔离,true代表受隔离。false代表不受隔离
- KIND:表示资源类型(如 Pod、Deployment)。对应Manifests文件中Kind字段
内置资源的分类
工作负载(Workloads)相关
Pod:最小的部署单元,包含一个或多个容器。
Deployment:管理无状态应用的副本和滚动更新。
StatefulSet:适用于有状态应用(如数据库),保障有序性和持久存储。
DaemonSet:确保每个节点运行一个Pod(如日志采集器)。
Job/CronJob:执行一次性或定时任务。
网络(Networking)相关
Service:为 Pod 提供稳定的网络端点(负载均衡)。
Ingress:管理外部 HTTP/HTTPS 流量路由。
NetworkPolicy:定义 Pod 间的网络访问规则。
存储(Storage)相关
PersistentVolume (PV):集群级别的存储资源(如云磁盘)。
PersistentVolumeClaim (PVC):用户对存储的请求(绑定PV)。
StorageClass:动态按需创建存储(如定义SSD类型)。
配置与安全(Configuration & Security)相关
ConfigMap:存储非敏感配置(如环境变量)。
Secret:管理敏感信息(密码、密钥)。
ServiceAccount:为 Pod 分配身份和权限。
集群管理(Cluster Management)相关
Node:表示集群中的工作节点。
Namespace:逻辑隔离资源(如 dev/prod 环境)。
ResourceQuota:限制命名空间的资源使用量。
查看指定的内置资源
查看master组件状态
[root@master01 ~]# kubectl get componentstatuses
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy
# 使用简写方式
[root@master01 ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy
查看集群节点状态
[root@master01 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready control-plane 7h24m v1.26.15
node01 Ready <none> 7h23m v1.26.15
node02 Ready <none> 7h23m v1.26.15
# 使用简写方式
[root@master01 ~]# kubectl get no
NAME STATUS ROLES AGE VERSION
master01 Ready control-plane 7h24m v1.26.15
node01 Ready <none> 7h23m v1.26.15
node02 Ready <none> 7h23m v1.26.15
查看pod状态
[root@master01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 54m
# 使用简写方式
[root@master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 54m
一次查看多个资源
# 查看master组件状态、集群状态、pod状态
[root@master01 ~]# kubectl get cs,no,po
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
componentstatus/controller-manager Healthy ok
componentstatus/scheduler Healthy ok
componentstatus/etcd-0 Healthy
NAME STATUS ROLES AGE VERSION
node/master01 Ready control-plane 7h25m v1.26.15
node/node01 Ready <none> 7h25m v1.26.15
node/node02 Ready <none> 7h25m v1.26.15
NAME READY STATUS RESTARTS AGE
pod/nginx-pod 1/1 Running 0 55m
查看K8s集群中资源的文档
可以通过kubectl explain <资源的类型.属性>来进行查看
例如:
kubectl explain po

kubectl explain po.kind

K8s中资源管理方式
K8s中资源管理方式常用的主要有以下两种方式:
- 声明式管理:用户通过定义 Manifests 文件 描述资源的期望状态,K8s 自动协调实际状态与目标一致
- 命令式管理:直接通过 kubectl 命令快速操作资源,适合临时调试或简单场景。
声明式管理
用户通过定义 Manifests 文件 描述资源的期望状态,K8s 自动协调实际状态与目标一致。适合生产环境使用。
创建/更新资源
# 应用 Manifest 文件(创建或更新资源)
kubectl apply -f manifests.yaml
# 应用目录下所有 Manifest 文件
kubectl apply -f manifests/
删除资源
kubectl delete -f manifests.yaml
查看生成的资源配置
# 查看实际生效的配置(含集群填充的默认值)
kubectl get pod nginx-pod -o yaml
命令式管理
直接通过 kubectl 命令快速操作资源,适合临时调试或简单场景。
通过命令式创建资源
语法:
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json]
[--command] -- [COMMAND] [args...] [options]
案例:
# 启动一个nginx的pod
kubectl run nginx --image=nginx
# 启动一个hazelcast/hazelcast的pod,指定暴漏的端口为5701
kubectl run hazelcast --image=hazelcast/hazelcast --port=5701
# 启动一个hazelcast/hazelcast的pod,指定环境变量
kubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"
# 启动一个hazelcast/hazelcast的pod,指定标签
kubectl run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod"
# 模拟创建一个nginx的pod,生成对应的manifests文件,而不会实际创建资源
kubectl run nginx --image=nginx --dry-run=client
# 创建一个busybox的pod,指定重启方式为永不重启
kubectl run -i -t busybox --image=busybox --restart=Never
K8s新手系列之K8s中的资源的更多相关文章
- 【k8s连载系列】k8s介绍
k8s是Kubernetes的缩写,Google 于 2014 年开源了 Kubernetes 项目. 一.k8s的历史演变 k8s的演变过程:首先从传统的服务-->虚拟机部署-->容器部 ...
- Nginx系列---【配置文件中静态资源文件禁止通过目录查看】
配置文件中静态资源文件禁止通过目录查看 1.问题 nginx作为文件服务器时,默认是可以通过目录路径查看该目录下的所有文件的,这样很不安全,容易造成静态资源泄露. 2.方案 location /ima ...
- k8s中计算资源策略 Limit Range
文章转载自:https://www.kuboard.cn/learning/k8s-advanced/policy/lr.html 默认情况下,容器在 Kubernetes 集群上运行时,不受 计算资 ...
- k8s入门系列之guestbook快速部署
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...
- k8s入门系列之扩展组件(一)DNS安装篇
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
- k8s入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- k8s 入门系列之集群安装篇
关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...
- K8S入门系列之集群二进制部署-->master篇(二)
组件版本和配置策略 组件版本 Kubernetes 1.16.2 Docker 19.03-ce Etcd 3.3.17 https://github.com/etcd-io/etcd/release ...
- K8S入门系列之集群二进制部署-->node篇(三)
node节点组件 docker kubelet kube-proxy kubernetes-server-linux-amd64.tar.gz(相关的这里都能找到二进制文件!) falnnel 1. ...
- 【k8s连载系列】2. k8s整体架构
# 一.Kubernetes的整体架构 学习k8s,最终目的是为了部署应用,部署一个完整的k8s, 就要知道k8s的组成.k8s主要包含两大部分: 中间包含三个绿色包的是master服务器. 下面是n ...
随机推荐
- 使用Docker编译安装运行Doris
一.编译源码 (1)拉取编译镜像docker pull apache/incubator-doris:build-env-1.2 (2)Mac电脑上拉取源码git clone https://gith ...
- Sqoop2 - [01] 安装部署
1.启动Hadoop集群 2.将Sqoop2的安装包上传到合适的目录中解压 tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz 3.修改Hadoop的配置文件cor ...
- DOS批处理小案例应用分享 - 整理桌面
想必大多数办公的同志都有个习惯----往桌面上堆放文件,各种文件.几天下来桌面就杂乱无章,乱七八糟的.能做一个快速清理的功能,是很有实用价值的.比如采用Windows自带的DOS批处理系统,就可快速搭 ...
- Top-N推荐算法 Top-N recommendation Algorithms
引言 推荐算法是计算机专业中的一种算法,通过一些计算,能够推测用户喜欢的东西,在互联网环境中应用比较广泛.Top-N算法在生活中非常常见,比如学术论文推荐论文.音乐软件推荐歌曲等. 今天看到一篇名叫& ...
- 青岛oj集训1
2025/3/4 内容:有向无环图(DAG) 优点:DAG有很多良好性质 拓扑排序 用处:可以根据拓扑序进行dp 这次计算所用的所有边的权值都是有计算过的 一张DAG图肯定有拓扑序(bfs序,dfs序 ...
- CRYPTO-DSA
CRYPTO-DSA 参考某位大佬的博客和nss的一些题目,这两天的DSA题目 DSA数字签名 | DexterJie'Blog [NCTF 2021]dsa task.py from Crypto. ...
- Java多线程运行探幽
事关Training2中Task4,想看看经典的两个进程并行会是什么样子 题目概述 实现简单的生产者-消费者模型: Tray托盘容量为1:托盘满时不能放入,空时不能取货 Producer生产者共需生产 ...
- cypress route 拦截 zepto ajax 请求时候 response 返回 null 问题原因
原文链接:https://blog.jijian.link/2020-08-03/cypress-zepto-ajax-response-null/ 如果你项目有如下几个巧合,大概率会发现一个 aja ...
- Oracle客户端中文显示问号乱码问题
Oracle显示中文显示??乱码 问题如下图 解决方法 打开Oracle客户端,新建一个SQL Window 输入select userenv('language') from dual 复制搜索到的 ...
- 基础命令:dd、tar、ln、find、逻辑符号、alisa别名、md5sun校验、lrzsz文件上传下载、wget
目录 3.0 dd读取.转换并输出数据 3.1 压缩 (tar.zip).解压缩(tar xf.unzip) 3.2 ln软硬链接 3.2.1 软链接: 3.2.2 硬链接: 3.3 find文件查找 ...